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=Truewatch_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'}.