1
resposta

erro que nao faz sentido

import pandas as pd
from collections import Counter

df = pd.read_csv('situacao_do_cliente.csv')
X_df = df[['recencia','frequencia', 'semanas_de_inscricao']]
Y_df = df['situacao']

Xdummies_df = pd.get_dummies(X_df)
Ydummies_df = Y_df

X = Xdummies_df.values
Y = Ydummies_df.values 

porcentagem_de_treino = 0.8

tamanho_de_treino = int(porcentagem_de_treino * len(Y))

treino_dados = X[:tamanho_de_treino]
treino_marcacoes = Y[:tamanho_de_treino]

validacao_dados = X[tamanho_de_treino:]
validacao_marcacoes = Y[tamanho_de_treino:]

from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import LinearSVC
from sklearn.model_selection import cross_val_score
import numpy as np
modelo = OneVsRestClassifier(LinearSVC(random_state = 0))
k = 10
scores = cross_val_score(modelo, treino_dados, treino_marcacoes, cv = k)
taxa_de_acerto = np.mean(scores)
print(scores)
print(taxa_de_acerto)

o metodo "sklearn.cross_validation" foi trocado pelo "sklearn.model_selection" isso nao foi problema só trabalhoso, mas tem uma coisa acontecendo, quando inicio o codigo ele carrega e da o resultado mas dps de varias linhas dando uma resposta assim =="the number of iterations.", ConvergenceWarning) C:\Users\T-Gamer\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sklearn\svm\base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations."== nao sei oque é isso é algum problema ?

1 resposta

Olá Juan.

Esse Warning foi incluído em uma versão diferente da utilizada no curso e esse aviso, que vem do modelo LinearSVC, está associado que o nosso numero de características é menor que o nosso numero de amostras.

Na documentação o recomendando para esse tipo situação é colocar o parâmetro dual com o valor False, esse parâmetro diz para o modelo qual problema de otimização ele vai tentar resolver, isso está associado ao funcionamento interno do LinearSVC que você pode ver em detalhes na documentação.

Vamos fazer essa modificação quando criamos o modelo.

modeloOneVsRest = OneVsRestClassifier(LinearSVC(random_state=0, dual=False))
k = 10

E isso vai resolver o seu problema com o Warning, Bons Estudos.