Decision Trees & Random Forest


ЁЯФ╖ рдкрд░рд┐рдЪрдп:

Decision Trees рдФрд░ Random Forest Supervised Learning рдХреЗ рджреЛ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдПрд▓реНрдЧреЛрд░рд┐рджреНрдо рд╣реИрдВред
рдпреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рд╣рдореЗрдВ explainable рдФрд░ interpretive рдореЙрдбрд▓ рдЪрд╛рд╣рд┐рдП рд╣реЛрддреЗ рд╣реИрдВред

рдЖрдк рд╕реЛрдЪрд┐рдП рдПрдХ рдЗрдВрд╕рд╛рди рдХреИрд╕реЗ рдлреИрд╕рд▓рд╛ рдХрд░рддрд╛ рд╣реИ?
рдЕрдЧрд░ “Age > 30” рд╣реИ тЖТ рдлрд┐рд░ “Income > тВ╣50k” тЖТ рдлрд┐рд░ рдирд┐рд░реНрдгрдп рд▓реЗрдВ
рдРрд╕рд╛ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ Decision Tree.


ЁЯФ╢ 1. Decision Tree (рдирд┐рд░реНрдгрдп рд╡реГрдХреНрд╖)

ЁЯУМ рдХреНрдпрд╛ рд╣реИ?

Decision Tree рдПрдХ рдЯреНрд░реА-рдЖрдзрд╛рд░рд┐рдд рдореЙрдбрд▓ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд (Split) рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ decision рддрдХ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХреЗред

ЁЯУК рдЙрджрд╛рд╣рд░рдг:

              рдЖрдпреБ > 30?
/ \
рд╣рд╛рдБ рдирд╣реАрдВ
/ \
рд╡реЗрддрди > 50k? No
/ \
рд╣рд╛рдБ рдирд╣реАрдВ
Yes No

тЬЕ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ:

рд╡рд┐рд╢реЗрд╖рддрд╛рд╡рд┐рд╡рд░рдг
Model TypeClassification рдпрд╛ Regression
Input DataStructured tabular data
OutputClass label рдпрд╛ Continuous value
Splitting BasisGini, Entropy, рдпрд╛ MSE
Explainabilityрдмрд╣реБрдд рдЕрдЪреНрдЫреА

ЁЯЫая╕П Decision Tree рдХреИрд╕реЗ рдмрдирддрд╛ рд╣реИ?

  1. Dataset рдХреЗ рдХрд┐рд╕реА feature рдкрд░ split рдХрд░реЛ
  2. Split рдХреЗ рдмрд╛рдж Impurity рдХрдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (Gini рдпрд╛ Entropy)
  3. рдпрд╣реА recursively рдХрд░рддреЗ рд╣реБрдП tree expand рд╣реЛрддрд╛ рд╣реИ
  4. Leaf nodes рдкрд░ final class рдпрд╛ value рддрдп рд╣реЛрддреА рд╣реИ

тЬЕ рд╕реНрдХрд┐рдХрд┐рдЯ-рд▓рд░реНрди (Scikit-Learn) рдХреЛрдб:

from sklearn.tree import DecisionTreeClassifier

model = DecisionTreeClassifier(criterion='gini') # рдпрд╛ entropy
model.fit(X_train, y_train)

y_pred = model.predict(X_test)

ЁЯФ╖ 2. Random Forest (рд░реИрдВрдбрдо рдлреЙрд░реЗрд╕реНрдЯ)

ЁЯУМ рдХреНрдпрд╛ рд╣реИ?

Random Forest рдПрдХ ensemble learning рддрдХрдиреАрдХ рд╣реИ рдЬреЛ рдХрдИ Decision Trees рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдПрдХ рдордЬрдмреВрдд рдореЙрдбрд▓ рдмрдирд╛рддреА рд╣реИред

рдПрдХ Decision Tree = рдПрдХ рдбреЙрдХреНрдЯрд░ рдХреА рд░рд╛рдп
Random Forest = 100 рдбреЙрдХреНрдЯрд░реЛрдВ рдХреА рд░рд╛рдп рдХрд╛ рдФрд╕рдд
рдЕрдзрд┐рдХ Trees тЖТ рдмреЗрд╣рддрд░ рдлреИрд╕рд▓рд╛


тЬЕ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ:

рд╡рд┐рд╢реЗрд╖рддрд╛рд╡рд┐рд╡рд░рдг
Algorithm TypeBagging (Bootstrap Aggregation)
Model StrengthHigh Accuracy, Low Variance
OverfittingрдХрдо рд╣реЛрддрд╛ рд╣реИ
Decision MethodVoting (Classification) / Averaging (Regression)

ЁЯЫая╕П рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

  1. Dataset рд╕реЗ random sampling рдХреЗ рдХрдИ subsets рдмрдирддреЗ рд╣реИрдВ
  2. рд╣рд░ subset рдкрд░ рдПрдХ рдЕрд▓рдЧ Decision Tree train рд╣реЛрддрд╛ рд╣реИ
  3. Prediction рдХреЗ рд╕рдордп: рд╕рднреА trees рдХреА рд░рд╛рдп рд▓реА рдЬрд╛рддреА рд╣реИ
  4. Final prediction: Majority Vote рдпрд╛ Average

тЬЕ рд╕реНрдХрд┐рдХрд┐рдЯ-рд▓рд░реНрди рдХреЛрдб:

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(n_estimators=100, criterion='gini')
model.fit(X_train, y_train)

y_pred = model.predict(X_test)

ЁЯФН Decision Tree vs Random Forest

рд╡рд┐рд╢реЗрд╖рддрд╛Decision TreeRandom Forest
AccuracyMediumHigh
Overfitting RiskHighLow
ExplainabilityHighLow
SpeedFastSlower (more trees)
Use CasesSimple decision makingHigh performance tasks

ЁЯУК Summary Table:

AlgorithmTypeStrengthCommon Use Cases
Decision TreeSingle ModelEasy to interpretCredit scoring, Rules
Random ForestEnsembleRobust, less overfittingMedical diagnosis, Finance

ЁЯУЭ Practice Questions:

  1. Decision Tree рдХрд┐рд╕ principle рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
  2. Entropy рдФрд░ Gini Index рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  3. Random Forest overfitting рд╕реЗ рдХреИрд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ?
  4. Decision Tree explainable рдХреНрдпреЛрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ?
  5. рдПрдХ real-life use case рдмрддрд╛рдЗрдП рдЬрд╣рд╛рдБ Random Forest рдмреЗрд╣рддрд░ рд╣реИред