Изменения

Перейти к: навигация, поиск

Дерево решений и случайный лес

2704 байта добавлено, 01:57, 29 ноября 2020
Пример на языке R
Таким образом, случайный лес {{---}} бэггинг над решающими деревьями, при обучении которых для каждого разбиения признаки выбираются из некоторого случайного подмножества признаков.
== Примеры использования (в scikit-learn) кода=====Примеры на языке Python===
*Для решения задач классификации и регрессии используют [https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier DecisionTreeClassifier], [https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeRegressor.html#sklearn.tree.DecisionTreeRegressor DecisionTreeRegressor];
[[Файл:RFC.png |800px|thumb|center|Классификация RandomForestClassifier. Кружочками изображены объекты обучающей выборки, крестиками тестовой выборки. Справа цветом выделены границы принятия решений, в правом нижнем углу {{---}} значение accuracy.]]
=== Пример на языке Scala ===
SBT зависимость:
libraryDependencies '''+=''' "com.github.haifengl" '''%%''' "smile-scala" '''%''' "1.5.2"
'''val '''f1Score = '''new '''FMeasure().measure(predictions, y)
plot(x, y, dt)
 
===Пример на языке Java===
Пример классификации с применением <code>weka.classifiers.trees.RandomForest</code><ref>[http://weka.sourceforge.net/doc.dev/weka/classifiers/trees/RandomForest.html Weka, Random Forest]</ref>
 
<code>Maven</code> зависимость:
<dependency>
<groupId>nz.ac.waikato.cms.weka</groupId>
<artifactId>weka-stable</artifactId>
<version>3.8.0</version>
</dependency>
 
'''import''' weka.classifiers.evaluation.Evaluation;
'''import''' weka.classifiers.trees.RandomForest;
 
<font color="green">// read dataset</font>
'''var''' trainingDataSet = getDataSet(...);
'''var''' testingDataSet = getDataSet(...);
<font color="green">// create random forest classifier</font>
'''var''' forest = new RandomForest();
forest.setMaxDepth(15);
forest.setNumFeatures(2);
forest.buildClassifier(trainingDataSet);
<font color="green">// evaluate the model on test dataset and print summary</font>
'''var''' eval = new Evaluation(trainingDataSet);
eval.evaluateModel(forest, testingDataSet);
System.out.println(eval.toSummaryString());
 
=== Пример на языке R ===
{{Main|Примеры кода на R}}
==== Деревья решений ====
Для создания деревьев решений используется функция <code>ctree()</code> из пакета <code>party</code>.
 
<font color="gray"># importing package </font>
install.packages(<font color="green">"party"</font>)
<font color="gray"># reading data</font>
rdata <- read.csv(<font color="green">"input.csv"</font>, <font color="#660099">sep</font> = <font color="green">','</font>, <font color="#660099">header</font> = FALSE)
<font color="gray"># evaluating model</font>
output.tree <- ctree(target ~ x + y + z, <font color="#660099">data</font> = rdata)
<font color="gray"># plotting results</font>
plot(output.tree)
 
==== Случайный лес ====
Для создания случайного леса необходимо импортировать пакет <code>randomForest</code>
 
<font color="gray"># importing packages </font>
install.packages(<font color="green">"party"</font>)
install.packages(<font color="green">"randomForest"</font>)
<font color="gray"># reading data</font>
rdata <- read.csv(<font color="green">"input.csv"</font>, <font color="#660099">sep</font> = <font color="green">','</font>, <font color="#660099">header</font> = FALSE)
<font color="gray"># creating the forest</font>
output.forest <- randomForest(target ~ x + y + z, <font color="#660099">data</font> = rdata)
<font color="gray"># getting results</font>
print(output.forest)
== См. также ==
286
правок

Навигация