Validação cruzada em Sklearn

Validação cruzada em Sklearn

“Uma técnica de validação de modelo chamada validação cruzada avalia a generalização dos resultados da análise estatística para diferentes conjuntos de dados empregados principalmente em contextos em que o objetivo é prever. Usamos validação cruzada para testar o modelo durante o treinamento e generalização dos dados. Este artigo discutirá como é implementado na Biblioteca Python Sklearn.”

O que é validação cruzada?

É uma técnica de avaliação de modelo estatístico que testa como os dados serão generalizados para diferentes conjuntos de dados. Ele se concentra em determinar a precisão do modelo em uso real e está essencialmente no contexto em que o principal objetivo é prever. Validação cruzada testa o modelo durante o treinamento e sua capacidade de generalizar os dados.

Como os dados de teste e trem são diferentes?

Os dados usados ​​para desenvolver um modelo, como dados usados ​​para determinar os coeficientes de uma regressão multilinear, são chamados de dados de treinamento. Depois que o modelo é criado, ele é testado em relação aos dados do teste para determinar quão bem o modelo se encaixa nos dados.

Implementando validação cruzada em Sklearn

Importação de bibliotecas necessárias

importar numpy como np
de Sklearn.Model_Selection Importar Train_test_split
De conjuntos de dados de importação da Sklearn
De Sklearn Import SVM
de Sklearn.Model_Selection Import cross_val_score


Criando o conjunto de dados

X, y = conjuntos de dados.load_iris (return_x_y = true)
X_train, x_test, y_train, y_test = trens_test_split (x, y, test_size = 0.4, random_state = 0)
print (x_train [: 20], y_train [: 20])


Saída

[[6. 3.4 4.5 1.6]
[4.8 3.1 1.6 0.2]
[5.8 2.7 5.1 1.9]
[5.6 2.7 4.2 1.3]
[5.6 2.9 3.6 1.3]
[5.5 2.5 4. 1.3]
[6.1 3. 4.6 1.4]
[7.2 3.2 6. 1.8]
[5.3 3.7 1.5 0.2]
[4.3 3. 1.1 0.1]
[6.4 2.7 5.3 1.9]
[5.7 3. 4.2 1.2]
[5.4 3.4 1.7 0.2]
[5.7 4.4 1.5 0.4]
[6.9 3.1 4.9 1.5]
[4.6 3.1 1.5 0.2]
[5.9 3. 5.1 1.8]
[5.1 2.5 3. 1.1]
[4.6 3.4 1.4 0.3]
[6.2 2.2 4.5 1.5]] [1 0 2 1 1 1 2 0 0 2 1 0 0 1 0 2 1 0 1]


Criando o modelo e encontrando pontuações de validação cruzada

clf = svm.Svc (kernel = 'linear', c = 1).ajuste (x_train, y_train)
clf = svm.Svc (kernel = 'linear', c = 1, random_state = 42)
pontuações = cross_val_score (clf, x, y, cv = 5)
Imprimir (pontuações)


Saída

[0.96666667 1. 0.96666667 0.96666667 1. ]

Conclusão

Quando o conjunto de dados para treinamento e teste é muito pequeno, a validação cruzada é necessária. O conjunto de dados é normalmente particionado em n peças aleatórias de igual volume para impedir o problema de excesso de ajuste. A técnica é avaliada com a parte restante após o treinamento com peças N-1. A média das métricas ao longo do teste de treinamento N é usada para obter a medida geral. Mais tarde, acrescentamos validação cruzada ao Sklearn, que tem uma aula chamada "Seleção de modelo" para fazê-lo.