Vídeo: Aula 5 - Sobreajuste, validação cruzada e medição de performance 2024
Antes de poder alimentar o classificador de máquina de vetor de suporte (SVM) com os dados que foram carregados para análises preditivas, 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 o ajudará a dividir facilmente o conjunto de dados completo. A função train_test_split leva como entrada um único conjunto de dados e um valor percentual. O valor percentual é usado para determinar o tamanho do conjunto de teste. A função retorna dois conjuntos de dados: o conjunto de dados de teste (com o tamanho especificado) eo conjunto de dados de treinamento (que usa os dados restantes).
Normalmente, pode-se levar cerca de 70-80 por cento dos dados para usar como um conjunto de treinamento e usar os dados restantes como o conjunto de teste. Mas o conjunto de dados Iris é muito pequeno (apenas 150 instâncias), para que você possa tomar 90 por cento para treinar o modelo e usar os outros 10 por cento como dados de teste para ver como seu modelo preditivo irá realizar.
Digite o seguinte código para dividir seu conjunto de dados: >>>> da importação de sklearn cross_validation >>> X_train, X_test, y_train, y_test = cross_validation. Train_test_split (dados da íris, íris. target, test_size = 0. 10, random_state = 111)
A primeira linha importa a biblioteca de validação cruzada em sua sessão. A segunda linha cria o conjunto de teste de 10 por cento da amostra.
y_train conterá 135 rótulos 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 rótulos na mesma ordem que as 15 observações.
O código a seguir verifica se a divisão é o que você esperava:
Muitos iniciantes no campo da análise preditiva esquecem dividir os conjuntos de dados - o que introduz uma falha de projeto sério no projeto. Se as 150 instâncias completas foram carregadas na máquina como dados de treinamento, isso não deixaria dados não vistos para testar o modelo. Então você precisaria recorrer a algumas instâncias 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 exatos que você usou para treinar o modelo.O modelo já viu esse padrão antes; Não terá problema em repetir o que é visto. Um modelo preditivo de trabalho precisa fazer previsões para dados que ainda não viu.
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. Digitar o seguinte código na interpretação fará exatamente isso: >>>> svmClassifier. caber (X_train, y_train)
Esta linha de código cria um modelo de trabalho para fazer previsões. Especificamente, um modelo preditivo que irá prever qual classe de Iris pertence um novo conjunto de dados não marcado. A instância svmClassifier terá vários métodos que você pode chamar para fazer várias coisas.
Por exemplo, depois de chamar o método de ajuste, o método mais útil para chamar é o método de previsão. Esse é o método ao qual você irá fornecer novos dados; em troca, prevê o resultado.