1
- ``` python
1
+ ``` {. python .input}
2
2
# Configure to show multiples outputs from a single cell
3
3
from IPython.core.interactiveshell import InteractiveShell
4
4
InteractiveShell.ast_node_interactivity = "all"
@@ -16,3 +16,60 @@ with zipfile.ZipFile('Datasets.zip') as ziped_file:
16
16
df_train.head() # It has target
17
17
df_test.head() # It hasn't target
18
18
```
19
+
20
+ # Random Forest
21
+
22
+ Breiman breiman, 2001, descreve Random Forests como uma evolução das decisions
23
+ trees, onde várias ávores são formadas para criar um modelo com maior precisão.
24
+ Isto é feito a partir da separação dos Dados em conjutos
25
+ de dados menores e aleatórios. Cada árvore é contruida a partir de um pedaço
26
+ aleatório dos dados. Quando um novo dado chega, a predição é feita por todas as
27
+ Árvores e ao fim é feita uma
28
+ votação por maioria, ou seja, a categoria com mais votos ganha e o resultado é
29
+ dado.
30
+
31
+ ![ Workflow Random forest] ( forest.jpg )
32
+
33
+ De acordo com breiman, 2001, as RFs corrigem a maior parte dos problemas de
34
+ Overfitting que as Árvores de decisão apresentam. Tudo depende do quanto as DT
35
+ contidas dentro da Random Forest. Isto é, o quanto elas representam os dados.
36
+
37
+ Referências:
38
+
39
+ [ BREIMAN] ( https://www.stat.berkeley.edu/users/breiman/randomforest2001.pdf ) ,
40
+ Leo. Random forests. Machine learning, v. 45, n. 1, p. 5-32, 2001.
41
+
42
+ ## Utilizando o algoritmo
43
+
44
+ ``` {.python .input}
45
+ X = df_train.drop("target", axis=1)
46
+ Y = df_train.iloc[:,-1]
47
+ ```
48
+
49
+ ``` {.python .input}
50
+ from sklearn.model_selection import cross_val_score
51
+ from sklearn.ensemble import RandomForestClassifier
52
+
53
+ clf = RandomForestClassifier(n_estimators=10)
54
+ clf = clf.fit(X, Y)
55
+
56
+ ```
57
+
58
+ ## Importancia das features para a RF
59
+
60
+ ``` {.python .input}
61
+ clf.feature_importances_
62
+ ```
63
+
64
+ ## Verificando a acurácia
65
+
66
+ ``` {.python .input}
67
+ clf.score(X,Y)
68
+ ```
69
+
70
+ ## Verificando com Cross Validation
71
+
72
+ ``` {.python .input}
73
+ scores = cross_val_score(clf, X, Y)
74
+ scores.mean()
75
+ ```
0 commit comments