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

تطبيق Decision Tree لمهمة توقع Regression  باستخدام مكتبة Sklearn

Meezo ML

السؤال

Recommended Posts

  • 1

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

sklearn.tree.DecisionTreeRegressor

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

sklearn.tree.DecisionTreeRegressor( criterion='mse', 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,   ccp_alpha=0.0)

الوسطاء نفسها في حالة التصنيف مع بعض الاختلافات في القيم:
criterion: الأسلوب الرياضي للمعالجة وتكون {“mse”, “friedman_mse”, “mae”, “poisson”}, "default=”mse
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
التوابع:
fit(data): للقيام بعملية التدريب.
predict(data): لتوقع القيم.
score(data):  لتقييم كفاءة النموذج.
()get_params :لايجاد مقدار الدقة
predict_proba(data) : لعمل التوقع أيضاً لكن هنا سيخرج الفيمة الاحتمالية(أي لن يتم القصر على  عتبة)
apply(data):  ياتي لك بقيمة الورقة المحسوبة.
()get_n_leaves: يرد عدد الأوراق.
()get_depth: يرد عمق الشجرة.
ال attributtes:
classes_: لعرض ال labels التي وجدها.
feature_importances_: عرض أهم الفيتشرز المؤثرة في التوقع.
مثال:

# بيانات أسعار المنازل في مدينة بوسطن
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
# تحميل الداتا
BostonData = load_boston()
data = BostonData.data
labels = BostonData.target
# تقسيم البيانات
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, shuffle =True, random_state=2021)
# DecisionTreeRegressor تطبيق 
DecisionTreeR = DecisionTreeRegressor(random_state=20)
DecisionTreeR.fit(X_train, y_train)

#حساب الدقة 
print('Train Score is : ' , DecisionTreeR.score(X_train, y_train))
print('Test Score is :  ' , DecisionTreeR.score(X_test, y_test))

#حعرض التوقعات 
y_pred = DecisionTreeR.predict(X_test)
print(y_pred)

 

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...