Cruzamentos de atributos: cruzando vetores one-hot

Até agora, nosso foco se concentrou na interseção de dois recursos individuais de ponto flutuante. Na prática, os modelos de machine learning raramente são de atributos contínuos. No entanto, os modelos de machine learning geralmente fazem cruzamentos de vetores de atributos one-hot. Pense nos cruzamentos de atributos de vetores de atributo one-hot como conjunções lógicas. Por exemplo, suponha que temos dois recursos: país e idioma. Uma codificação one-hot de cada gera vetores com atributos binários que podem ser interpretados como country=USA, country=France ou language=English, language=Spanish. Depois, se fizer um cruzamento de atributos dessas codificações one-hot, você terá recursos binários que podem ser interpretados como conjunções lógicas, como:

  country:usa AND language:spanish

Como outro exemplo, suponha que você vincule a latitude e a longitude, produzindo vetores separados de recursos de cinco elementos one-hot. Por exemplo, determinada latitude e longitude podem ser representadas da seguinte maneira:

  binned_latitude = [0, 0, 0, 1, 0]
  binned_longitude = [0, 1, 0, 0, 0]

Suponha que você crie um cruzamento de atributos desses dois vetores de atributos:

  binned_latitude X binned_longitude

Este cruzamento de atributos é um vetor one-hot de 25 elementos (24 zeros e 1). O 1 exclusivo na cruz identifica uma conjunção específica de latitude e longitude. Assim, seu modelo pode aprender associações específicas sobre essa conjunção.

Digamos que a latitude e a longitude sejam muito mais abrangentes, da seguinte maneira:

binned_latitude(lat) = [
  0  < lat <= 10
  10 < lat <= 20
  20 < lat <= 30
]

binned_longitude(lon) = [
  0  < lon <= 15
  15 < lon <= 30
]

A criação de um cruzamento de atributos dessas classes aproximadas gera um atributo sintético que tem os seguintes significados:

binned_latitude_X_longitude(lat, lon) = [
  0  < lat <= 10 AND 0  < lon <= 15
  0  < lat <= 10 AND 15 < lon <= 30
  10 < lat <= 20 AND 0  < lon <= 15
  10 < lat <= 20 AND 15 < lon <= 30
  20 < lat <= 30 AND 0  < lon <= 15
  20 < lat <= 30 AND 15 < lon <= 30
]

Agora, suponha que nosso modelo precise prever o nível de satisfação dos donos com os cães com base em dois recursos:

  • Tipo de comportamento (latindo, choro, aconchego etc.)
  • Hora do dia

Se criarmos um cruzamento de atributos desses dois atributos:

  [behavior type X time of day]

acabaremos com uma capacidade de previsão muito maior que um dos atributos por conta própria. Por exemplo, se um cachorro chorar (felizmente) às 17h, quando o proprietário retorna do trabalho, provavelmente será um bom preditor de satisfação do proprietário. Chorar, talvez, às 3h, quando o proprietário dormia profundamente, provavelmente será um forte fator negativo de satisfação do proprietário.

Os alunos lineares se adaptam bem a dados enormes. O uso de cruzamentos de atributos em grandes conjuntos de dados é uma estratégia eficiente para aprender modelos altamente complexos. As redes neurais oferecem outra estratégia.