در آموزش گذشته نحوه نصب ماژول 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
ویدئو آموزش کامل سورس های بالا
برای درک بهتر سورس کدهای بالا ویدئو آموزش زیر را حتماً ببینید: