Teste de trem dividido em Sklearn

Teste de trem dividido em Sklearn

O conjunto de dados inicial necessário para treinar algoritmos de aprendizado de máquina é conhecido como dados de treinamento. Os algoritmos de aprendizado de máquina são instruídos a fazer previsões ou executar uma tarefa usando conjuntos de dados de treinamento. O conjunto de dados de teste avalia quão bem os dados de treinamento são executados. Sklearn é um kit de ferramentas de aprendizado de máquina baseado em Python que nos permite dividir nossos dados em amostras de trem e teste usando o trens_test_split () método. A técnica TRAN_TEST_SPLIT () é discutida neste artigo.

O que é o teste de trem dividido

Os modelos de aprendizado de máquina são treinados usando a técnica de divisão do teste de trem. Estabelece com que eficácia os algoritmos de aprendizado de máquina funcionam. Pode ser empregado para resolver problemas envolvendo regressão e classificação. O conjunto de dados de treinamento de aprendizado de máquina é a divisão do teste de trem. É composto de uma quantidade significativa de dados. Em Python, o Scikit Learn Package tem um módulo chamado Seleção de Modelo da qual você pode importar “Teste de trem dividido”. Você pode fornecer a amostra de tamanho e tamanho de teste nesta função usando tamanhos de trem e teste. Não existe a porcentagem de divisão perfeita. Você deve selecionar uma porcentagem de divisão que se adapte aos objetivos do seu projeto.

O modelo deve corresponder com precisão aos dados fornecidos usando entradas e saídas conhecidos. O programa é então usado para fazer previsões no restante do subconjunto de dados para aprender com ele. Sem conhecer os valores de entrada e saída antecipados, isso pode ser usado para gerar previsões sobre conjuntos de dados no futuro. A função Train_test_split () no kit de ferramentas de aprendizado de máquina Scikit-Learn em Python pode ser usado para implementar a técnica de avaliação de teste de teste de trem. Ele aceita o conjunto de dados como entrada e o divide em dois subconjuntos como saída.

Conjunto de teste

O conjunto de testes é uma seleção de instâncias extraídas do conjunto de dados para avaliar a eficácia do modelo. Esses dados são mantidos separados dos dados de treinamento e ajuste. Portanto, não pode ser usado durante os estágios de treinamento ou ajuste do processo de aprendizado. Isso apenas afetaria o desempenho, influenciando o modelo aos dados.

Conjunto de treinamento

Os conjuntos de treinamento e teste devem ser mantidos separados. A fase de treinamento consome o conjunto de treinamento para identificar valores de parâmetros que minimizam uma função de custo específica em todo o conjunto de treinamento. Uma vez treinado no conjunto de dados de treinamento, o modelo será avaliado no conjunto de dados de teste. O conjunto de dados de teste não deve ser muito menor que o conjunto de dados de treinamento.

Como treinar dados

Um modelo é construído usando dados específicos, referidos como dados de "treinamento". Em um modelo linear simples, o modelo formaliza as relações entre variáveis, produzindo a equação matemática para uma linha. O tipo de modelo determina como é construído. Por exemplo, uma regressão difere de outros métodos.

É importante distinguir dados de treinamento de outros dados, pois você costuma dividir seu conjunto de dados inicial em duas partes: treinamento de dados para criar modelos e testar dados para avaliá -los. Normalmente, você faria isso fazendo com que seu modelo preveja valores nos dados de teste (com base nas variáveis ​​no modelo) e comparando -as com os valores reais.

O objetivo de dividir nossos dados

Excesso de ajuste e subjacência são dois problemas significativos que enfrentamos ao testar nosso conjunto de dados.

Construir um modelo baseado em dados que não se dever.

O excesso de ajuste é quando um modelo se adapta muito aos dados históricos. Torna -se malsucedido no futuro. Underfitting é o ato de criar um modelo que se adapta aos dados passados ​​tão vagamente que é inútil no futuro.

Implementando o Train_test_split () em Sklearn

# importar os métodos e bibliotecas necessários
importar numpy como np
de Sklearn.Model_Selection Importar Train_test_split
# Criando o DataSet de amostra
X, y = np.ARANGE (100).remodelar ((20, 5)), intervalo (20)
Print ('Recursos são', x)
Impressão ('Rótulos de destino são', Lista (y))

Saída

Os recursos são

[[0 1 2 3 4]
[5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]
[25 26 27 28 29]
[30 31 32 33 34]
[35 36 37 38 39]
[40 41 42 43 44]
[45 46 47 48 49]
[50 51 52 53 54]
[55 56 57 58 59]
[60 61 62 63 64]
[65 66 67 68 69]
[70 71 72 73 74]
[75 76 77 78 79]
[80 81 82 83 84]
[85 86 87 88 89]
[90 91 92 93 94]
[95 96 97 98 99]]

Os rótulos -alvo são

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 19]

Dividindo os dados

X_train, x_test, y_train, y_test = trens_test_split (x, y, test_size = 0.33, random_state = 42)
Print ('Recursos de treinamento são', x_train)
Impressão ('Rótulos de treinamento são', y_train)
Imprimir ('os recursos do teste são', x_test)
Imprimir ('Os rótulos de teste são', y_test)

Saída

Os recursos de treinamento são

[[15 16 17 18 19]
[90 91 92 93 94]
[80 81 82 83 84]
[65 66 67 68 69]
[10 11 12 13 14]
[45 46 47 48 49]
[95 96 97 98 99]
[20 21 22 23 24]
[60 61 62 63 64]
[35 36 37 38 39]
[50 51 52 53 54]
[70 71 72 73 74]
[30 31 32 33 34]]

Os rótulos de treinamento são

[3, 18, 16, 13, 2, 9, 19, 4, 12, 7, 10, 14, 6]

Os recursos de teste são

[[0 1 2 3 4]
[85 86 87 88 89]
[75 76 77 78 79]
[5 6 7 8 9]
[40 41 42 43 44]
[25 26 27 28 29]
[55 56 57 58 59]]

Os rótulos de teste são

[0, 17, 15, 1, 8, 5, 11]

Conclusão

Discutimos o método de Sklearn do TRANS_TEST_SPLIT (), que é usado para dividir os dados iniciais em amostras de trem e teste. Isso é necessário para avaliar o desempenho do nosso modelo e, finalmente, melhorá -lo. Também vimos como o trem e as amostras de teste são diferentes um do outro. Finalmente, implementamos o método TRAN_TEST_SPLIT () em Sklearn.