Advertisement

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.




 


Nenhum comentário

Conta pra mim sua opinião!

Fale comigo