Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

Ao interpretar a produção de dados preditivos, certifique-se de executar cuidadosamente cada passo. Para satisfazer os utilizadores, é necessário fornecer informações fáceis de compreender. Pode fazê-lo, melhorando o processo do seu modelo. Não há problema em concentrar-se em modelos simples em vez de complexos. Por exemplo, os modelos lineares ajudá-lo-ão com uma interpretação fácil. No entanto, com quantidades excessivas de dados, a utilização de modelos complexos traz inúmeros benefícios. Com um modelo deste tipo, pode trazer o seu compromisso de vanguarda para um resultado preciso e interpretável. Pode escolher entre inúmeros métodos diferentes para resolver questões complexas. Contudo, estas soluções não implicam como estes métodos se relacionam uns com os outros. Além disso, não há dados que sustentem a razão pela qual um método é melhor do que o outro.
A construção de SHAP inspira-se no quadro unificado anterior. Esta nova abordagem da estrutura SHAP utiliza valores Shapely. Abaixo, pode compreender a definição de SHAP e como se pode implementar o conceito com o pacote Python.

O que é SHAP?

Shapley Additive exPlanations ou SHAP é uma abordagem utilizada na teoria dos jogos. Com SHAP, pode explicar a saída do modelo de aprendizagem da sua máquina. Este modelo liga a explicação local da alocação óptima de créditos com a ajuda de valores Shapely. Esta abordagem é altamente eficaz com a teoria de jogos.

Como se pode calcular os valores Shapely

SHAP é um valor caracterizado de contribuição marginal média entre todas as combinações possíveis da característica. Abaixo, discutiremos como SHAP ou Shapely Additive exPlanations está a tornar-se uma técnica popular na aprendizagem de máquinas. Podemos compreender o conceito com o seguinte exemplo:
Podemos considerar os pontos que uma equipa pontua em cada jogo de uma época. Suponhamos que queremos encontrar a pontuação média do Jogador A e a sua contribuição como pontuação de uma equipa num jogo. Para isso, precisamos de encontrar a contribuição do Jogador A na parceria do Jogador B e do Jogador C.

NOTA

Enquanto se realiza a experiência, é necessário assegurar as seguintes condições sobre os jogos:

  1. Antes de realizar a experiência, é necessário assumir que o julgamento dos jogadores já está concluído
  2. Também é necessário assumir que cada jogador pode actuar em pelo menos uma partida para que possamos basear o resultado em dados relevantes.
  3. Deve haver uma partida em que um jogador não esteja disponível enquanto os outros dois estiverem disponíveis.
  4. Abaixo encontrará apenas um exemplo. Pode tomar qualquer métrica de acordo com o ranking do torneio. Abaixo encontrará o total de pontos como a métrica:
    Passo 1: Quando o Jogador A não está a jogar, mas os Jogadores B e C estão a jogar numa combinação.
    Nesta condição, precisamos de tomar a média de pontos dos jogos. É preciso lembrar que o Jogador A não está a jogar, por isso a média incluirá apenas as pontuações do Jogador B, e C. Também pode tirar uma única amostra aleatória para encontrar a resposta. Neste exemplo, assume-se uma média de pontuação total igual a 60 pontos.
    Passo 2: Quando o Jogador C não está a jogar, mas os Jogadores A e B estão a jogar numa combinação.
    Agora vamos considerar a média dos Jogadores A e B, enquanto que o Jogador C não está a jogar. Suponhamos que a pontuação total da equipa é de 90 pontos.
    Uma vez que todos os jogadores jogaram em qualquer um dos jogos, podemos agora encontrar o total de pontos do Jogador A, subtraindo 85 a 65. A resposta seria 30 pontos. Também se pode realizar a experiência calculando a média da experiência várias vezes e encontrando a diferença.

Implementação de Códigos

Primeiro, é necessário importar todas as bibliotecas necessárias com a ajuda dos seguintes códigos:
importar pandas como pd
importação numérica como np
shap de importação
de sklearn.model_selection import train_test_split
de sklearn.metrics import mean_squared_error

do sklearn.linear_model import LinearRegression
de sklearn.tree DecisionTreeRegressor de importação
do sklearn.ensemble import RandomForestRegressor
de xgboost.sklearn importação XGBRegressor
de sklearn.preprocessing importação OneHotEncoder, LabelEncoder
da árvore de importação sklearn

importação matplotlib.pyplot como plt
%matplotlib em linha
avisos de importação
avisos.filterwarnings(‘ignorar’)

Pré-processar os Dados após a Leitura

O exemplo seguinte é sobre bens imóveis. No entanto, pode utilizar qualquer conjunto de dados para encontrar a saída com este método. Este é apenas um exemplo, pelo que a imputação e o pré-processamento não são importantes. Mas quando se está a passar por um teste original, é necessário seguir o procedimento completo:

Ler os dados

data = pd.read_csv(‘data.csv’)# Remover características com valores nulos elevados
data.drop([‘PoolQC’, ‘MiscFeature’, ‘Fence’, ‘FireplaceQu’,
LotFrontage’], inplace=True, axis=1)# Drop null values
data.dropna(inplace=True)# Preparar X e Y
X = pd.get_dummies(dados)
X.drop([[‘Preço de Venda’], inplace=Verdade, eixo=1)
y = dados[‘Preço de Venda’]

Encaixe o seu modelo

Nesta etapa é necessário encaixar o modelo com o conjunto de dados:
modelo = XGBRegressor(n_estimators=1000, max_depth=10, learning_rate=0.001)# Encaixar o modelo
model.fit(X, y)

Características importantes dos valores Shap

Agora, é necessário utilizar a biblioteca SHAP. Esta é a biblioteca mais poderosa disponível. Verifique as parcelas que eles estão a oferecer.

  • Primeiro, precisa de iniciar um código de visualização JS na sua biblioteca.

carregar o código de visualização JS para o bloco de notas

shap.initjs()

  • Agora pode explicar a previsão do seu modelo.
  • Pode começar por recolher os valores SHAP e o explicador
    shap_values.
    explainer = shap.TreeExplainer(modelo)
    shap_values = explainer.shap_values(X)

Plotar os Resultados

Loteamento Forçado
i = 5
shap.force_plot(explainer.expected_value, shap_values[i], features=X.iloc[i], feature_names=X.columns)

Conclusão

Com a ajuda da explicação acima, pode visualizar características que contribuem para encontrar o resultado do seu modelo e empurrar o valor base. O valor de base é a produção média do modelo que recebemos com a ajuda de dados de formação.