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

تطبيق Decision Tree لمهمة تصنيف باستخدام مكتبة Sklearn

Meezo ML

السؤال

Recommended Posts

  • 1

يمكنك القيام بذلك عن طريق الموديول tree أن تستدعي الكلاس DecisionTreeClassifier:

tree.DecisionTreeClassifier

الصيغة العامة:

sklearn.tree.DecisionTreeClassifier(criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, ccp_alpha=0.0


الوسطاء:

splitter: الاستراتيجية المستخدمة لاختيار الانقسام عند كل عقدة. {“best”, “random”}, "default=”best
random ليكون التقسيم عشوائي و best لاختيار أفضل تقسيم.
min_samples_split:الحد الأدنى لعدد العينات المطلوبة لتقسيم عقدة داخلية. int , default=2.
min_samples_leaf:  الحد الأدنى لعدد العينات المطلوبة في العقدة التي تمثل الاوراق.  default=1
n_jobs: عدد المهام التي يتم تنفيذها بالتوازي نضع -1 للتنفيذ على ال GPU.
max_depth: عمق شجرة القرار. default=None
min_samples_split:الحد الادني من التقسيمات المسموح بها
tol: (مقدار السماحية) عدد يمثل نقطة إيقاف التعلم  بحال تجاوز هذه القيمه فيتوقف ال optimizer .
max_features:العدد المناسب من الفيتشرز التي يتم احتسابها {“auto”, “sqrt”, “log2”}.
في حال auto:
max_features=sqrt(n_features).
sqrt:
ax_features=sqrt(n_features).
log2:
max_features=log2(n_features).
None:
max_features=n_features.
إذا وضعت قيمة float:
max_features=int(max_features * n_features)
قيمة int:
سيتم أخذ ال features  عند كل تقسيمة ك max_features.
random_state: يتحكم بعملية التقسيم افتراضياً يكون None.
ccp_alpha: معامل تعقيد  يستخدم لتقليل التكلفة الزمانية والمكانية. non-negative float, default=0.0
criterion: الأسلوب الرياضي للمعالجة وتكون  gini , entropy
min_impurity_split: عتبة التوقف المبكر لنمو الشجرة.float, default=0
التوابع:
fit(data): للقيام بعملية التدريب.
predict(data): لتوقع القيم.
score(data):  لتقييم كفاءة النموذج.
()get_params :لايجاد مقدار الدقة
predict_proba(data) : لعمل التوقع أيضاً لكن هنا سيخرج الفيمة الاحتمالية(أي لن يتم القصر على  عتبة)
apply(data):  ياتي لك بقيمة الورقة المحسوبة.
ال attributtes:
classes_: لعرض ال labels التي وجدها.
feature_importances_: عرض أهم الفيتشرز المؤثرة في التوقع.

# استيراد المكتبات
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import confusion_matrix
import seaborn as sns
import matplotlib.pyplot as plt

#تحميل البيانات
data = load_breast_cancer().data
labels = load_breast_cancer().target

# تقسيم البيانات
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=2021, shuffle =True)

DecisionTreeC = DecisionTreeClassifier(criterion='gini',max_depth=3,random_state=2021) 
DecisionTreeC.fit(X_train, y_train)

# حساب التوقع  
print('Train Score is : ' , DecisionTreeC.score(X_train, y_train))
print('Test Score is : ' , DecisionTreeC.score(X_test, y_test)) # 0.9473684210526315
# عرض الفئات الموجودة
print('Classes are : ' , DecisionTreeC.classes_) # Classes are :  [0 1]
#عرض أهم الفيتشرز التي تؤثر في عملية التوقع 
print('feature importances are : ' , DecisionTreeC.feature_importances_)


#حساب التوقع 
y_pred = DecisionTreeC.predict(X_test)
# حساب التوقع كقيماحتمالية
y_pred_prob = DecisionTreeC.predict_proba(X_test)

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...