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

استخدام المصنف DummyClassifier في Sklearn

Meezo ML

السؤال

Recommended Posts

  • 1

هو مصنف يقوم بالتنبؤات باستخدام قواعد بسيطة. هذا المصنف يتم استخدامه كخط أساس Baseline للمقارنة مع المصنفات الأساسية الأخرى.

sklearn.dummy.DummyClassifier(strategy='prior', random_state=None)
# الوسطاء
strategy:{“stratified”, “most_frequent”, “prior”, “uniform”, “constant”}, default=”prior”
#stratified: يولد تنبؤات على أساس توزيع فئة التدريب
#most_frequent: يتنبأ دائمًا بالفئة الأكثر شيوعاً في مجموعة التدريب.
#prior: يتنبأ دائمًا بالفئة التي تعظم الفئة السابقة 
#uniform: يولد تنبؤات بشكل موحد وعشوائي.
#constant: يتنبأ دائمًا بتسمية ثابتة يوفرها المستخدم
random_state:int, RandomState instance or None, default=None #  نظام العشوائية 
# الواصفات
classes_:ndarray of shape (n_classes,) or list of such arrays # الفئات في مجموعة البيانات
n_classes_:int or list of int عدد الفئات
class_prior_:ndarray of shape (n_classes,) or list of such arrays  # احتمالية كل فئة لكل ناتج
n_outputs_int # عدد المخرجات
# التوابع الأساسية
score(X, y): لحساب الدقة
predict(X) : للتوقع
fit(X,y): للتدريب

مثال:

from sklearn.pipeline import make_pipeline
from sklearn.model_selection import train_test_split
from sklearn.dummy import DummyClassifier
from sklearn.datasets import load_breast_cancer
# تحميل البيانات
Data = load_breast_cancer()
X = Data.data
y = Data.target
pipe = make_pipeline(DummyClassifier())
pipe.fit(X,y)
from sklearn.metrics import confusion_matrix,accuracy_score, classification_report
# make prediction and print accuracy
pipe.score(X, y)

 

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

  • 0

DummyClassifier هو من أبسط الخوارزميات المستخدمة في عمليات التصنيف بإستخدام قواعد بسيطة، , ويعتبر من الجيد إستخدامه للمقارنة مع خوارزميات التصنيف الأخرى لا يحبذ إستخدامه كنموذج أساسي للتصنيف في حال البيانات الحقيقية، مثال:

import numpy as np
from sklearn.dummy import DummyClassifier

X = np.array([-1, 1, 1, 1])
y = np.array([0, 1, 1, 1])

dummy_clf = DummyClassifier(strategy="most_frequent")
dummy_clf.fit(X, y)

print(dummy_clf.predict(X))
print(dummy_clf.score(X, y))

في هذه الحالة قمنا بإستخدام القيمة الأكثر تكراراً كإستراتيجية للتنبؤ. والان يمكننا التعامل مع مثال نقوم فيه بمقارنة نموذجين للتصنيف:

from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_breast_cancer
from sklearn.dummy import DummyClassifier

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.3, random_state = 0)

test_scores = []

dclf = DummyClassifier(strategy = 'most_frequent', random_state = 0)
dclf.fit(X_train, y_train)
score = dclf.score(X_test, y_test)
test_scores.append(score)

clf = KNeighborsClassifier(n_neighbors = 5)
clf.fit(X_train, y_train)
score = clf.score(X_test, y_test)
test_scores.append(score)

test_scores

في المثال السابق عرفنا قاعدة بيانات والتي تحتوي على 30 خاصية تستخدم لتصنيف الورم إلى سرطاني و غير سرطاني two class classification problem و قمنا بتعريف قيم المدخلات و المخرجات و من ثم تقسيم البيانات بنسبة 30% للإختبار و 70% للتدريب.

و بعد ذلك قمنا بتعريف النموذجين، الأول هو التجريبي لمعرفة هل تصنيفنا يتم بصورة جيدة أم لا، و الثاني عبارة عن نموذج KNeighborsClassifier والذي يستخدم تصنيف أقرب 5 عينات للتنبؤ n_neighbors=5 و بمقارنة النتائج حصلت على:

[0.631578947368421, 0.9473684210526315]

للنموذجين على التوالي، بالتالي فإن إستخدام KNeighborsClassifier جيد جداً بمقارنة نتائجه مع DummyClassifier.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...