اذهب إلى المحتوى
  • 0

تطبيق SGDClassifier في Sklearn

Meezo ML

السؤال

Recommended Posts

  • 2

Stochastic Gradient Descent (SGD) Classifier
تقوم بعمل  Logistic Regression لكن باستخدام خوارزمية التحسين ال Stochastic Gradient Descent.
يمكنك استخدامها عبر الموديول: linear_model.SGDClassifier

sklearn.linear_model.SGDClassifier(loss='hinge', *, penalty='l2', alpha=0.0001, fit_intercept=True, max_iter=1000, tol=0.001, shuffle=True, verbose=0, epsilon=0.1, n_jobs=None, random_state=None, learning_rate='optimal', early_stopping=False)

الوسطاء:
loss: هي دالة التكلفة المستخدمة، وكون المهمة هي مهمة تصنيف نستخدم الدالة  الافتراضية دوماً. أي hinge.
penalty: وهو نوع التنعيم المستخدم.
learning_rate: وهو معامل التعلم (مقدار الخطوة).
max_iter: العدد الأقصى للمحاولات.
early_stopping: في حال ضبطه على True سيتم تطبيق خاصية التوقف المبكر (لمنع ال Overfitting عندما تنهار الدقة على عينة التطوير مقابل عينة الاختبار).
shuffle: لخلط البيانات.
verbose: ضبطه على أي قيمة غير الصفر سيعطيك التفاصيل أثناء التدريب.
random_state: تتحكم بنظام العشوائية.

ال attributes:
coef_: الأوزان.

intercept_: التقاطع مع المحور y، ضبطه على False يجبر الكلاسيفير على المرور من المبدأ 0،0 لذا يفضل ضبطه على True لإعطاء الحرية للكلاسيفير.
n_iter_: عدد المحاولات التي تم تنفيضها خلال التدريب حتى الوصول لمرحلة التقارب من القيم الدنيا.
الدوال:
fit(X, y): لبدء التدريب على بياناتك.
predict(X): لتوقع قيم الدخل اعتماداً على قيم الأوزان.
score(X, y): لتقدير مدى كفاءة النموذج.

مثال على مجموعة بيانات Iris Data :

from sklearn.model_selection import train_test_split
from sklearn.linear_model import SGDClassifier
from sklearn.metrics import confusion_matrix
from sklearn.datasets import load_breast_cancer
import seaborn as sns
import matplotlib.pyplot as plt

# تحميل البيانات
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=0.33, random_state=44, shuffle =True)

# SGDClassifier تطبيق 
SGDC = SGDClassifier(penalty='l1',loss='hinge',learning_rate='optimal',random_state=44)
SGDC.fit(X_train, y_train)


print('SGDC Train Score is : ' , SGDC.score(X_train, y_train))
print('SGDC Test Score is : ' , SGDC.score(X_test, y_test))   # SGDC Test Score is :  0.9414893617021277
print('SGDC loss function is : ' , SGDC.loss_function_)
print('SGDC No. of iteratios is : ' , SGDC.n_iter_)

# عرض مصفوفة التشتت 
c = confusion_matrix(y_test, SGDC.predict(X_test))
print('Confusion Matrix is : \n', c)
#لرسم المصفوفة  
sns.heatmap(c, center = True)
plt.show()

 

تم التعديل في بواسطة Ali Haidar Ahmad
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...