Comparando Diferentes Codificadores Categóricos

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, compararemos o desempenho de diferentes codificadores categóricos num conjunto de dados de avaliações de vinho. Usaremos a coluna-alvo 'points' como a variável-alvo para previsão. Compararemos os seguintes codificadores: TargetEncoder, OneHotEncoder, OrdinalEncoder e a remoção da categoria. Também analisaremos como utilizar o suporte nativo a características categóricas em HistGradientBoostingRegressor.

Dicas da Máquina Virtual

Após o arranque da VM, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para a prática.

Por vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante o aprendizado, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para si.

Carregamento de Dados do OpenML

Primeiro, carregamos o conjunto de dados de avaliações de vinho usando a função fetch_openml do módulo scikit-learn.datasets. Usaremos apenas um subconjunto de características numéricas e categóricas nos dados. Usaremos o seguinte subconjunto de características numéricas e categóricas nos dados: numerical_features = ["price"] e categorical_features = ["country", "province", "region_1", "region_2", "variety", "winery"].

Treinamento e Avaliação de Pipelines com Diferentes Codificadores

Nesta secção, avaliaremos pipelines com HistGradientBoostingRegressor utilizando diferentes estratégias de codificação. Avaliaremos os modelos usando validação cruzada e registaremos os resultados.

Suporte a Características Categóricas Nativas

Nesta secção, construímos e avaliamos um pipeline que utiliza o suporte nativo a características categóricas em HistGradientBoostingRegressor, que suporta apenas até 255 categorias únicas. Agrupamos as características categóricas em características de baixa e alta cardinalidade. As características de alta cardinalidade serão codificadas por alvo, e as características de baixa cardinalidade utilizarão a característica categórica nativa no gradient boosting.

Representando os Resultados

Nesta secção, apresentamos os resultados através de gráficos dos scores de teste e treino.

Sumário

Neste laboratório, comparámos o desempenho de diferentes codificadores categóricos num conjunto de dados de avaliações de vinhos. Também analisámos como utilizar o suporte nativo a características categóricas em HistGradientBoostingRegressor. Descobrimos que a eliminação de categorias teve o pior desempenho e que os codificadores de destino tiveram o melhor. A codificação ordinal impõe uma ordem arbitrária às características, que são então tratadas como valores numéricos pelo HistGradientBoostingRegressor. O esquema de codificação one-hot provavelmente teria levado a um overfitting do pipeline, uma vez que o número de características explode com a ocorrência de categorias raras que estão correlacionadas com o alvo por acaso. Ao utilizar o codificador de destino, ocorre o mesmo agrupamento, mas como os valores codificados são estatisticamente ordenados pela associação marginal com a variável alvo, o agrupamento utilizado pelo HistGradientBoostingRegressor faz sentido e leva a bons resultados.