Estou fazendo um projeto sobre o problema de identificação do autor. Eu tinha aplicado a normalização tf-idf para treinar dados e, em seguida, treinei um svm nesses dados.
Agora, ao usar o classificador, devo normalizar os dados de teste também. Eu sinto que o objetivo básico da normalização é fazer com que algo de aprendizado dê mais peso a recursos mais importantes durante o aprendizado. Portanto, uma vez treinado, ele já sabe quais recursos são importantes e quais não são. Então, também é necessário aplicar a normalização para testar dados?
Eu sou novo neste campo. Então, por favor, ignore se a pergunta parecer boba?
machine-learning
neural-network
deep-learning
Kishan Kumar
fonte
fonte
Respostas:
Sim, você precisa aplicar a normalização aos dados de teste, se o seu algoritmo funcionar com ou precisar de dados de treinamento normalizados *.
Isso ocorre porque seu modelo trabalha na representação dada por seus vetores de entrada. A escala desses números faz parte da representação. É um pouco como converter entre pés e metros. . . um modelo ou fórmula funcionaria normalmente com apenas um tipo de unidade.
Você não precisa apenas de normalização, mas deve aplicar exatamente o mesmo dimensionamento que os seus dados de treinamento. Isso significa armazenar a escala e o deslocamento usados com seus dados de treinamento e usá-los novamente. Um erro comum para iniciantes é normalizar separadamente seus dados de trem e teste.
No Python e no SKLearn, você pode normalizar seus valores de entrada / X usando o Standard Scaler como este:
Observe como a conversão do
train_X
uso de uma função que se encaixa (calcula os parâmetros) normaliza. Enquanto atest_X
conversão se transforma, use os mesmos parâmetros que aprendeu com os dados do trem.A normalização tf-idf que você está aplicando deve funcionar de maneira semelhante, pois aprende alguns parâmetros do conjunto de dados como um todo (frequência de palavras em todos os documentos), além de usar as proporções encontradas em cada documento.
* Alguns algoritmos (como aqueles baseados em árvores de decisão) não precisam de entradas normalizadas e podem lidar com recursos que possuem diferentes escalas inerentes.
fonte
Definitivamente você deve normalizar seus dados. Você normaliza os dados para os seguintes objetivos:
Por ter características diferentes na mesma escala, o que é para acelerar o processo de aprendizado.
Por cuidar de diferentes recursos de maneira justa sem importar a balança.
Após o treinamento, seu algoritmo de aprendizado aprendeu a lidar com os dados em formato escalonado, portanto, você deve normalizar seus dados de teste com os parâmetros de normalização usados para os dados de treinamento.
fonte