Menu
CoddyTech
flag Ar iconالعربيةdown icon

الغابات العشوائية

جزء من قسم التعلّم الخاضع للإشراف في رحلة Machine Learning على Coddy. الدرس 41 من 58.

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

تُدرِّب الغابة العشوائية العديد من الأشجار وتدعها تصوّت. إليك سبع أشجار تجيب عن نبع ماء حار واحد:

سبع أشجار صغيرة في صف، أسفل كل منها تصويتها: نعم، نعم، لا، نعم، نعم، لا، نعم. تؤدي الأسهم من كل تصويت إلى صندوق واحد مكتوب فيه: الغابة: نعم، 5 أصوات مقابل 2

في البرمجة، هذا نموذج إضافي آخر لتدريبه:

from sklearn.ensemble import RandomForestClassifier

forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
print(forest.score(X_test, y_test))

عند استخدام بيانات 300 يوم من أيام السخان، تطبع هذه العبارة 0.893، بينما حققت شجرة واحدة 0.813. يشير n_estimators إلى عدد الأشجار.

ناخبون كثيرون، أخطاء أقل.

challenge icon

التحدي

متوسط

تريد مدرسة للكلاب المرشدة أن تعرف مبكرًا أي الجراء ستتأهل. يقسم البرنامج التمهيدي البيانات في puppies.csv، ويقيّم شجرة واحدة، ويقرأ عددًا من الأشجار.

  1. درّب غابةً تضم ذلك العدد من الأشجار (random_state=0) واطبع دقتها على بيانات الاختبار.
  2. اطبع النموذج الفائز ومقدار فوزه، أو A tie.

لِمدرسة أخرى ومع 50:

Single tree: 0.740
Forest: 0.860
The forest wins by 0.120

ثم جرّب 1: أداء غابة من شجرة واحدة سيئ على نحو مفاجئ. يوضح الدرس التالي السبب.

جرّب بنفسك

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier

# جراء في مدرسة لتدريب الكلاب المرشدة: الهدوء والتركيز والفزع من الأصوات العالية (1 إلى 10)،
# الوزن، والأشهر التي قضتها مع الأسرة التي ربّتها، وما إذا كانت مؤهلة لتكون كلابًا مرشدة (1) أم لا (0)
puppies = pd.read_csv("puppies.csv")
X = puppies[["calmness", "focus", "noise_startle", "weight_kg", "months_with_family"]]
y = puppies["qualified"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
trees = int(input())

# لا تغيّر الأسطر أدناه: شجرة واحدة عليك التفوق عليها
tree = DecisionTreeClassifier(random_state=0)
tree.fit(X_train, y_train)
tree_acc = tree.score(X_test, y_test)
print(f"Single tree: {tree_acc:.3f}")

# اكتب الكود الخاص بك أدناه
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس التعلّم الخاضع للإشراف

تدرّب بنفسك: مترجم Python عبر الإنترنت