[toc]
## Part1:可解释的机器学习-XAI – eXplainable Artificial Intelligence
DALEX是一个R包,用于机器学习的可视化解释、探索、模型调试和模型预测(又名XAI -可解释的人工智能)。它为预测模型的不同方面提供了大量的可视化解释。在构建机器学习时候非常有用。目前还没有过多应用于医学领域;在这篇文章中,我们将在R中实现可解释人工智能的算法。在这里可以找到对全局和局部模型评估方法的介绍。
本文主要介绍:
- 为什么要使用XAI
- 代码实现
1.为什么要使用XAI
目前,人工智能算法非常流行,通过快速调用机器学习包,完成模型预测目的,这些复杂的算法,也称之为黑盒模型。由于机器学习算法的灵活性与复杂性,它们通常可发现变量之间的复杂关系,学习出特定规律,让预测变得更加准确。因此,在达到精确预测的同时,机器学习模型也损失了对现实的课解释性。
当我们选择复杂而又有弹性的模型时,往往需要了解模型中哪些变量做了决策,目前已有人正在开发相关算法和工具来我们理解模型是如何工作的。而可解释人工智能(XAI)就是用来解释或探索复杂的模型。
2.代码实现
以apartments数据集为例,(From Warsaw,在R和Python的DALEX包均可调用)。数据集描述了1000个公寓的六个变量,如面积,地板,房间数,建设年代,每平方米均价,所处位置地区。我们将创建一个预测公寓价格的模型,就从——随机森林(回归黑盒模型)开始。
Python实现
#library
import dalex as dx
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
#apartments dataset from DALEX
#data have 5 numerical variables and 1 categorical variables
data = dx.datasets.load_apartments()
data.head()
#we use one-hot encoding for district variable - get_dummies function from pandas
data = pd.get_dummies(data)
X = data.drop(columns='m2_price')
y = data.m2_price
#we created a random forest model using scikit-learn library
regr = RandomForestRegressor(max_depth=2, random_state=0)
regr.fit(X, y)
#we created an explainer with dalex package
exp = dx.Explainer(regr, X, y)
R-实现
#library
library(DALEX)
#apartments dataset from DALEX
#data have 5 numerical variables and 1 factor
head(apartments)
#we use one-hot encoding for district variable - one_hot() function from mltools
data <- mltools::one_hot(data.table::data.table(apartments))
#we created a random forest model using ranger library
library(ranger)
model <- ranger(m2.price~., data = data)
#we created an explainer with DALEX package
explainer <- explain(model, data = data, y = data$m2.price)
接下来的部分,会继续对XAI的可解释机器学习进行补充介绍:
- 基本的XAI与DALEX -Part1:介绍。
- 基本的XAI与DALEX -Part2:基于模型的变量重要性。
- 基本的XAI与DALEX -Part3:因素的边际效应
- 基本的XAI与DALEX -Part4:SHAP解释
-- 12.29
-- Happy birthday