Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

stratify=y

No modelo KNN existe a opção de usar o stratify = y. Eu usei e melhorou um pouco o resultado do modelo. Alguma consideração a respeito desse recurso? Uso? Não uso? Se uso, como uso? Obrigado desde já e segue o código.

X_treino, X_teste, y_treino, y_teste = train_test_split(X_normalizado, y, test_size=0.3, random_state=123, stratify = y)
#Exemplo - análise das precisões calculadas anteriormente
print('Modelo KNN: ', precision_score(y_teste, predito_knn))
print('Modelo Bernoulli de Naive Bayes: ', precision_score(y_teste, predito_BNb))
print('Modelo Árvore de Decisão: ', precision_score(y_teste, predito_ArvoreDecisao))
Modelo KNN:  0.8040416411512553
Modelo Bernoulli de Naive Bayes:  0.7198014340871484
Modelo Árvore de Decisão:  0.802461139896373
4 respostas
solução!

Oi, Fabricio! Tudo bem com você?

O stratify é um parâmetro que garante que a divisão de valores nas amostras de treino e teste tenham a mesma proporção de valores que a oferecida como variável nela, no seu caso o y.

Por exemplo, se a variável y for uma variável categórica binária, e se houver uma proporção de 25% de 1 e 75% de resultados 0, o stratify=y vai garantir que sua divisão aleatória tenha 75% de zeros e 25% de uns também. É mais utilizada quando os dados estão desbalanceados para garantir que eles mantenham a mesma proporção e não prejudique tanto os resultados de aprendizado e testagem.

Espero ter te ajudado. Bons estudos!

Obrigado, Mirla, entendi! Como fizemos o balanceamento dos dados podemos prescindir desse parâmetro? Ou uma coisa não tem nada a ver com a outra?

Oi, Fabricio!

Pensando bem, melhor sempre utilizar esse parâmetro, pois ele é a nossa única garantia que os dados vão manter a mesma distribuição, isso tanto para dados balanceados ou desbalanceados ;-)

Beleza, entendi! Obrigado!