Como executar dados de treinamento em uma svm supervisionado modelo de aprendizagem

Antes que você possa alimentar o classificador Support Vector Machine (SVM) com os dados que foram carregados para análise preditiva, você deve dividir o conjunto de dados completo em um conjunto de treinamento e conjunto de teste.

Felizmente, scikit-learn implementou uma função que irá ajudá-lo a dividir facilmente o conjunto de dados completo. o train_test_split função toma como entrada um único conjunto de dados e um valor percentual. O valor percentual é utilizado para determinar o tamanho do conjunto de teste. A função retorna dois conjuntos de dados: o conjunto de dados de teste (com o seu tamanho especificado) e o conjunto de dados de formação (que utiliza os dados restantes).

Normalmente, pode demorar cerca de 70-80 por cento dos dados para usar como um conjunto de treinamento e utilizar os dados restantes como o conjunto de teste. Mas o conjunto de dados Iris é muito pequeno (apenas 150 casos), assim você pode tirar 90 por cento do que para treinar o modelo e usar os outros 10 por cento, como dados de teste para ver como seu modelo preditivo irá executar.

Video: 6 - Treinamento de Inteligência Artificial: Aprendizado Supervisionado

Digite o seguinte código para dividir o conjunto de dados:

gt; gt; gt; de sklearn cross_validationgt importação; gt; gt; X_train, X_test, y_train, y_test = cross_validation.train_test_split (iris.data, iris.target, test_size = 0,10, random_state = 111)

As primeiras importações de linha validação cruzada biblioteca em sua sessão. A segunda linha cria o conjunto de teste de 10 por cento da amostra.

Video: 7 - Treinamento de Inteligência Artificial: Aprendizado por Reforço

x_train conterá 135 observações e as suas características.

y_trem conterá 135 etiquetas na mesma ordem que as 135 observações.

x_test conterá 15 (ou 10 por cento) observações e as suas características.



y_test conterá 15 etiquetas na mesma ordem que as 15 observações.

O código a seguir verifica se a divisão é o que você esperava:

gt; gt; gt; X_train.shape (135, 4) gt; gt; gt; y_train.shape (135,) gt; gt; gt; X_test.shape (15, 4) gt; gt; gt; y_test.shape (15,)

Você pode ver a partir da saída que há 135 observações com 4 características e 135 rótulos no conjunto de treinamento. O conjunto de teste possui 15 observações com 4 características e 15 etiquetas.

Muitos novatos no campo da análise preditiva se esqueça de dividir os conjuntos de dados - que introduz uma falha de projeto sério para o projeto. Se o total de 150 casos foram carregados para dentro da máquina, como dados de treinamento, que não deixaria de dados invisíveis para testar o modelo. Então você tem que recorrer a reutilizar alguns dos exemplos de treinamento para testar o modelo preditivo.

Você verá que, em tal situação, o modelo sempre prediz a classe correta - porque você está usando os mesmos dados exata que você usou para treinar o modelo. O modelo já viu esse padrão antes- que não terá nenhum problema apenas repetindo o que viu. Um modelo preditivo de trabalho precisa para fazer previsões para os dados que não tenha visto ainda.

Quando você tem uma instância de um classificador SVM, um conjunto de dados de treinamento, e um conjunto de dados de teste, você está pronto para treinar o modelo com os dados de treinamento. Digitando o seguinte código para o intérprete vai fazer exatamente isso:

gt; gt; gt; svmClassifier.fit (X_train, y_train)

Esta linha de código cria um modelo de trabalho para fazer previsões a partir. Especificamente, um modelo preditivo que irá prever o que classe de Iris um novo conjunto de dados sem rótulo pertence. o svmClassifier instância terá vários métodos que você pode chamar para fazer várias coisas.

Video: Cross Validation

Por exemplo, depois de chamar a em forma método, o método mais útil para chamar é o prever método. Esse é o método para que você alimentá nova data- em troca, prediz o resultado.


Publicações relacionadas