Executei o SVC após o LinearSVC da forma simples como mostrado na vídeo-aula, mas não encontrei o mesmo resultado que no vídeo, mesmo usando o mesmo seed:
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
SEED = 5
np.random.seed(SEED)
X = dados[['horas_esperadas', 'preco']]
y = dados['finalizado']
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 = SVC()
modelo.fit(treino_X, treino_y)
previsoes = modelo.predict(teste_X)
acuracia = accuracy_score(teste_y, previsoes)
print("A acuracia foi de %.2f%%" % (acuracia*100))
print(treino_y.value_counts())
print(teste_y.value_counts())
Resultado:
Treinaremos com 1617 elementos e testaremos com 540 elementos
A acuracia foi de 55.19%
1 850
0 767
Name: finalizado, dtype: int64
1 284
0 256
Name: finalizado, dtype: int64
A decision boundary encontrada também foi linear, como no LinearSVC.
O que há de errado neste código?