Skip to content

Commit bf37135

Browse files
Adicionando Random Forest
1 parent f82b19b commit bf37135

File tree

2 files changed

+58
-1
lines changed

2 files changed

+58
-1
lines changed

forest.jpg

26.5 KB
Loading

product-solution.md

+58-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
```python
1+
```{.python .input}
22
# Configure to show multiples outputs from a single cell
33
from IPython.core.interactiveshell import InteractiveShell
44
InteractiveShell.ast_node_interactivity = "all"
@@ -16,3 +16,60 @@ with zipfile.ZipFile('Datasets.zip') as ziped_file:
1616
df_train.head() # It has target
1717
df_test.head() # It hasn't target
1818
```
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

Comments
 (0)