我最近发现了一个非常好的github存储库,名为SHAP,用Python和JavaScript编写。它可以用来解释任何机器学习模型的输出。你可以看到一个很好的视频here,它很好地解释了这个库。在

在python编写的一个分类问题中,我发现在使用这个库时可能会遇到一些小问题。在

说明:

我使用了整整103个特性来建模由-1、0和1描述的三个标签。

我所有的功能都定义得很好,而且都有一个相关的标题。问题是我没有在每个单位传递103个特性。我在每个时间单位传递103*15个特性,即当前时间t_0的103个特性和时代{}的相同特性。我的train数据集的形状是(35087, 15, 103),其中第一个参数代表35087秒。在

这里有一个很明显的example我可以如何使用它:import shap

# we use the first 100 training examples as our background dataset to integrate over

explainer = shap.DeepExplainer(model, x_train[:100])

# explain the first 10 predictions

# explaining each prediction requires 2 * background dataset size runs

shap_values = explainer.shap_values(x_test[:10])

# init the JS visualization code

shap.initjs()

# transform the indexes to words

import numpy as np

words = imdb.get_word_index()

num2word = {}

for w in words.keys():

num2word[words[w]] = w

x_test_words = np.stack([np.array(list(map(lambda x: num2word.get(x, "NONE"), x_test[i]))) for i in range(10)])

# plot the explanation of the first prediction

# Note the model is "multi-output" because it is rank-2 but only has one column

shap.force_plot(explainer.expected_value[0], shap_values[0][0], x_test_words[0])

我想得到的只是

如何处理时间t_1,…,t_14的特征,以得到每个特征的贡献?在

更新

以下是我尝试的更新:

所以最初,我有103特性和3标签。X_train.shape是(35087, 15, 103),而{}是{}。在

^{pr2}$

这里shap_values似乎是一个由三个形状(10, 15, 103)组成的数组的列表。在X_test_flatten = X_test.flatten()

shap.summary_plot(shap_values, X_test_flatten, features_names=FEATURES)

从那里我得到了错误*** IndexError: index 40 is out of bounds for axis 0 with size 15

有谁能帮我把上面的信息告诉我吗?在

python变量贡献率排序_103,每个特征的贡献率是多少?相关推荐

  1. python特征选择后显示选取的特征名_特征选择 (feature_selection)

    特征选择 (feature_selection) 本文主要参考sklearn(0.18版为主,部分0.17)的1.13节的官方文档,以及一些工程实践整理而成. 当数据预处理完成后,我们需要选择有意义的 ...

  2. 变量 常量 Python变量内存管理 赋值方式 注释

    目录 变量 1.什么是变量 2.为什么有变量? 3.定义变量 4.变量的组成 5.变量名的命名规范 6变量名的两种风格 常量 Python变量内存管理 1.变量存哪儿? 2.Python垃圾回收机制 ...

  3. python中变量不需要事先声明_第二章 Python 变量

    2.1  Python变量 在 Python 中变量不需要事先声明变量名及其类型,直接赋值即可创建各种变量(不要使用关键字为变量名),例如: >>>x = 4 >>> ...

  4. python实现常见排序算法

    python实现常见排序算法 快速排序 思想:取出第一个元素把它放到序列的中间某一个正确位置,以它进行分割成左边和右边,再分别对左边和右边进行取元素分割(递归) 递归实现 def quicksort( ...

  5. python变量 数据类型 列表 元组 字典

    python基础语法2 变量 数据类型与类型转换 列表 添加列表元素 修改元素 删除列表元素 组织列表 创建数值列表 操作列表 元组 元组转列表 字典 创建字典 列表取值 字典删除增加修改 变量 变量 ...

  6. python变量类型有几种_python十种变量类型

    变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中.因此,变量可以指定不同的数据类型,这些变量可以存储整数, ...

  7. python变量类型之间转换_【Python】Python 变量类型(变量赋值,数据类型,数据转换)...

    目录 Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中.因此,变量可以指定不同的数 ...

  8. python获取声音波形的关键特征

    python获取声音波形的关键特征 一.声音波形如下 二.特征提取 导入音频处理库: pip install librosa pip install numpy pip install matplot ...

  9. Python 变量作用域与函数(4)

    Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...

  10. 预处理--python实现用随机森林评估特征的重要性

    python实现用随机森林评估特征的重要性 随机森林根据森林中所有决策树计算平均不纯度的减少来测量特征的重要性,而不作任何数据是线性可分或不可分的假设. import numpy as np impo ...

最新文章

  1. C++智能指针:weak_ptr实现详解
  2. 判断输入是否为汉字的方法
  3. Linux下ps -ef和ps aux的区别
  4. zookeeper for mac安装
  5. python程序打完后怎么保存_如何保存要在之后使用的值应用程序执行()在python中退出?...
  6. 【Error】IDEA报错:org.jetbrains.jps.builders.java.dependencyView.TypeRepr$PrimitiveType cannot be cast t
  7. Android中最常用也是最难用的控件——ListView
  8. 一加8系列新机有望亮相CES 2020:全系支持5G网络
  9. cefsharp 添加html,winform+cefSharp实现窗体加载浏览器
  10. 白话讲解RPC调用和HTTP调用的区别
  11. 虚拟机几种联网的方式,如何共享主机IP
  12. unity Maya中模型动画可能存在的问题总结
  13. 支付宝登录java_支付宝登录java和android
  14. SATA Link Power Management的partial和slumber power state区别
  15. 【Iass Saas Paas】
  16. 金额数字3位隔开php,PHP实现人民币数字格式化,每三位加逗号
  17. 运放放大倍数计算公式_模电的半壁江山——运算放大器的原理和应用
  18. 粉刺黑头实际上就是黑头粉刺,是粉刺的一种类型,挤出后形如小虫,表面发黑。下面给大家带来除粉刺黑头的偏方,希望对大家有所帮助。
  19. 深度解码真实的90后消费:敢爱敢花,却被高负债压得透不过气
  20. Android APP全局黑白化实现方案

热门文章

  1. 初创公司几个投资人,各占多少股份合适
  2. 利用百度API进行淘宝评论关键词提取
  3. ROS笔记(一)xxx.launch文件详解
  4. ROS节点运行管理launch文件
  5. ubuntu下 分辨率设置
  6. overleaf/latex 使用IEEE tran模板同名作者用横线替代
  7. 全通系统定义、零极点关系、应用
  8. Unity chan下载
  9. 如何通俗的理解机器学习中的VC维、shatter和break point?
  10. 评论系统--开发总结