Um conjunto de dados é uma coleção de exemplos.
Muitos conjuntos de dados armazenam dados em tabelas (grades), por exemplo, como valores separados por vírgulas (CSV) ou diretamente de planilhas ou tabelas de banco de dados. As tabelas são um formato de entrada intuitivo para modelos de aprendizado de máquina. Imagine cada linha da tabela como um exemplo e cada coluna como um possível recurso ou rótulo. No entanto, os conjuntos de dados também podem ser derivados de outros formatos, incluindo arquivos de registro e buffers de protocolo.
Independentemente do formato, a qualidade do modelo de ML depende dos dados usados no treinamento. Esta seção examina as principais características dos dados.
Tipos de dados
Um conjunto de dados pode conter muitos tipos de dados, incluindo, mas não se limitando a:
- dados numéricos, que são abordados em uma unidade separada
- dados categóricos, que são abordados em uma unidade separada
- linguagem humana, incluindo palavras e frases individuais, até documentos de texto completos
- multimídia (como imagens, vídeos e arquivos de áudio)
- saídas de outros sistemas de ML
- Vetores de embedding, que serão abordados em uma unidade posterior
Quantidade de dados
Como regra geral, o modelo precisa ser treinado com pelo menos uma ordem de magnitude (ou duas) mais exemplos do que parâmetros treináveis. No entanto, modelos bons geralmente são treinados com muitos exemplos.
Os modelos treinados em grandes conjuntos de dados com poucos recursos geralmente têm melhor desempenho do que os treinados em pequenos conjuntos de dados com muitos recursos. O Google sempre teve muito sucesso ao treinar modelos simples em conjuntos de dados grandes.
Conjuntos de dados diferentes para diferentes programas de aprendizado de máquina podem exigir quantidades muito diferentes de exemplos para criar um modelo útil. Para alguns problemas relativamente simples, algumas dezenas de exemplos podem ser suficientes. Para outros problemas, um trilhão de exemplos pode ser insuficiente.
É possível conseguir bons resultados com um conjunto de dados pequeno se você estiver adaptando um modelo já treinado com grandes quantidades de dados do mesmo esquema.
Qualidade e confiabilidade dos dados
Todo mundo prefere a alta qualidade à baixa, mas a qualidade é um conceito tão vago que pode ser definido de muitas maneiras diferentes. Este curso define a qualidade de maneira pragmática:
Um conjunto de dados de alta qualidade ajuda o modelo a alcançar a meta. Um conjunto de dados de baixa qualidade impede que o modelo atinja a meta.
Um conjunto de dados de alta qualidade geralmente também é confiável. A confiabilidade se refere ao grau de confiança que você pode ter nos seus dados. Um modelo treinado em um conjunto de dados confiável tem mais chances de gerar previsões úteis do que um modelo treinado em dados não confiáveis.
Ao medir a confiabilidade, você precisa determinar:
- Com que frequência ocorrem erros de rótulo? Por exemplo, se os dados forem rotulados por humanos, com que frequência os avaliadores humanos cometeram erros?
- Seus recursos são barulhentos? Ou seja, os valores nos seus atributos têm erros? Seja realista: não é possível limpar todo o ruído do seu conjunto de dados. Alguns ruídos são normais. Por exemplo, as medições de GPS de qualquer local sempre variam um pouco de semana para semana.
- Os dados estão filtrados corretamente para o problema? Por exemplo, o conjunto de dados precisa incluir consultas de pesquisa de bots? Se você estiver criando um sistema de detecção de spam, provavelmente a resposta será sim. No entanto, se você estiver tentando melhorar os resultados da pesquisa para humanos, a resposta é não.
Confira a seguir causas comuns de dados não confiáveis em conjuntos de dados:
- Valores omitidos. Por exemplo, uma pessoa esqueceu de inserir um valor para a idade de uma casa.
- Exemplos duplicados. Por exemplo, um servidor fez o upload das mesmas entradas de registro duas vezes por engano.
- Valores de atributo incorretos. Por exemplo, alguém digitou um dígito extra ou um termômetro foi deixado ao sol.
- Rótulos incorretos. Por exemplo, uma pessoa rotulou por engano uma imagem de uma árvore de carvalho como uma árvore de bordo.
- Seções de dados inválidas. Por exemplo, um determinado recurso é muito confiável, exceto naquele dia em que a rede continuou falhando.
Recomendamos usar a automação para sinalizar dados não confiáveis. Por exemplo, testes de unidade que definem ou dependem de um esquema de dados formal externo podem sinalizar valores que estão fora de um intervalo definido.
Exemplos completos e incompletos
Em um mundo perfeito, cada exemplo é completo, ou seja, cada exemplo contém um valor para cada atributo.
Infelizmente, os exemplos reais geralmente são incompletos, o que significa que pelo menos um valor de atributo está ausente.
Não treine um modelo com exemplos incompletos. Em vez disso, corrija ou elimine exemplos incompletos fazendo uma das seguintes ações:
- Exclua exemplos incompletos.
- Impute os valores ausentes. Ou seja, converta o exemplo incompleto em um exemplo completo fornecendo estimativas bem fundamentadas para os valores ausentes.
Se o conjunto de dados tiver exemplos completos suficientes para treinar um modelo útil, considere excluir os exemplos incompletos. Da mesma forma, se apenas um recurso estiver ausente de uma quantidade significativa de dados e esse recurso provavelmente não ajudar muito o modelo, considere excluir esse recurso das entradas do modelo e verificar a quantidade de qualidade perdida com a remoção. Se o modelo funcionar bem ou quase tão bem sem ele, ótimo. Por outro lado, se você não tiver exemplos completos suficientes para treinar um modelo útil, considere imputar os valores ausentes.
É possível excluir exemplos inúteis ou redundantes, mas não exemplos importantes. Infelizmente, pode ser difícil diferenciar exemplos inúteis e úteis. Se você não conseguir decidir se vai excluir ou imputar, crie dois conjuntos de dados: um formado pela exclusão de exemplos incompletos e outro pela imputação. Em seguida, determine qual conjunto de dados treina o modelo melhor.
Um algoritmo comum é usar a média ou a mediana como o valor imputado. Consequentemente, quando você representa um atributo numérico com valores Z, o valor atribuído é normalmente 0 (porque 0 é geralmente o valor Z médio).
Exercício: testar seu conhecimento
Aqui estão duas colunas de um conjunto de dados classificadas por Timestamp
.
Carimbo de data/hora | Temperatura |
---|---|
8 de junho de 2023, 9h | 12 |
8 de junho de 2023, 10h | 18 |
8 de junho de 2023, 11h | ausente |
8 de junho de 2023, 12h | 24 |
8 de junho de 2023, 13h | 38 |
Qual das opções a seguir seria um valor razoável para imputar ao valor ausente de Temperatura?