CatBoost | Recursos categóricos CatBoost

Conteúdo

Introdução

Quantos de vocês viram esse erro ao criar seus modelos de aprendizado de máquina com “Claro”?
screen-shot-2017-08-13-at-11-52-00-am1-5969486

Aposto que a maioria de nós! Pelo menos nos primeiros dias.

Este erro ocorre ao lidar com variáveis ​​categóricas (correntes). E claro, você deve converter essas categorias para o formato numérico.

Para realizar esta conversão, usamos vários métodos de pré-processamento, como “codificação de tag”, “codificação quente” e outros.

Neste artigo, Vou falar sobre uma biblioteca de código aberto recentemente ” CatBoost”Desenvolvido e contribuído por Yandex. CatBoost pode usar funções categóricas diretamente e é escalonável por natureza.

“Esta é a primeira tecnologia de aprendizado de máquina russa de código aberto”, Mikhail Bilenko disse, Yandex chefe de inteligência de máquina e pesquisa.

PD Você também pode ler este artigo escrito por mim antes “Como lidar com variáveis ​​categóricas?”.

Tabela de conteúdo

  1. O que é CatBoost?
  2. Vantagens da biblioteca CatBoost
  3. CatBoost em comparação com outros algoritmos de impulso
  4. Instalação CatBoost
  5. Resolvendo o desafio de ML usando CatBoost
  6. Notas finais

1. O que é CatBoost?

CatBoost é um algoritmo de aprendizado de máquina de código aberto da Yandex. Pode ser facilmente integrado a estruturas de aprendizado profundo, como o TensorFlow do Google e o ML Core da Apple. Você pode trabalhar com vários tipos de dados para ajudar a resolver uma ampla gama de problemas enfrentados pelas empresas hoje. Para complementá-lo, fornece a melhor precisão da classe.

É especialmente poderoso de duas maneiras:

  • Produz resultados de última geração sem um treinamento extensivo de dados, normalmente exigido por outros métodos de aprendizado de máquina, e
  • Fornece suporte avançado pronto para uso para os formatos de dados mais descritivos que acompanham muitos problemas de negócios.

Nome “CatBoost” vem de duas palavras “Gatoegoria ”y“AumentarAssustador”.

Como discutido, biblioteca funciona bem com múltiplos Gatodados egorias, como áudio, texto, imagem, incluindo dados históricos.

Aumentar”Vem do algoritmo de aprendizado de máquina que impulsiona o gradiente, uma vez que esta biblioteca é baseada em uma biblioteca que direciona o gradiente. O aumento do gradiente é um algoritmo de aprendizado de máquina poderoso que é amplamente aplicado a vários tipos de desafios de negócios, como detecção de fraude, itens de recomendação, previsões e funciona bem também. Ele também pode retornar resultados muito bons com relativamente menos dados, ao contrário dos modelos DL que precisam aprender com uma grande quantidade de dados.

screen-shot-2017-08-13-at-1-19-37-pm-6074974

Aqui está uma mensagem de vídeo de Mikhail Bilenko, Yandex chefe de inteligência de máquina e pesquisa, y Anna Veronika Dorogush, Diretor de Sistemas de Aprendizado de Máquina na Tandex.

2. Vantagens da biblioteca CatBoost

  • Desempenho: CatBoost fornece resultados de última geração e é competitivo com qualquer algoritmo de aprendizado de máquina líder na frente de desempenho.
  • Tratamento automático de características categóricas: Podemos usar CatBoost sem qualquer pré-processamento explícito para converter categorias em números. CatBoost converte valores categóricos em números usando várias estatísticas em combinações de características categóricas e combinações de características categóricas e numéricas. Você pode ler mais sobre isso aqui.
  • Robusto: Reduz a necessidade de ajuste extenso de hiperparâmetros e reduz as chances de ajuste excessivo, o que também leva a modelos mais generalizados. Embora, CatBoost tem vários parâmetros para ajustar e contém parâmetros como o número de árvores, a taxa de aprendizagem, regularização, a profundidade da árvore, o tamanho da dobra, temperatura de ensacamento e outros. Você pode ler sobre todos esses parâmetros aqui.
  • Fácil de usar: Você pode usar CatBoost na linha de comando, usando uma API fácil de usar para Python e R.

3. CatBoost: comparação com outras bibliotecas boost

Temos várias bibliotecas de boost como XGBoost, H2O e LightGBM e todos funcionam bem em uma variedade de problemas. O desenvolvedor CatBoost comparou o desempenho com a concorrência em conjuntos de dados de ML padrão:

screen-shot-2017-08-13-at-3-33-33-pm-6084320

A comparação acima mostra o valor de perda de log para os dados de teste e é o mais baixo no caso de CatBoost na maioria dos casos. Isso significa claramente que CatBoost funciona melhor principalmente para modelos ajustados e padrão.

Além disso, CatBoost não requer a conversão do conjunto de dados para qualquer formato específico como XGBoost e LightGBM.

4. Instalação CatBoost

CatBoost es fácil de instalar tanto para Python como para R. Você precisa ter uma versão do 64 Python e R bits.

Abaixo estão as etapas de instalação para Python e R:

4.1 Instalação Python:

pip install catboost

4.2 Instalação R

install.packages('devtools')
devtools::install_github('catboost/catboost', subdir="catboost/R-package")

5. Resolva o desafio AA usando CatBoost

A biblioteca CatBoost pode ser usada para resolver desafios de classificação e regressão. Para classificação, você pode usar “CatBoostClassifier“E para a regressão,”CatBoostRegressor“.

Aqui está uma janela de codificação ao vivo para você brincar com o código CatBoost e ver os resultados em tempo real:

Neste artigo, estou resolvendo “Big Mart Sales”Problema prático com CatBoost. É um desafio de regressão, então usaremos CatBoostRegressor, primeiro vou ler os passos básicos (Não vou realizar engenharia de recursos, Vou apenas construir um modelo básico).

importar pandas como pd
importar numpy como np
de catboost import CatBoostRegressor

#Leia arquivos de treinamento e teste
train = pd.read_csv("train.csv")
test = pd.read_csv("test.csv")

#Identifique o tipo de dados das variáveis
train.dtypes

screen-shot-2017-08-13-at-4-30-27-pm-2548855
#Encontrando os valores ausentes
train.isnull().soma()
screen-shot-2017-08-13-at-4-32-08-pm-8777900
#Imputando valores ausentes para o trem e o teste
train.fillna(-999, inplace = True)
test.fillna(-999,inplace = True)

#Criação de um conjunto de treinamento para modelagem e validação para verificar o desempenho do modelo
X = train.drop(['Item_Outlet_Sales'], eixo = 1)
y = train.Item_Outlet_Sales

de sklearn.model_selection import train_test_split
X_train, X_validation, y_train, y_validation = train_test_split(X, e, trem_size = 0,7, random_state = 1234)

#Observe o tipo de dados das variáveis
X.dtypes
screen-shot-2017-08-13-at-4-42-52-pm-8311816

Agora, você verá que identificaremos apenas variáveis ​​categóricas. Não realizaremos nenhuma etapa de pré-processamento para variáveis ​​categóricas:

categorical_features_indices = np.where(X.dtypes != np.float)[0]

#importando biblioteca e modelo de construção
de catboost import CatBoostRegressor
model = CatBoostRegressor(iterações = 50, profundidade = 3, learning_rate = 0.1, loss_function = 'RMSE')
model.fit(X_train, y_train,cat_features = categorical_features_indices,eval_set =(X_validation, y_validation),plot = True)

screen-shot-2017-08-13-at-4-50-52-pm-7740085

Como você pode ver, um modelo básico oferece uma solução justa e erros de treinamento e teste são sincronizados. Você pode ajustar os parâmetros e funções do modelo para melhorar a solução.

Agora, a próxima tarefa é prever o resultado do conjunto de dados de teste.

submissão = pd.DataFrame()
submissão['Item_Identifier'] = teste['Item_Identifier']
submissão['Outlet_Identifier'] = teste['Outlet_Identifier']
submissão['Item_Outlet_Sales'] = model.predict(teste)
submissão.to_csv("Submission.csv")

Isso é tudo! Construímos o primeiro modelo com CatBoost

6. Notas finais

Neste artigo, vimos uma biblioteca de código aberto recentemente “CatBoost” da Yandex, que pode fornecer uma solução de ponta para uma variedade de problemas de negócios.

Um dos principais recursos que me entusiasmam nesta biblioteca é o tratamento automático de valores categóricos usando vários métodos estatísticos.

Cobrimos os detalhes básicos sobre esta biblioteca e resolvemos um desafio de regressão neste artigo.. Também recomendarei que você use esta biblioteca para resolver uma solução corporativa e comparar o desempenho com outros modelos de próxima geração..

Aprender, Envolver, Competir E Ser contratado

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.