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

تطبيق خوارزمية LogisticRegression باستخدام مكتبة sklearn

Meezo ML

السؤال

Recommended Posts

  • 1

يمكنك استخدامها عبر الموديول linear_model.LogisticRegression:

sklearn.linear_model.LogisticRegression(penalty='l2', *, dual=False, tol=0.0001, C=1.0, fit_intercept=True,
                                        intercept_scaling=1, random_state=None, solver='lbfgs',
                                        max_iter=100, multi_class='auto', verbose=0,  n_jobs=None)

الوسطاء (غالباً نتركهم على الحالة الافتراضية لكن أنصح باستخدام  newton-cg optimizer مع solver ):
penalty: لتحديد ال norm المستخدمة في عملية ال penalization (يقصد فيهما نوع عملية التنعيم المستخدمة). ويأخذ القيم التالية:
{‘l1’, ‘l2’(default), ‘elasticnet’, ‘none’}
ملاحظة: sag و lbfgs و newton-cg يدعمون فقط النوع الثاني l2.
elasticnet يدعم فقط saga.
tol: مقدار السماحية المسموح بها في الخطأ، أي لكي تخبر النموذج متى يمكنه التوقف عند البحث عن القيمة صغرى بمجرد الوصول إلى هذه القيمة.
C: معكوس التنعيم، وكلما كانت أصغر كلما زاد التنعيم.
random_state: تتحكم بعملية تقسيم البيانات.
max_iter: العدد الأعظمي للتكرارات الممكنة.
n_jobs: لتحديد السرعة، ويقبل عدد صحيح:
-1: أي أنك تريد التنفيذ على GPU
[1,n]: كلما قمت بزيادة الرقم كلما زاد التسريع (يعتمد على قدرات جهازك).
Solver: لتحديد خوارزمية التقارب convergence وتكون قيمتها :
{‘newton-cg’, ‘lbfgs’ (default), ‘liblinear’, ‘sag’, ‘saga’}
sag أو saga في حالة البيانات الكبيرة.
liblinear في حالة البيانات الصغيرة.
dual: يفضل وضعه على False عندما تكون عدد العينات أكبر من عدد ال features.
verbose: لعرض كل التفاصيل أثناء التدريب نضع أي عدد صحيح أكبر من الصفر وإلا نضع 0.

ال attributes:
coef_: لعرض أوزان التدريب.
intercept_: التقاطع مع المحور y وهو قيمة بوليانية، في حال ضبطه على true يتم إخذ أفضل تقاطع مع المحور y.
classes_: أسماء الفئات المستخدمة، مثلاً مريض أو غير مريض أي 0 و 1.
n_iter_: عدد المحاولات التي قامت بها الخوارزمية.

الدوال:
score(data, label): لعرض مدى كفاءة المودل.
predict(data): لإخراج القيم المتوقعة لدخل معطى.
fit(data,label): للقيام بعملية التدريب.

مثال على بيانات أمراض سرطان الثدي (مريض|سليم) :

# استيراد المكتبات اللازمة 
from sklearn.datasets import load_breast_cancer    # استيراد الداتا
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

# تحميل الدات
BreastData = load_breast_cancer()
data = BreastData.data
labels = BreastData.target


# تقسيم البيانات 

X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=4, shuffle =True)


LogisticR = LogisticRegression(max_iter=110,solver="newton-cg") # حددنا عدد التكرارات ب 110 كحد أقصى
LogisticR.fit(X_train, y_train)      #  بدء التدريب


print('train Score is : ' , LogisticR.score(X_train, y_train)) #96%                       # عرض الدقة على بيانات التدريب
print('Test  Score is : ' , LogisticR.score(X_test, y_test)) # 91%                   # عرض الدقة على بيانات الاختبار
print('LogisticR Classes are : ' , LogisticR.classes_)           # عرض الفئات الموجودة لدينا وهي 0 و 1 أي مريض وسليم  
print('LogisticR No. of iteratios is : ' , LogisticR.n_iter_)     # عرض عدد المحاولات أوالتكرارات
print('----------------------------------------------------')


# حساب التوقع
y_pred = LogisticR.predict(X_test)
y_pred_prob = LogisticR.predict_proba(X_test)
print('Predicted Value : ' , y_pred[:4])  # عرض القيم المتوقعة بعد قصرها  
print('Prediction Probabilities Value  : ' , y_pred_prob[:4]) # عرض القيم المتوقعة كقيم احتمالية

 

تم التعديل في بواسطة 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...