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

Usar 2 arquivos diferentes - 1 para aprender e outro para classificar

Estou usando um excel com as mesmas colunas, so que em 1 estou usando para treino e no outro excel estou usando so para ser classificado, mais esta dando erro de Number of features of the model must match the input, segue o codigo

import pandas as pd
import numpy as np


from sklearn.dummy import DummyClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.ensemble import AdaBoostClassifier


dados = pd.read_csv('2regional_maquinas_classificacao_original.csv')

x1 = dados[['nome_maquina','memoria_ram','ip','digito_rede','nome_processador','login_rede']]
y1 = dados['validacao']

Xdummies_df = pd.get_dummies(x1)
Ydummies_df = y1

x = Xdummies_df.values
y = Ydummies_df.values

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 = AdaBoostClassifier()
modelo.fit(treino_x, treino_y)  #algoritmo aprendendo
previsoes = modelo.predict(teste_x)

#validando com as respostas as previsoes que foram dadas no x que sao os 25% dos dados, seria os dados novos que ele 
#esta classificando
acuracia = accuracy_score(teste_y, previsoes) * 100 
print("A acurácia do AdaBoostClassifier foi %.2f%%" % acuracia)

dummy_stratified = DummyClassifier()
dummy_stratified.fit(treino_x, treino_y)

acuracia = dummy_stratified.score(teste_x, teste_y) * 100
print("A acurácia do dummy foi de  %.2f%%" % acuracia)

dados_para_verificacao_automatica = pd.read_csv('central_maquinas_classificacao.csv')

X_df2 = dados_para_verificacao_automatica[['nome_maquina','memoria_ram','ip','digito_rede','nome_processador','login_rede']]

Xdummies_df2 = pd.get_dummies(X_df2)

x2 = Xdummies_df2.values

previsoes2 = modelo.predict(x2)

print(previsoes2.head())
2 respostas
solução!

galera achei a resposta, tem q concatenar os valores e depois treinar e testar e depois dar o predict no novo csv

https://stackoverflow.com/questions/44026832/valueerror-number-of-features-of-the-model-must-match-the-input

Boa Jardel!

Muito obrigado pro compartilhar com a gente sua solução =)

Fico feliz que tenha resolvido!

Abraço!