Exercício – Dividir os dados em conjuntos de dados de teste e treinamento

Concluído

A próxima etapa é dividir os dados em conjuntos de teste e treinamento. Fornecer todos os dados ao classificador de machine learning somente o tornará eficaz em informar quais dados você tem. Ele não produzirá previsões precisas.

Por que você deve dividir os dados?

Um modo de explicar a importância de dividir os dados é compará-los com uma avaliação escolar. Durante a aula, exemplos de problemas são mostrados a você, juntamente com as respectivas respostas. Esse cenário ocorre em aulas expositivas, em tarefas de casa e em exames práticos.

Imagine uma aula em que o professor fornece a você uma cópia da prova e o respectivo gabarito na véspera da avaliação. Você tiraria a nota máxima no exame? Sim!

Você saberia se realmente aprendeu os conteúdos? Não. É mais provável que você tenha aprendido as respostas às perguntas sobre o exame e não os conceitos que o exame estava buscando testar.

Se você quiser realmente aprender, deverá praticar com problemas para os quais você tem as respostas. Quando você se sentir confiante sobre esses problemas, deve experimentar problemas para os quais você ainda não conhece as respostas. É basicamente assim que o classificador de machine learning "aprende".

Dividir os dados

Convém que você divida seus dados em quatro novas variáveis. Você já tem X e y, que representam sua entrada e sua saída. Agora é hora de dividi-los em dados de teste e treinamento.

Usando o Scikit-learn e a função de divisão do classificador, é possível obter uma amostragem aleatória de X e y cuja ordem é correspondente. Caso tivesse usado 80% das primeiras linhas para dados de treinamento e o restante para teste em vez de dividir os dados de modo aleatório, o cenário seria difícil.

Por exemplo, suponha que os dados são ordenados por data. Se as primeiras 240 linhas fossem usadas para treinamento, você estaria treinando seu modelo nos dados anteriores a 1999. Este cenário é problemático porque os sensores podem ter mudado ao longo do tempo. Apenas olhar dados mais antigos pode não ser um bom indicador para decisões a serem feitas com novas tecnologias.

Cole este código em uma célula do Visual Studio Code para dividir seus dados:

X_train, X_test, y_train, y_test = train_test_split(X,y, test_size=0.2, random_state=99)

Esse código separa aleatoriamente os dados em quatro grupos: X_train, X_test, y_train e y_test. Com a função train_test_split do Scikit-learn, você especifica quatro parâmetros importantes:

  • Dados de entrada: X – todas as colunas que queremos usar para prever um lançamento.
  • Dados de saída: : y – o resultado de cada linha (se um foguete foi lançado ou não).
  • Tamanho do teste: : 0.2 – treinar em 80% dos dados e testar 20% deles é uma divisão comum na ciência de dados.
  • Estado aleatório: 99 – uma propagação aleatória que alterará a aleatoriedade da seleção dos dados.

Para experimentar outras opções, você também pode voltar e modificar o tamanho do teste e o estado aleatório.