Aula 08 - Divisão da base em treinamento e teste
Imagine que você possui uma base de dados que você quer utilizar como fonte de informação para o treinamento de um classificador. Ao realizar o treinamento, você pode usar o mesmo conjunto de dados para testá-lo, porém, o resultado será enviesado, porque os algoritmos que constroem modelos (árvores de decisão) utilizam probabilidade para calcular qual seria a melhor classificação para uma nova instância. Se as instâncias que estão sendo avaliadas já estão presentes no dataset, o algoritmo já entende qual é a classificação mais adequada para aquele caso.
Uma solução bastante conhecida para esse problema é criar um script que treina um classificador e utiliza a mesma base de dados testar seu classificador. Para isso, pacotes como o SkLearn, disponibilizam as ferramentas de divisão da base de dados de treino e teste.
Exemplo
O primeiro passo é importar as bibliotecas e ferramentas necessárias:
import numpy as np
from sklearn.model_selection import train_test_split
Em seguida, podemos criar um novo conjunto de dados de exemplo:
X, y = np.arange(10).reshape((5, 2)), range(5)
Nesse exemplo, a variável X contém o array:
array([[0, 1],
[2, 3],
[4, 5],
[6, 7],
[8, 9]])
A variável y contém uma lista de 0 até 4:
[0, 1, 2, 3, 4]
Por fim, vamos dividir esse conjunto de dados em duas partes: treino e teste. Sendo assim, as variáveis de treino e de teste serão X_train e y_train | X_test e y_test.
X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.33, random_state=42)
Por fim, as variáveis contém:
- X_train:
array([[4, 5],
[0, 1],
[6, 7]])
- X_test:
array([[2, 3],
[8, 9]])
- y_train:
[2, 0, 3]
- y_test:
[1, 4]
Após essa divisão você poderá utilizar as variáveis X_train/y_train para treinar seu classificador. As variáveis X_test/y_test serão utilizadas para testar a acurácia, precisão e recall do seu classificador em realizar essas predições.
Post a Comment