ویژگی تصویر

کتابخانه scikit-learn در پایتون

  /  پایتون   /  کتابخانه scikit-learn در پایتون
بنر تبلیغاتی الف

کتابخانه Scikit-Learn یکی از پرکاربردترین ابزارهای پایتون برای یادگیری ماشین (Machine Learning) است. این کتابخانه شامل الگوریتم‌ها و ابزارهای آماده برای مسائل دسته‌بندی، رگرسیون، خوشه‌بندی و پیش‌پردازش داده‌ها می‌باشد و به توسعه‌دهندگان اجازه می‌دهد تا مدل‌های یادگیری ماشین را سریع و با کمترین پیچیدگی پیاده‌سازی کنند.

ویژگی‌های کلیدی Scikit-Learn

  • سادگی و یکپارچگی: رابط‌های کاربری یکنواخت و استاندارد برای تمام الگوریتم‌ها.
  • پشتیبانی از الگوریتم‌های متنوع: شامل رگرسیون خطی و لجستیک، درخت تصمیم، SVM، KNN، و الگوریتم‌های خوشه‌بندی مانند KMeans.
  • ابزارهای پیش‌پردازش داده: نرمال‌سازی، مقیاس‌بندی، رمزگذاری دسته‌ها و پر کردن داده‌های گمشده.
  • امکان ارزیابی و اعتبارسنجی مدل‌ها: شامل Cross-Validation، Grid Search و معیارهای دقت مختلف.
  • مستندسازی و جامعه بزرگ: مستندات کامل و انجمن‌های فعال در GitHub و Stack Overflow.

نصب Scikit-Learn

برای نصب Scikit-Learn می‌توان از pip استفاده کرد:

pip install scikit-learn

این دستور کتابخانه و وابستگی‌های مورد نیاز آن مانند numpy و scipy را نصب می‌کند.

ساختار کلی پروژه با Scikit-Learn

برای استفاده از Scikit-Learn معمولاً مراحل زیر دنبال می‌شوند:

  1. بارگذاری و آماده‌سازی داده‌ها
  2. تقسیم داده به مجموعه آموزش و تست
  3. انتخاب و آموزش مدل
  4. پیش‌بینی و ارزیابی مدل
  5. بهینه‌سازی و تنظیم هایپرپارامترها

مثال عملی: رگرسیون خطی

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
import numpy as np

# داده‌های نمونه

X = np.array([[1], [2], [3], [4], [5]])
y = np.array([3, 4, 2, 5, 6])

# تقسیم داده به آموزش و تست

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# ایجاد مدل

model = LinearRegression()
model.fit(X_train, y_train)

# پیش‌بینی

y_pred = model.predict(X_test)

# ارزیابی مدل

mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse) 

در این مثال، ابتدا داده‌ها را با train_test_split به دو بخش آموزش و تست تقسیم می‌کنیم. سپس مدل LinearRegression ساخته و آموزش داده می‌شود. پیش‌بینی روی داده تست انجام شده و خطای میانگین مربعات (MSE) محاسبه می‌شود.

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

Scikit-Learn ابزارهای متنوعی برای آماده‌سازی داده‌ها ارائه می‌دهد:

  • StandardScaler: نرمال‌سازی داده‌ها به میانگین صفر و واریانس یک.
  • MinMaxScaler: مقیاس‌بندی داده‌ها بین 0 و 1.
  • OneHotEncoder: تبدیل داده‌های دسته‌ای به عددی.
  • Imputer: پر کردن داده‌های گمشده.
from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X) 

در اینجا، داده‌ها با استفاده از StandardScaler نرمال شده و آماده استفاده در مدل می‌شوند.

ارزیابی مدل‌ها

Scikit-Learn معیارهای متعددی برای سنجش عملکرد مدل‌ها دارد:

  • Accuracy: برای دسته‌بندی
  • Mean Squared Error (MSE): برای رگرسیون
  • R² Score: برای رگرسیون
  • Confusion Matrix: برای تحلیل دسته‌بندی
from sklearn.metrics import r2_score

r2 = r2_score(y_test, y_pred)
print("R² Score:", r2) 

مقدار R² نشان می‌دهد که چه میزان از تغییرات داده توسط مدل توضیح داده شده است.

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

Scikit-Learn ابزارهای متنوعی برای تنظیم هایپرپارامترها و یافتن بهترین مدل دارد:

  • GridSearchCV: جستجوی شبکه‌ای برای بهترین ترکیب هایپرپارامترها
  • RandomizedSearchCV: جستجوی تصادفی برای کاهش زمان محاسبات
  • Cross-Validation: ارزیابی مدل با چندین تقسیم‌بندی داده‌ها
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC

parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
svc = SVC()
clf = GridSearchCV(svc, parameters)
clf.fit(X_train, y_train)
print("Best parameters:", clf.best_params_) 

در این مثال، بهترین ترکیب هایپرپارامترهای مدل SVC با استفاده از GridSearchCV پیدا می‌شود.

بهترین شیوه‌ها هنگام استفاده از Scikit-Learn

  • همیشه داده‌ها را قبل از آموزش مدل پیش‌پردازش کنید.
  • از تقسیم داده به آموزش و تست استفاده کنید تا از Overfitting جلوگیری شود.
  • از Cross-Validation برای ارزیابی واقعی‌تر مدل‌ها بهره ببرید.
  • قبل از انتخاب نهایی مدل، چند الگوریتم مختلف را آزمایش کنید.
  • مستندات رسمی Scikit-Learn را برای درک جزئیات الگوریتم‌ها مطالعه کنید.

جمع‌بندی

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

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: