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

Renomear = > dummy_stratified

from sklearn.dummy import DummyClassifier

dummy_stratified = DummyClassifier()
dummy.fit(treino_x, treino_y)
previsoes = dummy.predict(teste_x)

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

Acho que faltou renomear de dummy para dummy_stratifier na terceira e quarta linha de código na parte escrita.

dummy.fit(treino_x, treino_y)
previsoes = dummy.predict(teste_x)

para:

dummy_stratifier.fit(treino_x, treino_y)
previsoes = dummy_stratifier.predict(teste_x)
7 respostas

Olá Bruno tudo bem com você??

Fiquei observando aqui a sua anotação, o código da aula e o meu note, e eu pude perceber que existe uma divergência na anotação que você colocou aqui na dúvida.

A utilização do Dummy_Stratifier ela vem depois da primeira análise feita sem ele, que ocorre ali do dummy.predict. Após a importação é feito uma nova análise buscando prever e já mostrar acurácia e depois relacionado a maior frequência.

Segue o código primeira parte:

x = dados[["preco", "idade_do_modelo", "km_por_ano"]] #selecionando os eixos que serão analisados
y = dados["vendido"]

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score

x = dados[["preco", "idade_do_modelo", "km_por_ano"]]
y = dados["vendido"]

SEED = 5
np.random.seed(SEED)
treino_x, teste_x, treino_y, teste_y = train_test_split(x, y, test_size = 0.25,
                                                         stratify = y)
print("Treinaremos com %d elementos e testaremos com %d elementos" % (len(treino_x), len(teste_x)))

modelo = LinearSVC()
modelo.fit(treino_x, treino_y)
previsoes = modelo.predict(teste_x)

acuracia = accuracy_score(teste_y, previsoes) * 100
print("A acurácia foi %.2f%%" % acuracia)

Segunda parte (importando o DummyClassifier:

from sklearn.dummy import DummyClassifier #Importando uma linha de base para servir de parâmetro

dummy_stratified = DummyClassifier()
dummy_stratified.fit(treino_x, treino_y) #treinando o modelo
previsoes = dummy_stratified.score(teste_x, teste_y) * 100 #usando a biblioteca para prever e já mostrar acurácia

print("A acurácia do dummy stratified foi %.2f%%" % acuracia) 

Terceira parte prevendo a maior frequência:

from sklearn.dummy import DummyClassifier #Importando uma linha de base para servir de parâmetro

dummy_mostfrequent = DummyClassifier()
dummy_mostfrequent.fit(treino_x, treino_y) #treinando o modelo
previsoes = dummy_mostfrequent.score(teste_x, teste_y) * 100 #prevendo através da maior frequência

print("A acurácia do dummy mostfrequent foi %.2f%%" % acuracia) 

Espero ter ajudado, qualquer dúvida é só chamar!

Acho que não fui claro e isso pode ter causado uma confusão entre o que eu tentei dizer o que você entendeu. Peço desculpas por isso.

O código que você se refere na segunda parte, deveria constar naquela parte escrita abaixo do vídeo. Se der uma olhadinha naquele texto vai ver que pode ter havido um equivoco na hora de escrever/colar. Ele mostra o código antes de realizar a renomeação completa e a seguir diz que a acurácia foi de 50.68%.

Como não há opção de legenda no vídeo, faço quase sempre primeiramente a leitura do texto, executo o código passo-a-passo. Percebi que talvez faltou renomear o dummy do fit e do predict.

Abraço!

Oi Bruno, não precisa se desculpar não, tá em casa =)

Então ele tá lá mas a variável tá declarada como acurácia

Imgur

única diferença.

correto?

Me referia ao código um pouco acima deste.


Oi Bruno chegou a acompanhar com o vídeo?

Teve algum erro no resultado?

solução!

Posteriormente acompanhei com o vídeo. Mas não gerou erro porque renomeei tudo antes de rodar.

Não seria o tipo de escrita que geraria uma exceção pela forma que coloquei, mas me traria o resultado do código anterior. Mais ou menos como o exemplo abaixo:


>>> a = 5
>>> b = 5
>>> c = a + b
>>> c = 10

>>> a_dummy = 6
>>> c_dummy = a + b
>>> c_dummy = 10

Obrigado! Abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software