Python Academy · पाठ

ट्री-आधारित मॉडल: निर्णय वृक्ष और रैंडम फ़ॉरेस्ट

निर्णय वृक्ष और एन्सेम्बल फ़ॉरेस्ट मॉडल बनाएँ और ट्यून करें।

पाठ 3, कुल 4 में से13 चरण

ट्री-आधारित मॉडल: निर्णय वृक्ष और रैंडम फ़ॉरेस्ट, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

निर्णय वृक्ष की अवधारणाएँ

निर्णय वृक्ष द्विआधारी प्रश्नों की एक शृंखला पूछकर डेटा को उपसमुच्चयों में बाँटता है। प्रत्येक आंतरिक नोड एक विशेषता की सीमा होता है; प्रत्येक पत्ती एक अनुमान होती है।

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)
model = DecisionTreeClassifier(max_depth=3, random_state=0).fit(X, y)
print("Depth:", model.get_depth())
print("Leaves:", model.get_n_leaves())

DecisionTreeClassifier

मुख्य हाइपरपरिमापदंड हैं: max_depth, min_samples_split, min_samples_leaf। अधिक गहरे वृक्ष अतिफिट होते हैं; कम गहरे वृक्ष अल्प-अनुकूलित होते हैं।

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)

model = DecisionTreeClassifier(max_depth=5, min_samples_leaf=5)
model.fit(X_tr, y_tr)
print("Test acc:", model.score(X_te, y_te))

DecisionTreeRegressor

निर्णय वृक्ष प्रतिगमन भी संभालते हैं और प्रत्येक पत्ती में लक्ष्य मान के माध्य का अनुमान लगाते हैं।

from sklearn.tree import DecisionTreeRegressor
from sklearn.datasets import make_regression
from sklearn.metrics import mean_squared_error

X, y = make_regression(noise=15, random_state=0)
model = DecisionTreeRegressor(max_depth=4).fit(X, y)
print("RMSE:", mean_squared_error(y, model.predict(X))**0.5)

विशेषता का महत्व

model.feature_importances_ अशुद्धता में कमी के आधार पर प्रत्येक विशेषता का सापेक्ष महत्व देता है।

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
import numpy as np

X, y = load_iris(return_X_y=True)
feature_names = load_iris().feature_names
model = DecisionTreeClassifier().fit(X, y)
for name, imp in sorted(zip(feature_names, model.feature_importances_), key=lambda x: -x[1]):
    print(f"{name}: {imp:.3f}")

रैंडम फ़ॉरेस्ट का परिचय

रैंडम फ़ॉरेस्ट बूटस्ट्रैप नमूनों पर कई असहसंबद्ध निर्णय वृक्षों को प्रशिक्षित करता है और उनके अनुमानों का माध्य निकालता है — इससे पक्षपात बढ़ाए बिना विचरण कम होता है।

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)

model = RandomForestClassifier(n_estimators=100, random_state=0)
model.fit(X_tr, y_tr)
print("Test acc:", model.score(X_te, y_te))

RandomForestRegressor

रैंडम फ़ॉरेस्ट प्रतिगमन के लिए भी उतने ही अच्छे ढंग से काम करते हैं।

from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import make_regression
from sklearn.metrics import r2_score

X, y = make_regression(noise=10, random_state=0)
model = RandomForestRegressor(n_estimators=100, random_state=0).fit(X, y)
print("R²:", r2_score(y, model.predict(X)))

आउट-ऑफ़-बैग स्कोर

प्रत्येक वृक्ष के बूटस्ट्रैप में शामिल न हुए नमूनों का उपयोग करके निःशुल्क सत्यापन स्कोर पाने के लिए oob_score=True सेट करें — अलग परीक्षण समुच्चय की आवश्यकता नहीं होती।

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification

X, y = make_classification(random_state=0)
model = RandomForestClassifier(n_estimators=100, oob_score=True, random_state=0).fit(X, y)
print("OOB score:", model.oob_score_)

ग्रेडिएंट बूस्टिंग

ग्रेडिएंट बूस्टिंग (GBM) वृक्षों को क्रमिक रूप से प्रशिक्षित करता है और प्रत्येक वृक्ष पिछले वृक्ष की त्रुटियों को सुधारता है। यह अक्सर रैंडम फ़ॉरेस्ट से अधिक सटीक होता है, लेकिन इसे प्रशिक्षित करने में अधिक समय लगता है।

from sklearn.ensemble import GradientBoostingClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)
model = GradientBoostingClassifier(n_estimators=100).fit(X_tr, y_tr)
print("Test acc:", model.score(X_te, y_te))

XGBoost / LightGBM

XGBoost और LightGBM अनुकूलित ग्रेडिएंट बूस्टिंग लाइब्रेरी हैं — ये sklearn के GBM से अधिक तेज़, अधिक मापनीय और अक्सर अधिक सटीक हैं।

# pip install xgboost lightgbm
from xgboost import XGBClassifier
from lightgbm import LGBMClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(random_state=0)
X_tr, X_te, y_tr, y_te = train_test_split(X, y, random_state=0)

xgb = XGBClassifier(n_estimators=100, eval_metric="logloss").fit(X_tr, y_tr)
print("XGB acc:", xgb.score(X_te, y_te))

n_estimators का समायोजन

रैंडम फ़ॉरेस्ट में अधिक वृक्ष, एक सीमा तक, अतिफिटिंग किए बिना विचरण कम करते हैं। सर्वोत्तम संख्या खोजने के लिए सत्यापन वक्र का उपयोग करें।

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
from sklearn.datasets import make_classification
import numpy as np

X, y = make_classification(random_state=0)
for n in [10, 50, 100, 200]:
    scores = cross_val_score(RandomForestClassifier(n_estimators=n, random_state=0), X, y, cv=5)
    print(f"n={n}: {scores.mean():.3f}")

निर्णय वृक्ष का दृश्यांकन

वृक्ष ने क्या सीखा, यह देखने के लिए sklearn.tree.plot_tree या export_text का उपयोग करें।

from sklearn.tree import DecisionTreeClassifier, export_text, plot_tree
from sklearn.datasets import load_iris

X, y = load_iris(return_X_y=True)
model = DecisionTreeClassifier(max_depth=2).fit(X, y)
print(export_text(model, feature_names=load_iris().feature_names.tolist()))

त्वरित जाँच

एकल निर्णय वृक्ष की तुलना में रैंडम फ़ॉरेस्ट अतिफिटिंग को कैसे कम करता है?

पुनरावलोकन

निर्णय वृक्ष विशेषताओं की सीमाओं के आधार पर डेटा बाँटते हैं और पत्ती के मानों से अनुमान लगाते हैं। अतिफिटिंग नियंत्रित करने के लिए max_depth का समायोजन करें। रैंडम फ़ॉरेस्ट कम विचरण के लिए कई वृक्षों के अनुमानों का माध्य निकालते हैं। अधिक सटीकता के लिए ग्रेडिएंट बूस्टिंग वृक्षों को क्रमिक रूप से प्रशिक्षित करता है। उत्पादन में XGBoost या LightGBM को प्राथमिकता दें।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
76
पाठ
320

अक्सर पूछे जाने वाले प्रश्न

क्या “ट्री-आधारित मॉडल: निर्णय वृक्ष और रैंडम फ़ॉरेस्ट” पाठ निःशुल्क है?

हाँ—“ट्री-आधारित मॉडल: निर्णय वृक्ष और रैंडम फ़ॉरेस्ट” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“ट्री-आधारित मॉडल: निर्णय वृक्ष और रैंडम फ़ॉरेस्ट” में मैं क्या सीखूँगा?

निर्णय वृक्ष और एन्सेम्बल फ़ॉरेस्ट मॉडल बनाएँ और ट्यून करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“ट्री-आधारित मॉडल: निर्णय वृक्ष और रैंडम फ़ॉरेस्ट” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. scikit-learn API: fit, transform, predict
  2. रैखिक मॉडल: प्रतिगमन और वर्गीकरण
  3. ट्री-आधारित मॉडल: निर्णय वृक्ष और रैंडम फ़ॉरेस्ट
  4. मॉडल मूल्यांकन और क्रॉस-वैलिडेशन
← Python Academy पर वापस जाएँ