xai-一个面向工业的机器学习库,确保通过设计实现可解释的人工智能

xai的Python项目详细描述


![github](https://img.shields.io/badge/release alpha yellow.svg)
![Github](https://img.shields.io/badge/version-0.0.4_alpha-lightgrey.svg)
![github](https://img.shields.io/badge/python-3.5_u 3.6-blue.svg)
![github](https://img.shields.io/badge/license mit lightgrey.svg)

\xai-用于机器学习的可解释性工具箱

xai是一个以ai可解释性为核心设计的机器学习库。xai包含各种工具,可以对数据和模型进行分析和评估。x ai库由[道德人工智能研究所](http://ethical.institute/)维护,它是基于[负责任机器学习的8个原则](http://ethical.institute/principles.html)开发的。

ai/index.html)(https://ethicalml.github.io/xai/index.html)。您也可以查看我们的[伦敦Tensorflow演讲](https://www.youtube.com/watch?v=gzpfbhqj0h4)这个想法最初是在哪里构思的-谈话还包含了对这个库中的定义和原则的洞察。

\youtube视频展示了如何使用xai来减轻不必要的偏见

<;tr>;
<;td width="30%">;
this<;a href="https://www.youtube.com/watch?v=rq95qznozkw">;到2019年在pycon会议上展示的演讲视频<;/a>;概述了机器学习可解释性的动机,以及使用xai库引入可解释性和减轻不希望的偏见的技术。
<;/td>;
<;td width="70%">;
<;a href="https://www.youtube.com/watch?"v=rq95qznozkw">;<;img src="images/video.jpg">;<;/a>;
<;/td>;
<;/tr>;
<;tr>;
<;td width="30%">;
您想了解更多出色的机器学习可解释性工具吗?查看我们的社区构建<;a href="https://github.com/ethicalml/awesome machine learning operations">;"awesome machine learning production&operations"<;/a>;列表,其中包含可解释性、隐私性、编排和其他方面的大量工具。
<;/td>;
<;td width="70%">;
<;a href="https://github.com/ethicalml/awesome machine learning operations">;<;/td>;
<;/tr>;

<;/table>;

0.0.4-alpha版本

在早期的开发阶段,由于更新速度很快,因此会非常不稳定。如果在生产中使用它,记住这一点很重要。

如果您希望看到一个功能齐全的实际演示,请克隆此repo并运行示例文件夹中的示例jupyter笔记本<;/a>;




我们认为可解释性的挑战不仅仅是一个算法挑战,它需要将数据科学的最佳实践与特定领域的知识结合起来。xai库旨在授权机器学习工程师和相关领域专家分析端到端解决方案,并识别可能导致相对于所需目标的次优性能的差异。更广泛地说,xai库的设计采用了可解释机器学习的三个步骤,包括1)数据分析,2)模型评估,3)生产监控。

我们在此图表中提供上述三个步骤的可视化概述:

<;img width="100%" src="images/bias.png">;



要安装,您可以运行:

```
pip install xai
````

n setup.py install
```

为此,我们将从xai库加载census数据集。

``python
import xai.data
df=xai.data.load撸census()
`df.head()
````
<;img width="100%" src="images/readme csv head.jpg">;

``python
ims=xai.失衡曲线(df,"gender")
```
<;img width="100%" src="images/readme失衡gender.jpg">;

``python
im=xai.显示所有类别的失衡(df,"gender","loan")
````
<;img width="100%" src="images/readme失衡multiple.jpg">;


执行自定义操作关于群体
``python
groups=xai.group_by_列(df,["gen"gender","loan"])
关于群体,分组分组分组分组分组分组分组分组分组分组分组分组分组分组分组分组分组分组:
打印(组)
>打印(group_df["loan"].head(),"\n")
````
<;img width="100%" src="images/readme groups.jpg">;


>
相关性s作为矩阵
``python
``xai.correlations(df,include分类=true,plot_type="matrix")
```
<;img width="100%" src="images/readme correlation matrix.jpg">;

e_u categorical=true)
```
<;img width="100%" src="images/readme correlation dendogram.jpg">;


创建一个平衡的验证和训练分割数据集
`` python
平衡的训练分割,至少300个目标y和列交叉的例子n性别
x_列,y_列,x_列,y_列,y_列,i_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列=
xai.均衡的x_列,x_列,y,x_列,性别,
min_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列,x_列,x雨露idx]
x_测试显示=bal_-df[测试_-idx]


>打印("示例总数:",x_测试.形状[0])




>df_测试=x_测试显示.copy()
>df_测试["贷款"]=y_测试

>

\2)模型评估

为此,我们将训练一个单层的深度学习模型。

```
模型=构建模型(proc_u df.drop("loan",axis=1))


模型.拟合(f_in(x_列),y_列,epochs=50,批量大小=512)


概率=模型.预测(f_in(x_测试))
预测=列表((概率>;=0.5)。astype(in t.t[0])
````
<;img width="100%" src="images/readme-15.png">;



``` python
``可视化排列特征重要性
``python
def get_avg(x,y,y,verbose=0[1]

imp=xai.feature重要性(x,y,y,verbose=0[1]



imp=xai.feature重要性(x,x,x,x,x,x,x,x,x,x,y,y,verbose=0=0)的回归u test,y_test,get_avg)

imp.head()
````
<;img width="100%" src="images/readme-6.png">;





35
imp.head()
imp.head()
```
``````
>><;img width="100%" src="images/readme-6.png-6.png">;

G",>;

/自述度量列.jpg">;

识别多个列之间的度量不平衡
es/readme metrics multiple.jpg">;


35
`` python
xai.confus数据
`` python
uu=xai.roc_绘图(y_u检验,概率)
```
<;img width="100%" src="images/readme-9.png">;


``python
protected=["性别"、"种族"、"年龄"]
uu=[xai.roc戋绘图(
y戋u检验,
概率,
df=x_测试显示,
cross_cols=[p],
categorical_cols=categorical_cols)对于受保护的p而言,
````
<;img width="100%" src="images/readme-10.png">;

概率)
```
<;img width="100%" src="images/readme-12.png">;

00%" src="images/readme-13.png">;

同时)
```
<;img width="100%" src="images/readme-14.png">;










欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应该考虑使用DTO来代替Spring控制器层吗?   java为什么要将Maven与Git结合起来?   java试图将CSV转换为XLSX,但使用了错误的逗号拆分列   mysql Spring 3+Hibernate:java。sql。BatchUpdateException:无法添加或更新子行(ManyToMany)   java基本字符串反转器   java无法使用RestControllerAdvice为身份验证失败生成自定义错误消息   java当只允许SQLException时,如何抛出EOFEException?   java如何创建播放模块?   Android中匿名类的java实例化异常问题   java两个停靠组件,其中第二个组件填充剩余空间   java如何在按钮延迟时启用它   Java中正在运行的应用程序中的后台进程   java我正试图从一个字符串打印出这个字符输出   如何使用java socket通过两个不同的wifi连接两台电脑?   javaapachecamel:如何将分层数据从数据库转换为pojo   java Webrtc:OniconConnectionChange和onConnectionChange之间有什么区别   java如何重写已经创建的JTable方法   爪哇扫雷机堆垛机   雅加达ee Java ee EJB 3.0 Glassfish