CRAN_状态_标签 R构建状态 Codecov测试覆盖率 JOSS-状态

概述

这个模型工作室包装自动化机器学习预测模型的解释分析。它以无服务器HTML站点只有一行代码。该工具是模型识别的,因此与大多数黑盒预测模型和框架(例如毫升/毫升3xgboost公司插入符号欧防风潮汐模型科学知识学习光(gbm)keras/张量流).

主要模型工作室()函数计算各种(实例和模型级)解释并生成可自定义仪表板,由多个用于绘图的面板及其简短描述组成。很容易节约仪表板和分享和其他人一起。用于的工具解释性模型分析与探索性数据分析工具相结合,对模型行为进行全面概述。

解释新冠肺炎R&Python示例更多资源交互式EMA

这个模型工作室包是为什么博士。人工智能宇宙。

安装

#从CRAN安装:
安装.包(“modelStudio”)

#从GitHub安装开发版本:
开发工具::安装github(“面向模型/modelStudio”)

简单的演示

图书馆(“戴勒克斯”)
图书馆(“护林员”)
图书馆(“modelStudio”)

#拟合模型
模型 <- 护林员(分数 ~.,数据= 快乐_训练)

#为模型创建解释程序
解释者 <- 解释(模型
数据= 快乐测试
= 快乐测试$分数
标签= “随机森林”)

#为模型制作工作室
模型工作室(解释者)

保存输出以HTML文件的形式-演示仪表板.

R&Python示例更多


这个模型工作室()函数使用DALEX公司使用创建的解释程序DALEX::解释()DALEXtra::解释_*().

#解释程序对象的包
安装.包(“戴勒克斯”)
安装.包(“DALEXtra”)

最大似然比仪表板

为回归制作工作室护林员上的模型公寓数据。

代码
#加载包和数据
图书馆(最大似然比)
图书馆(DALEXtra公司)
图书馆(模型工作室)

数据 <- DALEX公司::公寓

#拆分数据
指数 <- 样品(1:nrow公司(数据)0.7*nrow公司(数据))
火车 <- 数据[指数]
测试 <- 数据[-指数]

#拟合模型
任务 <- makeRegr任务(身份证件= “公寓”,数据= 火车,目标= “m2价格”)
学习者 <- 使学习者(“再生护林员”,预测类型= “响应”)
模型 <- 火车(学习者任务)

#为模型创建解释程序
解释者 <- 解释_mlr(模型
数据= 测试
= 测试$m2价格
标签= “mlr”)

#选取观测值
新建观测(_O) <- 测试[1:2]
行名称(新建观测(_O)) <- c(c)(“id1”“id2”)

#为模型制作工作室
模型工作室(解释者新建观测(_O))

xgboost公司仪表板

为分类制作工作室xgboost公司上的模型泰坦尼克号数据。

代码
#加载包和数据
图书馆(xgboost公司)
图书馆(DALEX公司)
图书馆(模型工作室)

数据 <- DALEX公司::钛_计算

#拆分数据
指数 <- 样品(1:nrow公司(数据)0.7*nrow公司(数据))
火车 <- 数据[指数]
测试 <- 数据[-指数]

列车矩阵 <- 模型矩阵(幸存下来的 ~.-1火车)
测试矩阵 <- 模型矩阵(幸存下来的 ~.-1测试)

#拟合模型
xgb_矩阵 <- xgb。D矩阵(列车矩阵,标签= 火车$幸存下来的)
参数 <- 列表(最大深度(_depth)= ,目标= “二进制:逻辑”,评估度量= “auc”)
模型 <- xgb.火车(参数xgb_矩阵,个nrounds= 500)

#为模型创建解释程序
解释者 <- 解释(模型
数据= 测试矩阵
= 测试$幸存下来的
类型= “分类”
标签= “xgboost”)

#选取观测值
新观测 <- 测试矩阵[1:2,下降=错误的]
行名称(新建观测(_O)) <- c(c)(“id1”“id2”)

#为模型制作工作室
模型工作室(解释者新建观测(_O))

这个模型工作室()函数使用达尔克斯使用创建的解释程序达拉克斯。解释者().

解释器对象的::包pip安装dalex-U

使用泡菜Python模块和网状的R包可以轻松为模型制作工作室。

#酸洗包装
安装.包(“网状”)

科学知识学习仪表板

为回归制作工作室管道SVR上的模型国际足联数据。

代码

首先,使用达尔克斯在Python中:

#加载包和数据
进口达尔克斯作为dx公司
sklearn.model_选择进口列车_测试_拆分
sklearn.管道进口管道
sklearn.预处理进口标准缩放器
sklearn.svm进口SVR公司
努皮进口日志

数据=dx.datasets.load_fifa()
X(X)=data.drop(列=[“总体”“潜在”'价值_我们'“wage_eur”“国籍”],轴=1)
=日志(data.value_eur)

#拆分数据
X_train、X_test、y_train和y_test=列车测试分段(X,y)

#拟合管道模型
模型=管道([(“缩放”,标准缩放器())(“支持向量机”,SVR())])
模型.fit(X_train,y_train)

#为模型创建解释程序
解释者=dx。解释器(模型、数据=X测试,y=y_test,标签=“科学知识学习”)

#将解释程序打包到pickle文件中
解释器.泵(打开('explainer_scikitslearn.plickle'“wb”))

然后,使用模型工作室在R中:

#从pickle文件加载解释程序
图书馆(网状的)
解释者 <- py加载对象(“explainer_scikitelearn.pickle”,泡菜= “泡菜”)

#为模型制作工作室
图书馆(模型工作室)
模型工作室(解释者,B= 5)

光(gbm)仪表板

为分类制作工作室管道LGBM分类器上的模型泰坦尼克号数据。

代码

首先,使用达尔克斯在Python中:

#加载包和数据
进口达尔克斯作为dx公司
sklearn.model_选择进口列车_测试_拆分
sklearn.管道进口管道
sklearn.预处理进口标准缩放器、OneHotEncoder
sklearn.插补进口简单计算机
sklearn.compose(sklearn.compose)进口柱形变压器
光(gbm)进口LGBM分类器

数据=dx.datasets.load_titanic()
X(X)=data.drop(列=“幸存”)
=存活的数据

#拆分数据
X_train、X_test、y_train和y_test=列车测试分段(X,y)

#拟合管道模型
数字功能=[“年龄”“票价”“sibsp”“烤焦”]
数字变压器=管道(
步骤=[
(“插补”、简单计算机(策略=“中位数”)),
(“缩放器”,标准缩放器())
]
)
类别特性=[“性别”“类”“上船”]
类别变换器=管道(
步骤=[
(“插补”、简单计算机(策略=“常量”,填充值=“缺少”)),
(“一个热点”,OneHotEncoder(句柄未知=“忽略”))
]
)

预处理器=柱形变压器(
变压器=[
(“num”、数字转换器、数字特征),
(“猫”,类别_转换器,类别_功能)
]
)

分类器=LGBM分类器(n_estimators=300)

模型=管道(
步骤=[
('预处理器',预处理器),
('分类器',分类器)
]
)
模型.fit(X_train,y_train)

#为模型创建解释程序
解释者=dx。解释器(模型、数据=X测试,y=y_test,标签=“lightgbm”)

#将解释程序打包到pickle文件中
解释器.泵(打开('解释程序_lightgbm.pickle'“wb”))

然后,使用模型工作室在R中:

#从pickle文件加载解释程序
图书馆(网状的)
解释者 <- py加载对象(“explainer_lightgbm.pickle”,泡菜= “泡菜”)

#为模型制作工作室
图书馆(模型工作室)
模型工作室(解释者)

保存和共享

保存模型工作室使用RStudio Viewer顶部的按钮或r2d3::save_d3_html().

引文

如果您使用模型工作室,请引用我们的JOSS文章:

@文章{baniecki2019modelstudio,title={{modelStudio:Interactive Studio with Explarations for ML Predictive Models}},author={Hubert Baniecki和Przemyslaw Biecek},journal={开源软件杂志},年份={2019},体积={4},数字={43},页数={1798},url={https://doi.org/10.21105/joss.01798}}

有关交互式EMA流程的描述和评估,请参阅我们的DAMI文章:

@文章{baniecki2023语法,title={交互式解释模型分析的语法},author={Hubert Baniecki和Dariusz Parzych以及Przemyslaw Biecek},journal={数据挖掘和知识发现},年份={2023},页数={1-37},url={https://doi.org/10.1007/s10618-023-00924-w网址}}

致谢

该一揽子计划的工作得到了国家科学中心(波兰)拨款的资助2016/21/B/ST6/02176和国家研发中心拨款POIR.01.01-00-0328/17号文件.