Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Desafio Aula 04

Em contraste ao que encontrei na opinião do instrutor encontrei outro modelo melhor que o "RandomForest, usando o max_depth = 2". Na realidade esse foi o pior modelo dentro do meu desafio.

modelo_arvore = DecisionTreeClassifier(max_depth=3, random_state=5)
skf = StratifiedKFold(n_splits=10, shuffle=True, random_state=5)
pipeline_arvore = imb_pipeline([('oversample', SMOTE()), ('Árvore', modelo_arvore)])
resultados_arvore = cross_val_score(pipeline_arvore, x, y, cv = skf, scoring='f1')
print(f'F1 (Decision Tree):{resultado_arvore.mean()}')

F1 (Decision Tree):0.7085561497326203

modelo_rf = RandomForestClassifier(max_depth=2, random_state=5)
skf = StratifiedKFold(n_splits=10, shuffle=True, random_state=5)
pipeline_rf = imb_pipeline([('oversample', SMOTE()), ('random_forest', modelo_rf)])
resultados_rf = cross_val_score(pipeline_rf, x, y, cv = skf, scoring = 'f1')
print(f'F1 (Random Forest):{resultados_rf.mean()}') 

F1 (Random Forest):0.6288571392781627

modelo_arvore = DecisionTreeClassifier(max_depth=3, random_state=5)
skf = StratifiedKFold(n_splits=10, shuffle=True, random_state=5)
pipeline_arvore = imb_pipeline([('undersample', NearMiss(version=3)), ('Árvore', modelo_arvore)])
resultados_arvore = cross_val_score(pipeline_arvore, x, y, cv = skf, scoring='f1')
print(f'F1 (Decision Tree):{resultado_arvore.mean()}')

F1 (Decision Tree):0.7085561497326203

modelo_rf = RandomForestClassifier(max_depth=2, random_state=5)
skf = StratifiedKFold(n_splits=10, shuffle=True, random_state=5)
pipeline_rf = imb_pipeline([('undersample', NearMiss(version=3)), ('random_forest', modelo_rf)])
resultados_rf = cross_val_score(pipeline_rf, x, y, cv = skf, scoring = 'f1')
print(f'F1 (Random Forest):{resultados_rf.mean()}')

F1 (Random Forest):0.6174906570165192

O correto é que quanto menor o F1-socre melhor o modelo correto? Logo seria qualquer um dos dois modelos de DecisionTree, pois ficaram empatados com maior score.

1 resposta
solução!

Olá, Caio! Como vai?

Primeiramente, parabéns por concluir o desafio!! Continue com esse empenho e dedicação!

O F1-Score é uma métrica que combina precisão e recall, e quanto maior o F1-Score, melhor é o desempenho do modelo. Portanto, um F1-score mais alto indica um modelo melhor, pois, ele reflete um equilíbrio entre precisão e recall.

Nos seus resultados, os modelos de árvore de decisão têm F1-scores de aproximadamente 0.708, e são os maiores entre os testados. Com base nisso, podemos afirmar que esses modelos performaram (como você mencionou).

Espero ter ajudado!

Abraço! :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!