Dados numéricos: qualidades de bons atributos numéricos

Esta unidade explorou maneiras de mapear dados brutos em vetores de atributos adequados. Bons recursos numéricos compartilham as qualidades descritas nesta seção.

Nomeado claramente

Cada recurso precisa ter um significado claro, sensato e óbvio para qualquer pessoa no projeto. Por exemplo, o significado do seguinte valor de atributo é confuso:

Não recomendado

house_age: 851472000

Em contraste, o nome e o valor do recurso a seguir são muito mais claros:

Recomendado

house_age_years: 27

Verificados ou testados antes do treinamento

Embora este módulo tenha dedicado muito tempo aos valores discrepantes, o tópico é importante o suficiente para justificar uma menção final. Em alguns casos, dados inválidos (em vez de escolhas de engenharia ruins) causam valores pouco claros. Por exemplo, o user_age_in_years a seguir veio de uma fonte que não verificou valores apropriados:

Não recomendado

user_age_in_years: 224

Mas as pessoas podem ter 24 anos:

Recomendado

user_age_in_years: 24

Verifique seus dados.

Sensível

Um "valor mágico" é uma descontinuidade proposital em um recurso contínuo. Por exemplo, suponha que um atributo contínuo chamado watch_time_in_seconds possa conter qualquer valor de ponto flutuante entre 0 e 30, mas represente a ausência de uma medição com o valor mágico -1:

Não recomendado

watch_time_in_seconds: -1

Um watch_time_in_seconds de -1 forçaria o modelo a tentar descobrir o que significa assistir um filme de trás para frente. O modelo resultante provavelmente não faria boas previsões.

Uma técnica melhor é criar um recurso booleano separado que indique se um valor watch_time_in_seconds foi fornecido ou não. Exemplo:

Recomendado

watch_time_in_seconds: 4.82
is_watch_time_in_seconds_defined=True

watch_time_in_seconds: 0
is_watch_time_in_seconds_defined=False

Essa é uma maneira de lidar com um conjunto de dados contínuo com valores ausentes. Agora considere um recurso numérico discreto, como product_category, cujos valores precisam pertencer a um conjunto finito de valores. Nesse caso, quando um valor estiver ausente, indique esse valor ausente usando um novo valor no conjunto finito. Com um recurso discreto, o modelo vai aprender pesos diferentes para cada valor, incluindo pesos originais para recursos ausentes.

Por exemplo, podemos imaginar valores possíveis que se encaixam no conjunto:

{0: 'electronics', 1: 'books', 2: 'clothing', 3: 'missing_category'}.