Interpretando seu modelo de aprendizado profundo pelo SHAP

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.
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.
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.
Enquanto se realiza a experiência, é necessário assegurar as seguintes condições sobre os jogos:
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’)
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:
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’]
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)
Agora, é necessário utilizar a biblioteca SHAP. Esta é a biblioteca mais poderosa disponível. Verifique as parcelas que eles estão a oferecer.
carregar o código de visualização JS para o bloco de notas
shap.initjs()
Loteamento Forçado
i = 5
shap.force_plot(explainer.expected_value, shap_values[i], features=X.iloc[i], feature_names=X.columns)
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.