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

LinearSVC e DummyClassifier com mesma acuracia

Na aula 5 do curso machine learning introducao a classificacao com sklearn, a acurácia do LinearSVC foi igual ao DummyClassifier. Devo incluir algum parâmetro adicional devido as versões de imports diferentes das utilizadas no vídeo ?

import pandas as pd
from datetime import datetime
import seaborn as sns
import sklearn as sklearn
from sklearn.model_selection import train_test_split
from sklearn.svm import LinearSVC
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
from sklearn.preprocessing import StandardScaler
from sklearn.dummy import DummyClassifier
import numpy as np
print("Versão do pandas:", pd.__version__)
print("Versão do seaborn:", sns.__version__)
print("Versão do sklearn:", sklearn.__version__)
print("Versão do numpy:", np.__version__)

Versão do pandas: 1.1.3
Versão do seaborn: 0.11.0
Versão do sklearn: 0.23.2
Versão do numpy: 1.19.2

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(dual = False)
modelo.fit(treino_x, treino_y)
previsoes = modelo.predict(teste_x)

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

Treinaremos com 7500 elementos e testaremos com 2500 elementos
A acuracia foi 65.40%

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

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

A acuracia foi 65.40%

C:\Users\marlo\anaconda3\lib\site-packages\sklearn\dummy.py:131: FutureWarning: The default value of strategy will change from stratified to prior in 0.24.
  warnings.warn("The default value of strategy will change from "
1 resposta
solução!

peço encerrar este questionamento, pois encontrei meu erro no cálculo de previsoes do DummyClassifier estou chamando o modelo.predict e não dummy.predict