Até agora, demos a impressão de que um modelo atua diretamente nas linhas de um conjunto de dados. No entanto, os modelos consomem dados de maneira um pouco diferente.
Por exemplo, suponha que um conjunto de dados forneça cinco colunas, mas apenas duas delas (b
e d
) sejam recursos no modelo. Ao processar
o exemplo na linha 3, o modelo simplesmente extrai o conteúdo das
duas células destacadas (3b e 3d) da seguinte maneira?
Na verdade, o modelo ingere uma matriz de valores de ponto flutuante chamada de vetor de atributos. Pense em um vetor de recursos como os valores de ponto flutuante que compõem um exemplo.
No entanto, os vetores de atributos raramente usam os valores brutos do conjunto de dados. Em vez disso, normalmente é necessário processar os valores do conjunto de dados em representações que o modelo possa aprender melhor. Um vetor de recursos mais realista pode ser parecido com este:
Um modelo não produziria previsões melhores com base no treinamento dos valores reais no conjunto de dados do que com os valores alterados? Surpreendentemente, a resposta é não.
É necessário determinar a melhor maneira de representar os valores do conjunto de dados brutos como valores treináveis no vetor de recursos. Esse processo é chamado de engenharia de atributos, e é uma parte vital do aprendizado de máquina. As técnicas mais comuns de engenharia de atributos são:
- Normalização: conversão de valores numéricos em um intervalo padrão.
- Binning (também conhecido como agrupamento por classes): conversão de valores numéricos em buckets de intervalos.
Esta unidade aborda a normalização e o agrupamento. A próxima unidade, Como trabalhar com dados categóricos, aborda outras formas de pré-processamento, como converter dados não numéricos, como strings, em valores de ponto flutuante.
Todos os valores em um vetor de recursos precisam ser de ponto flutuante. No entanto, muitos recursos são naturalmente strings ou outros valores não numéricos. Consequentemente, uma grande parte da engenharia de recursos representa valores não numéricos como valores numéricos. Você vai encontrar muito disso nos próximos módulos.