Como executar o Data Training em um modelo de aprendizagem SVM Supervisionado

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 completo de dados 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 treinamento (que usa os dados restantes).

Tipicamente, uma pode demorar cerca de 70-80 por cento dos dados a ser usada como um conjunto de treino e usar 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.

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

>>> From sklearn cross_validation importação >>> 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 linhas importações validação cruzada biblioteca em sua sessão. A segunda linha cria o conjunto de teste de 10 por cento da amostra.

x_train conterá 135 observações e 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 suas características.
y_test conterá 15 etiquetas na mesma ordem que as 15 observações.

O código a seguir verifica que a separação é o que você espera:

>>> X_train.shape (135, 4) >>> y_train.shape (135,) >>> X_test.shape (15, 4) >>> 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 tem 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á tem visto este padrão antes- que não terá nenhum problema apenas repetindo o que é visto. 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:

>>> 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.

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

menu