《解释性机器学习》笔记(一):理解线性回归模型中的权重、特征和结果

《Interpretable Machine Learning》(https://christophm.github.io/interpretable-ml-book/index.html)

内容围绕:对于一个训练好的线性模型,怎样去向模型使用者(客户)解释这个模型(参数含义、为什么得会得出这种预测结果)。

在这里插入图片描述
上图为一个线性回归的单个实例,最后一项为误差。

1. 模型是否“正确”,需要用到的数据间遵循一定假设

数据关系是线性的;训练结果分布是正态的;误差项的方差是恒定的;实例间是独立的;输入特征是真实常量,不存在误差;特征间不存在强相关性。

对于训练用的数据,可以从以上角度评估模型质量。

2. 权重β的解释——取决于对应特征的类型

线性模型中,特征可以归类为:数值特征(比如气温)、二进制特征(性别0/1)、范畴特征(天气:下雨、阴天、晴天,使用one-hot编码,让具体类别有自己的二进制选项)

截距β0:只有当特征被标准化(均值为0,标准差为1)时,截距的解释才有意义,而不应被理解为,x都为0的实例的预测结果。标准化后,截距反映了一个特征值=平均值的实例预测结果。

3. 特征x的解释

数值特征、二进制特征和范畴特征:其他特征不变的情况下,x改变一个单位,y就改变β单位,非常直观的y=β*x的线性变化。

4. R-squared measurement——衡量模型可解释程度(个人理解为模型预测结果的合理程度)

R-squared 公式
R-squared 公式
误差项平方和
SSE:误差项平方和
在这里插入图片描述
SST:数据方差平方和

个人理解为,SSE越小,说明误差越小,模型越准确,R方更接近1,认为模型能够很好解释数据;反之同理。

改进后的R-squared 公式:
原公式中 R方的值会随特征数的增加而增大(数据增加,SST增大),改进为
在这里插入图片描述
n:实例数 p:特征数

5. 特征的重要程度

书中用到权重β的t统计量
在这里插入图片描述
SE为标准差;
这个公式告诉我们:一个特征的重要性随着权重的增加而增加。直观上这点就没什么问题。个人理解为,计算出的权重误差越大=对正确权值的把握越小,说明对应特征越不稳定,就越不重要。

6. 将解释可视化

6.1 权值图

在这里插入图片描述

上图是基于天气等特征,预测自行车出租量的线性回归模型权重图,线段代表95%置信区间内的落值。通过权图可以直观的了解特征对结果的影响,正负,强弱,稳定程度等。由于特征的单位不同,在拟合前,可以通过调整特征(均值为0和标准差=1)使权重更具可比性。

6.2 影响图

直观上,影响=w*x,理解为这个特征对结果的影响大小
在这里插入图片描述
在这里插入图片描述

上面箱型图中,中间竖线代表影响的中位数,盒子长度代表所有影响值分布的25%~75%内范围(一半数量),剩余的由水平线和点表示。
图数据中可理解为,对于自行车租借量,贡献最大的是温度特征和天数特征,它们反映了自行车租赁随时间的变化趋势。温度对预测的影响范围很广。天数特征产生从0到较大的正贡献,是因为采集数据的第一天具有非常小的影响,并且该特征的权重为正(4.93),意味着影响随着时间的推移而持续增加,并且在数据采集的最后一天达到最高。
注意,对于权值为负的特征,实例之所以产生正影响是因为特征值也是负数。分析时需要关注下符号。

7. 解释单个实例

给定一个具体实例,分别计算出每项的影响值(w*x),标在影响图中就可以啦。
在这里插入图片描述
下面列出这个例子的各个特征值
在这里插入图片描述
如何结合模型解释这个实例呢?
“训练数据预测结果的平均值是4504。相比之下,该实例的预测较小,只预测了1571辆自行车。影响图揭示了原因。箱形图显示了数据集所有实例的影响分布,叉叉显示了该实例的影响。该实例有一个低温效应,因为这一天的温度是2度,与其他大多数日子相比是低的(记住,温度特征的权重是正的)。另外,与其他数据实例相比,趋势特性“days_since_2011”的影响较小,因为该实例来自2011年初(数据第5天),而且趋势特性的权重也为正。”

8. 解释多类别(范畴)特征的影响

有多个类别的特征(天气:阴天、小雨、大雪…)要如何编码,不同的编码方式对应不同的权重解释。

假设有三种类别(A、B、C)的范畴特征,选六个实例,前两个是A类,中间两个B类,最后两个C类。

第一种:Treatment coding,这种编码方式下,每个类别的权重是对该类别与参考类别预测的差异(理解为一个普通的w,不用想太多)

每行表示一个实例,列表示特征,第一列表示截距β0,所以一直为1,第二列表示B类、第三列表示C类,B和C都为0就表示A类;如果单独增加A类的列话,线性方程就无法计算出权值唯一解。

特征矩阵:
1 0 0
1 0 0
1 1 0
1 1 0
1 0 1
1 0 1

第二种:Effect coding,这种编码方式下,每个类别的权重是该类别与总体平均值的y差(假设所有其他特征为0或为参考类)。
这里理解为,此时特征矩阵中0和1代表的已经不是类别,而是差值,差几个β0,差几个β1这样。

特征矩阵:
1 -1 -1
1 -1 -1
1 1 0
1 1 0
1 0 1
1 0 1

第一列代表截距β0,也是总体平均值(前面提到截距应被标准化);第二列的权重β1,代表B类和总体平均的差,所以B类的影响应为 β0+β1(B类影响比截距多出β1),同理C类的影响为β0+β2;A类对总体平均的差为 -(β1+β2),影响为β0 -(β1+β2),这里我理解为了保证β0是均值,因此A类的差值要分布在β0的另一侧,所以六个实例的特征矩阵如上

第三种:Dummy coding,忽略截距,每类的β代表该类计算出的y的平均值(假设所有其他特征为0或为参考类)

特征矩阵:
1 0 0
1 0 0
0 1 0
0 1 0
0 0 1
0 0 1

很好理解 ,是哪类就给哪类标1,忽略截距是为了让权重有解

P.S 这里书中应是把每个范畴特征单独拿出来做解释,本节β0 β1等权重是针对这个范畴特征下的每个类,不是大模型的特征。

范畴特征编码更深入讨论:http://stats.idre.ucla.edu/r/library/r-library-contrast-coding-systems-for-categorical-variables/
http://heidiseibold.github.io/page7/

9. 稀疏线性模型(减少特征)

特征比较多的时候,如何缩减特征;

Lasso是一种将稀疏性引入线性回归模型的自动且简便的方法。Lasso表示“最小绝对收缩和选择算子”,在线性回归模型中应用时,对特征权重进行选择和正则化。

对于权值优化的最小化问题:
在这里插入图片描述
Lasso引入了一个正则项:
在这里插入图片描述

||β||1为特征向量的L1范式,对大权重惩罚,λ控制正则化的强度,通常用交叉验证调整。λ越大,越多权值为0。

对权重的压缩效果:
在这里插入图片描述 第一行为非0权重数量。

应用到自行车租赁的模型中:
在这里插入图片描述
只剩下了影响最大的两个特征。

其他的稀疏方法:
a. 预处理式:请专家筛选特征;只考虑与目标之间的相关性超过某个阈值的特征。
b. 分步式:前向筛选,每次只选择一个使模型整体工作最好的特征,一个一个添加;反向筛选,和前者相反,保证效果的前提下,从所有特征开始,逐个减少。

10. 线性模型解释性的优缺点

原文:https://christophm.github.io/interpretable-ml-book/limo.html

笔记:
优点:1.加权求和,简单透明。
2.非常普及使用方便,有许多案例。
3.能找到最优权值。
缺点:
1. 特征中的非线性关系得手动处理。
2. 过于简化复杂现实,预测性能不佳。
3. 权重的解释不直观,因为特征间会具有相关性。

  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值