我使用shap
来确定具有相关特征的多元回归的特征重要性。
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston
import shap
boston = load_boston()
regr = pd.DataFrame(boston.data)
regr.columns = boston.feature_names
regr['MEDV'] = boston.target
X = regr.drop('MEDV', axis = 1)
Y = regr['MEDV']
fit = LinearRegression().fit(X, Y)
explainer = shap.LinearExplainer(fit, X, feature_dependence = 'independent')
# I used 'independent' because the result is consistent with the ordinary
# shapely values where `correlated' is not
shap_values = explainer.shap_values(X)
shap.summary_plot(shap_values, X, plot_type = 'bar')
shap提供一个图表来获取shap值。还有统计数据吗?我对确切的形状值感兴趣。我读了Github存储库和留档,但我没有发现关于这个主题。
当我们查看shap_值
时,我们看到它包含一些正数和负数,其维度等于boston
数据集的维度。线性回归是一种ML算法,它计算最优的y=wx b
,其中y
是MEDV,x
是特征向量,w
是权重向量。在我看来,shap_值
存储了wx
——一个矩阵,每个feauture的值乘以线性回归计算的权重向量。
因此,为了计算所需的统计数据,我首先提取绝对值,然后对其进行平均。顺序很重要!接下来,我使用初始列名,并从最大效果到最小效果进行排序。有了这个,我希望我已经回答了你的问题!:)
from matplotlib import pyplot as plt
#rataining only the size of effect
shap_values_abs = np.absolute(shap_values)
#dividing to get good numbers
means_norm = shap_values_abs.mean(axis = 0)/1e-15
#sorting values and names
idx = np.argsort(means_norm)
means = np.array(means_norm)[idx]
names = np.array(boston.feature_names)[idx]
#plotting
plt.figure(figsize=(10,10))
plt.barh(names, means)
SVG 有大量的内置图形。例如:轴对齐矩形和圆形。在D3中结合D3的路径数据生成器和SVG的路径(path)元素能更加灵活地绘制图形。 形状生成器,例如d3.svg.arc返回的,既是一个对象又是一个函数。也就是说,你可以像其他函数一样调用形状生成器。形状生成器对象遵循链式语法。 SVG 元素 所有的SVG形状都可以使用transform属性。你可以将转换直接应用在SVG形状上,或者应用在g元素上
使用路径以及可选的孔洞来定义一个二维形状平面。 它可以和ExtrudeGeometry、ShapeGeometry一起使用,获取点,或者获取三角面。 代码示例 const heartShape = new THREE.Shape(); heartShape.moveTo( 25, 25 ); heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 ); hear
在你的文档中,大多数图层都将会是形状图层。Sketch提供了种类繁多的默认图形,比如圆形、矩形、星形等。你可以像编辑其他矢量图层一样直接对它们进行编辑,但其中很多形状也提供了扩展选项,可以更简单地获得想要的效果。 想要在你的文档中添加新的形状图层,只需点击工具条里的“形状(Shape)”按钮并选择其中一个可用的方案。因为形状是由矢量组成的,你可以使用矢量编辑工具轻松把它们变成你想要的形状。 扩展选
为什么这工作正常: 这会产生运行时错误 错误: 这没有任何意义。第一个代码工作正常,三角形画好了,但第二个代码不行。有人能解释一下我做错了什么吗...
主要内容:JOGL 3D形状 重要方法在上一节教程中,我们已经学习了如何创建 2D 形状并对其执行各种操作。除了 2D,JOGL 还为应用程序提供硬件支持的 3D 图形。 JOGL 3D形状 重要方法 JOGL glMatrixMode() 方法 glMatrixMode() 方法用于指定当前矩阵。它在其参数中包含一个模式,用于指定后续矩阵运算的目标矩阵堆栈。此模式可以接受以下任何值: GL_MODELVIEW : 用于将后续矩阵操作
主要内容:JOGL 正方形示例,JOGL 三角形示例在上一节中,我们已经学习了如何在 JOGL 中绘制基本线条。使用相同的方法,我们还可以绘制各种类型的形状,例如正方形、矩形、三角形等。 JOGL 正方形示例 在这个例子中,我们将绘制四个不同的边,使它们都连接在一个正方形的点上。 输出结果如下: JOGL 三角形示例 在这个例子中,我们将绘制三个不同的边,它们都连接在一个三角形形状的点上。 输出结果如下: 因此,任何类型的图形都可以通过连接特定形状