Filter by دسته‌ها
chatGTP
ابزارهای هوش مصنوعی
اخبار
گزارش
تیتر یک
چندرسانه ای
آموزش علوم داده
اینفوگرافیک
پادکست
ویدیو
دانش روز
آموزش‌های پایه‌ای هوش مصنوعی
اصول هوش مصنوعی
یادگیری بدون نظارت
یادگیری تقویتی
یادگیری عمیق
یادگیری نیمه نظارتی
آموزش‌های پیشرفته هوش مصنوعی
بینایی ماشین
پردازش زبان طبیعی
پردازش گفتار
چالش‌های عملیاتی
داده کاوی و بیگ دیتا
رایانش ابری و HPC
سیستم‌‌های امبدد
علوم شناختی
دیتاست
رویدادها
جیتکس
کاربردهای هوش مصنوعی
کتابخانه
اشخاص
شرکت‌های هوش مصنوعی
محصولات و مدل‌های هوش مصنوعی
مفاهیم
کسب‌و‌کار
تحلیل بازارهای هوش مصنوعی
کارآفرینی
هوش مصنوعی در ایران
هوش مصنوعی در جهان
مقاله
 چیت‌شیت کتابخانه سایکیت لرن در پایتون برای یادگیری ماشین

چیت‌شیت کتابخانه سایکیت لرن در پایتون برای یادگیری ماشین

زمان مطالعه: 4 دقیقه

آیا شما نیز یکی از میلیون‌ها برنامه‌نویس پایتون هستید که به دنبال کتابخانه‌ای قدرتمند برای یادگیری ماشین می‌گردند؟ اگر چنین است، باید کتابخانه سایکیت لرن Scikit-Learn را بشناسید. سایکیت لرن در دنیای پایتون نقش مهمی در حوزه یادگیری ماشین دارد و آشنایی با آن برای دریافت مدرک علوم داده‌ ضروری است. این مقاله مناسب کسانی است که پیش‌تر با پکیچ پایتون آشنایی دارند و تنها به دنبال مرجعی مناسب هستند. اگر تازه‌کار هستید و با سازوکار سایکیت لرن آشنایی ندارید، باز هم نیازی به نگرانی نیست؛ زیرا در این مقاله اصول و مفاهیم پایه‌ای کتابخانه سایکیت لرن در حوزه یادگیری ماشینی و نحوه کار با آن را خواهید آموخت.

چیت‌شیت پایتون برای سایکیت لرن

اسکیت لرن

سایکیت لرن یک کتابخانه متن باز پایتون برای یادگیری ماشینی، پیش پردازش، اعتبارسنجی متقاطع Cross-validation و الگوریتم‌های مصورسازی Visualization algorithms است. این کتابخانه مجموعه متنوعی از الگوریتم‌های یادگیری با نظارت و بدون نظارت را در دسترس ما قرار می‌دهد.

تقلب‌نامه پایتون

یک مثال ساده

بیایید در یک مثال ساده به کمک کتابخانه اسکیت لرن کدی بنویسیم که:

  • داده‌ها را بارگذاری کند،
  • آن‌ها را به دو دسته آموزش و آزمون تقسیم کند،
  • داده‌ها را با استفاده از الگوریتم KNN آموزش دهد،
  • نتایج را پیش‌بینی کند.
>>> from sklearn import neighbors, datasets, preprocessing
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.metrics import accuracy_score
>>> iris = datasets.load_iris() 
>>> X, y = iris.data[:, :2], iris.target
>>> X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=33)
>>> scaler = preprocessing.StandardScaler().fit(X_train)
>>> X_train = scaler.transform(X_train) 
>>> X_test = scaler.transform(X_test)
>>> knn = neighbors.KNeighborsClassifier(n_neighbors=5)
>>> knn.fit(X_train, y_train)
>>> y_pred = knn.predict(X_test)
>>> accuracy_score(y_test, y_pred)

بارگذاری داده‌ها

داده‌های شما باید در آرایه‌های NumPy  به‌صورت داده‌های عددی یا درSciPy  در قالب ماتریس‌های فضایی sparse matrices ذخیره شده باشند. البته می‌توانید از سایر آرایه‌های عددی همچون چارچوب کاری Pandas نیز استفاده کنید.

>>> import numpy as np
>>> X = np.random.random((10,5))
>>> y = np.array(['M','M','F','F','M','F','M','M','F','F','F'])
>>> X[X < 0.7] = 0

آموزش و آزمون

مر حله بعدی، پس از بارگذاری داده‌ها، تقسیم دیتاست به داده‌های آموزشی و داده‌ها آزمون است.

>>> from sklearn.model_selection import train_test_split
>>> X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

پیش پردازش داده‌ها

استانداردسازی

استانداردسازی داده‌ها یکی از مراحل پیش پردازش است که به‌منظور مقیاس‌دهی مجدد یک یا چند صفت انجام می‌شود تا مقدار میانگین صفات برابر 0 یا انحراف از معیار آن‌ها برابر 1 شود. در استانداردسازی فرض می‌کنیم که گاوسیتوزیع داده‌ها گاوسی Gaussian distribution  (منحنی زنگوله‌ای Bell curve distribution) است.

>>> from sklearn.preprocessing import StandardScaler
>>> scaler = StandardScaler().fit(X_train)
>>> standardized_X = scaler.transform(X_train)
>>> standardized_X_test = scaler.transform(X_test)

نرمال‌سازی

نرمال‌سازی تکنیکی است که عموماً به‌منظور آماده‌سازی داده‌ها برای استفاده در مسئله یادگیری ماشینی به کار گرفته می‌شود. هدف اصلی از نرمال‌سازی تغییر مقادیر عددی ستون‌های دیتاست است تا بتوان بدون از دست دادن اطلاعات یا بر هم زدن تفاوت‌های موجود در گستره مقادیر، به یک مقیاس رایج دست یافت.

>>> from sklearn.preprocessing import Normalizer
>>> scaler = Normalizer().fit(X_train)
>>> normalized_X = scaler.transform(X_train)
>>> normalized_X_test = scaler.transform(X_test)

باینری کردن داده‌ها

باینری کردن یکی از عملیات‌های رایجی است که روی دیتاست‌ها اجرای می‌شود. برای مثال در این روش تحلیل‌گر می‌تواند به‌جای دفعات تکرار یک cheat sheet ویژگی، تنها بود یا نبود آن را درنظر بگیرد.

>>> from sklearn.preprocessing import Binarizer
>>> binarizer = Binarizer(threshold=0.0).fit(X)
>>> binary_X = binarizer.transform(X)

کد کردن ویژگی‌های مقوله‌ای

LabelEncoder یکی دیگر از کلاس‌هایی است که در مرحله پیش پردازش داده‌ها برای کد کردن سطوح کلاس‌ها به‌کار گرفته می‌شود. علاوه براین، می‌توان از آن برای تبدیل برچسب‌های غیر عددی به برچسب‌های عددی نیز استفاده کرد.

>>> from sklearn.preprocessing import LabelEncoder
>>> enc = LabelEncoder()
>>> y = enc.fit_transform(y)

جایگزینی داده‌های گمشده

کلاس Imputer در پایتون به شما استراتژی‌هایی برای پر کردن جای مقادیر گمشده ارائه می‌دهد. مقادیر گمشده با استفاده از میانگین، مقادیر میانه یا پرتکرارترین مقدار سطر یا ستونی که داده گمشده در آن قرار دارد، جایگزین می‌شوند. این کلاس همچنین ما را قادر می‌سازد تا مقادیر گمشده مختلف را به کد تبدیل کنیم.

>>> from sklearn.preprocessing import Imputer
>>> imp = Imputer(missing_values=0, strategy='mean', axis=0)
>>> imp.fit_transform(X_train)

تولید ویژگی‌های چندجمله‌ای

ویژگی چندجمله‌ای یک ماتریس ویژگی جدید تولید می‌کند که حاوی تمامی ترکیبات چندجمله‌ای ویژگی‌ها با درجه کمتر یا مساوی یک درجه تعیین‌شده است. برای مثال، اگر یک نمونه ورودی دو بعدی و به صورت (a,b) باشد، ویژگی‌های چندجمله‌ای درجه 2 آن به صورت (1,a,b,a,ab,b) خواهد بود.

>>> from sklearn.preprocessing import PolynomialFeatures
>>> poly = PolynomialFeatures(5)
>>> poly.fit_transform(X)

مدل خودتان را بسازید

برآوردگر یادگیری نظارت‌شده

یادگیری نظارت‌شده نوعی از مدل‌های یادگیری ماشینی است که پس از آموزش دیدن توسط داد‌های برچسب‌دار قادر به پیش‌بینی نتایج آتی خواهد بود.

# Linear Regression Algorithm
>>> from sklearn.linear_model import LinearRegression
>>> lr = LinearRegression(normalize=True)
# Naive Bayes Algorithm
>>> from sklearn.naive_bayes import GaussianNB
>>> gnb = GaussianNB()
# KNN Algorithm
>>> from sklearn import neighbors
>>> knn = neighbors.KNeighborsClassifier(n_neighbors=5)
# Support Vector Machines (SVM)
>>> from sklearn.svm import SVC
>>> svc = SVC(kernel='linear’)

برآوردگر یادگیری بدون نظارت

یادگیری بدون نظارت نیز نوع دیگری از مدل‌های یادگیری ماشینی است که می‌‌تواند بدون آموزش دیدن توسط داده‌های برچسب‌دار، نتایج آتی را پیش‌بینی کند.

# Principal Component Analysis (PCA)
>>> from sklearn.decomposition import PCA
>>> pca = PCA(n_components=0.95)
# K Means Clustering Algorithm
>>> from sklearn.cluster import KMeans
>>> k_means = KMeans(n_clusters=3, random_state=0)

برازش مدل

برازش معیاری است برای قابلیت تعمیم‌یابی یک مدل یادگیری ماشینی برای داده‌های مشابه با داده‌هایی که توسط آن‌ها آموزش دیده است.

# For Supervised learning
>>> lr.fit(X, y) #Fits data into the model
>>> knn.fit(X_train, y_train)
>>> svc.fit(X_train, y_train)
# For Unsupervised Learning
>>> k_means.fit(X_train)#Fits data into the model
>>> pca_model = pca.fit_transform(X_train) #Fit to data, then transform it

پیش‌بینی

برازش معیاری است برای قابلیت تعمیم‌یابی یک مدل یادگیری ماشینی برای داده‌های مشابه با داده‌هایی که توسط آن‌ها آموزش دیده است.

# For Supervised learning
>>> y_pred=svc.predict(np.random((2,5))) #predict label
>>> y_pred=lr.predict(x_test) #predict label
>>> y_pred=knn.predict_proba(x_test)#estimate probablity of a label
# For Unsupervised Learning
>>> y_pred=k_means.predict(x_test) #predict labels in clustering algorithm

ارزیابی عملکرد مدل

معیارهای دسته‌بندی

ماژول sklearn.metrics به‌منظور سنجش عملکرد دسته‌بندی، تعداد زیادی تابع زیان، امتیاز و مطلوبیت اجرا می‌کند.

# Mean Absolute Error
>>> from sklearn.metrics import mean_absolute_error
>>> y_true = [3, -0.5, 2]
>>> mean_absolute_error(y_true, y_pred)
# Mean Squared Error
>>> from sklearn.metrics import mean_squared_error
>>> mean_squared_error(y_test, y_pred)
# R² Score
>>> from sklearn.metrics import r2_score
>>> r2_score(y_true, y_pred)

معیار خوشه‌بندی

# Adjusted Rand Index
>>> from sklearn.metrics import adjusted_rand_score
>>> adjusted_rand_score(y_true, y_pred)
# Homogeneity
>>> from sklearn.metrics import homogeneity_score
>>> homogeneity_score(y_true, y_pred)
# V-measure
>>> from sklearn.metrics import v_measure_score
>>> metrics.v_measure_score(y_true, y_pred)

معیارهای رگرسیون

ماژول sklearn.metrics به‌منظور سنجش عملکرد دسته‌بندی تعداد زیادی تابع زیان، امتیاز و مطلوبیت اجرا می‌کند.

# Accuracy Score
>>> knn.score(X_test, y_test)
>>> from sklearn.metrics import accuracy_score
>>> accuracy_score(y_test, y_pred)
# Classification Report
>>> from sklearn.metrics import classification_report
>>> print(classification_report(y_test, y_pred))
# Confusion Matrix
>>> from sklearn.metrics import confusion_matrix
>>> print(confusion_matrix(y_test, y_pred))

اعتبارسنجی متقاطع

>>> from sklearn.cross_validation import cross_val_score 
>>> print(cross_val_score(knn, X_train, y_train, cv=4)) 
>>> print(cross_val_score(lr, X, y, cv=2))

هماهنگ کردن مدل

جستوجوی مشبک

تابع GridSearchCV دو متد fit و score را اجرا می‌کند. همچنین اگر predict، predict_proba، decision_function، transform و inverse_transform در تخمین­گر استفاده شده باشند، آن‌ها را نیز اجرا می‌کند.

>>> from sklearn.grid_search import GridSearchCV
>>> params = {"n_neighbors": np.arange(1,3), "metric": ["euclidean", "cityblock"]}
>>> grid = GridSearchCV(estimator=knn, param_grid=params)
>>> grid.fit(X_train, y_train)
>>> print(grid.best_score_)
>>> print(grid.best_estimator_.n_neighbors)

بهینه‌سازی پارامتر تصادفی

تابع RandomizedSearchCV یک جستوجوی تصادفی روی ابرپارامترها انجام می‌دهد. این تابع برخلاف تابع GridSearchCV، تمامی مقادیر پارامترها را بررسی نمی‌کند، بلکه از هر توزیع معین تعداد ثابتی از پیکربندی پارامترها به عنوان نمونه انتخاب می‌شوند. تعداد پیکربندی پارامترهایی که تحت بررسی قرار خواهند گرفت توسط متغیر n_iter مشخص شده است.

>>> from sklearn.grid_search import RandomizedSearchCV
>>> params = {"n_neighbours": range(1,5), "weights":["uniform", "distance"]}
>>>rserach = RandomizedSearchCV(estimator=knn,param_distribution=params, cv=4, n_iter=8, random_state=5)
>>> rsearch.fit(X_train, Y_train)
>>> print(rsearch.best_score)

بارگیری چیت‌شیت پایتون برای کتابخانه سایکیت لرن

اگر به مطالعه مقالات محبوب درخصوص فناوری‌های پرطرفدار همچون هوش مصنوعی، دواپس و هک قانونی علاقه دارید، می‌توانید به وب‌سایت Edureka مراجعه نمایید.

میانگین امتیاز / 5. تعداد ارا :

مطالب پیشنهادی مرتبط

اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
[wpforms id="48325"]