machine learning, python, پایتون

آموزش ماژول Lazypredict در پایتون

ماژول Lazypredict در پایتون

در آموزش گذشته نحوه نصب ماژول Lazypredict را بررسی کردیم. این جلسه نوبت به استفاده از ماژول Lazypredict در پایتون است. با ما همراهی باشید تا انواع مدلهای یادگیری ماشین را با این ماژول مقایسه کنیم.

ماژول Lazypredict در پایتون

یکی از ماژول‌هایی که بدون استفاده از parameter tunning برای شما نتایج الگوریتمهای مختلف هوش مصنوعی را بررسی می کند، lazypredict می باشد. این ماژول را می توانید از طریق دستور pip install lazyoredict نصب نمایید. برای دیدن جزئیات بیشتر نصب این ماژول، ویدئوی آموزش زیر را حتماً ببینید:

Classification

همانطور که می دانید مسائل classification را می توان با الگوریتم های یادگیری ماشین مدلسازی نمود. lazypredict بیش از 10 الگوریتم یادگیری ماشین را بر روی دیتاست شما تست می کند و خروجی آن‌ها را نمایش می دهد. ابتدا importها را انجام می دهیم:

from lazypredict.Supervised import LazyClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split

سپس دیتاست را فراخوانی می کنیم:

data = load_breast_cancer()
X = data.data
y= data.target
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=.5,random_state =123)

حال یک Object از کلاس LazyClassifier می سازیم:

clf = LazyClassifier(verbose=0,ignore_warnings=True, custom_metric=None)

تابع fit را صدا می زنیم:

models,predictions = clf.fit(X_train, X_test, y_train, y_test)

مقایسه مدل‌ها را با هم می بینیم:

print(models)

خروجی دستور بالا به صورت زیر می باشد:

                               Accuracy  Balanced Accuracy  ROC AUC  F1 Score  Time Taken
Model                                                                                    
LinearSVC                          0.99               0.99     0.99      0.99        0.01
Perceptron                         0.99               0.98     0.98      0.99        0.01
LogisticRegression                 0.99               0.98     0.98      0.99        0.01
XGBClassifier                      0.98               0.98     0.98      0.98        0.46
SVC                                0.98               0.98     0.98      0.98        0.01
LabelSpreading                     0.98               0.97     0.97      0.98        0.01
LabelPropagation                   0.98               0.97     0.97      0.98        0.02
BaggingClassifier                  0.97               0.97     0.97      0.97        0.07
PassiveAggressiveClassifier        0.98               0.97     0.97      0.98        0.05
SGDClassifier                      0.98               0.97     0.97      0.98        0.01
RandomForestClassifier             0.97               0.97     0.97      0.97        0.11
CalibratedClassifierCV             0.98               0.97     0.97      0.98        0.31
LGBMClassifier                     0.97               0.97     0.97      0.97        0.10
QuadraticDiscriminantAnalysis      0.96               0.97     0.97      0.97        0.20
ExtraTreesClassifier               0.97               0.96     0.96      0.97        0.05
RidgeClassifierCV                  0.97               0.96     0.96      0.97        0.01
RidgeClassifier                    0.97               0.96     0.96      0.97        0.10
AdaBoostClassifier                 0.96               0.96     0.96      0.96        0.31
KNeighborsClassifier               0.96               0.96     0.96      0.96        0.23
BernoulliNB                        0.95               0.95     0.95      0.95        0.08
LinearDiscriminantAnalysis         0.96               0.95     0.95      0.96        0.14
GaussianNB                         0.95               0.95     0.95      0.95        0.01
NuSVC                              0.95               0.94     0.94      0.95        0.04
ExtraTreeClassifier                0.94               0.93     0.93      0.94        0.01
NearestCentroid                    0.95               0.93     0.93      0.95        0.01
DecisionTreeClassifier             0.93               0.93     0.93      0.93        0.01
DummyClassifier                    0.64               0.50     0.50      0.50        0.01

Process finished with exit code 0

Regression

برای مثال رگرسیون ما از دیتاست boston استفاده می کنیم. ابتدا importها را فراخوانی و دیتاست را ذخیره سازی می کنیم:

from lazypredict.Supervised import LazyRegressor
from sklearn.utils import shuffle
import numpy as np
import pandas as pd


data_url = "http://lib.stat.cmu.edu/datasets/boston"
raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
target = raw_df.values[1::2, 2]

دیتاست را به دو قسمت train و test تقسیم می کنیم:

X, y = shuffle(data, target, random_state=13)
X = X.astype(np.float32)
offset = int(X.shape[0] * 0.9)
X_train, y_train = X[:offset], y[:offset]
X_test, y_test = X[offset:], y[offset:]

یک Object از LazyRegressor می سازیم:

reg = LazyRegressor(verbose=0,ignore_warnings=True, custom_metric=None )

تابع fit را صدا می زنیم:

models,predictions = reg.fit(X_train, X_test, y_train, y_test)

مقایسه مدل‌ها را با هم می بینیم:

print(models)

خروجی دستور بالا به صورت زیر می باشد:

                               Adjusted R-Squared  R-Squared  RMSE  Time Taken
Model                                                                         
XGBRegressor                                 0.84       0.88  2.57        0.21
SVR                                          0.83       0.88  2.62        0.01
BaggingRegressor                             0.83       0.88  2.63        0.03
NuSVR                                        0.82       0.86  2.76        0.01
RandomForestRegressor                        0.81       0.86  2.78        0.26
GradientBoostingRegressor                    0.81       0.86  2.84        0.15
ExtraTreesRegressor                          0.79       0.84  2.98        0.13
AdaBoostRegressor                            0.78       0.83  3.04        0.13
HistGradientBoostingRegressor                0.77       0.83  3.06        0.13
PoissonRegressor                             0.77       0.83  3.11        0.02
LGBMRegressor                                0.77       0.83  3.11        0.03
KNeighborsRegressor                          0.77       0.83  3.12        0.07
DecisionTreeRegressor                        0.65       0.74  3.79        0.01
MLPRegressor                                 0.65       0.74  3.80        0.17
HuberRegressor                               0.64       0.74  3.84        0.01
GammaRegressor                               0.64       0.73  3.88        0.06
LinearSVR                                    0.62       0.72  3.96        0.02
RidgeCV                                      0.62       0.72  3.97        0.00
BayesianRidge                                0.62       0.72  3.97        0.29
Ridge                                        0.62       0.72  3.97        0.03
LinearRegression                             0.62       0.72  3.97        0.00
TransformedTargetRegressor                   0.62       0.72  3.97        0.00
ElasticNetCV                                 0.62       0.72  3.98        0.05
LassoCV                                      0.62       0.72  3.98        0.06
LassoLarsIC                                  0.62       0.72  3.98        0.02
LassoLarsCV                                  0.62       0.72  3.98        0.03
Lars                                         0.61       0.72  3.99        0.12
LarsCV                                       0.61       0.71  4.02        0.04
SGDRegressor                                 0.60       0.70  4.07        0.00
TweedieRegressor                             0.59       0.70  4.12        0.00
ElasticNet                                   0.58       0.69  4.16        0.00
Lasso                                        0.54       0.66  4.35        0.00
LassoLars                                    0.54       0.66  4.35        0.00
RANSACRegressor                              0.53       0.65  4.41        0.06
OrthogonalMatchingPursuitCV                  0.45       0.59  4.78        0.01
PassiveAggressiveRegressor                   0.37       0.54  5.09        0.00
GaussianProcessRegressor                     0.23       0.43  5.65        0.18
OrthogonalMatchingPursuit                    0.16       0.38  5.89        0.00
ExtraTreeRegressor                           0.08       0.32  6.17        0.01
QuantileRegressor                           -0.35      -0.00  7.49        0.23
DummyRegressor                              -0.38      -0.02  7.56        0.00
KernelRidge                                -11.50      -8.25 22.74        0.10

Process finished with exit code 0

ویدئو آموزش کامل سورس های بالا

برای درک بهتر سورس کدهای بالا ویدئو آموزش زیر را حتماً ببینید:

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *