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

السؤال

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...