1
resposta

Não entendi o Dummy

Olá, boa tarde.

Estou acompanhando e fazendo tudo junto com o professor. Assim que termina cada aula (vídeo) eu vou lá, escrevo no meu prompt e averiguo se está igual, até para me policiar e tentar resolver futuros erros meus. Me policiar mesmo se consegui entender.

Acontece que quando chegou no Dummy, eu vi, revi e repliquei várias vezes, sendo um "testador burro" e eles são... identicos. Basicamente não achei NADA que modificasse de um para o outro.

É como se eu estivesse fazendo 2 stratify. Procurei até no código do próprio professor e não achei a parte que diz para o outro dummy = "você é o mos_frequent" só achei... o nome da variável que é most_frequent.

Alguém pode me ajudar? a entender e modificar e aonde eu modificaria? Desde já agradeço a paciência e compreensão.

1 resposta

Olá, Kleber! Tudo bem com você?

Há algumas ressalvas a serem feitas em relação ao classificador utilizado.

  1. Atualizaram o parâmetro padrão do strategy. A versão utilizada durante o curso é a 0.20.0, e na versão 0.24 esse parâmetro foi modificado, conforme nos avisa a documentação:

Alterado na versão 0.24: O valor padrão da strategy foi alterado para “prior” na versão 0.24.

Portanto, se você não passar nada para esse parâmetro, a estratégia usada será diferente da usada durante o vídeo, que é a stratified.

  1. Durante o vídeo, o instrutor não muda o parâmetro padrão, deixando-o da seguinte forma:
dummy_stratified = DummyClassifier()
dummy_mostfrequent = DummyClassifier()

Portanto, ao fazer isso, realmente os classificadores apresentados sairão iguais, justamente porque não é modificado esse parâmetro padrão.

A forma correta de fazer é especificando qual estratégia utilizar durante o treinamento da seguinte forma:

stratified

from sklearn.dummy import DummyClassifier

dummy_stratified = DummyClassifier(strategy='stratified')
dummy_stratified.fit(treino_x, treino_y)
previsoes = dummy_stratified.predict(teste_x)

acurácia = accuracy_score(teste_y, previsões) * 100
print("A acurácia do dummy foi %.2f%%" % acurácia)

most_frequent

dummy_mostfrequent = DummyClassifier(strategy="most_frequent")
dummy_mostfrequent.fit(treino_x, treino_y)
previsoes = dummy_mostfrequent.predict(teste_x)

acurácia = accuracy_score(teste_y, previsões) * 100
print("A acurácia do dummy most frequent foi %.2f%%" % acurácia)

Dessa forma, você terá dois classificadores dummy diferentes.

Vale ressaltar que os cursos de machine learning estão passando por um processo de atualização.

Qualquer dúvida estou à disposição. Bons estudos.