为何模型行前先要检验分布情况?

  统计/机器学习 假设检验 概率分布 数据预处理 损失函数    浏览次数:3435        分享
1

各位高手,我一直很困惑,很多人在将数据放进机器学习模型之前,要先看数据特征的分布情况,比如T分布(T检验)、卡方分布(卡方检验)、正态分布等,为什么呢?还有很多情况下,都要确保独立同分布,啥模型会对同分布要求这么高?莫非很多模型的cost function都是基于正态分布推导来的吗?

 

shilongcn   2019-03-12 17:24



   2个回答 
3

模型行前先要检验分布是EDA中的重要步骤。要建模前肯定是要看特征和目标变量的分布。

特征的分布往往决定对特征要不要做变换、做哪种变换。

至于目标变量的分布也是类似的,看要不要做变换,如果是用glm的话,要根据分布选择合适的link function等等。

SofaSofa数据科学社区DS面试题库 DS面经

东布东   2019-03-13 12:13

很感谢你的回答,但还是不太理解,对于大部分机器学习模型来说,很少涉及link function,经常是代价函数,一般代价函数的推导是根据残差的分布情况,而残差一般服从正态分布,其中1/nΣ(y-y')^2型目标函数就是通过残差分布+MLE推导出来的,有没有根据目标变量和特征分布的推导对应代价函数的例子呢,或者相关资料,在这里提前谢过了! - shilongcn   2019-03-13 15:57
https://en.wikipedia.org/wiki/Generalized_linear_model 有link function表。目的是因变量 $Y$的均值是自变量线性组合的函数。$E(Y)=\mu=g^{-1}(X\beta)$,其中$g()$是link function。 - Zealing   2019-03-20 18:08
谢谢,这个我是知道的^_^ - shilongcn   2019-03-20 19:52
2

题主提到了残差,那如果残差不是正态分布呢?如果异常点很多呢?

这个情况下要不然考虑换loss function,比如MAE作为loss,或者分位数回归,huber回归(参考下鲁棒性的回归模型)。要不然就是在loss function里加权重,比如加权最小二乘法之类的。

对于二分类模型的话,了解y的分布,也可以帮助你看是用log-loss还是加权的log-loss,或者进行欠采样等等。

SofaSofa数据科学社区DS面试题库 DS面经

WinJ   2019-03-17 10:45

异常点一般是不建议进模型的,EDA过程中就被刷了,3σ原则或者1.5IQR原则就把异常处理了,另外你指加权终是Lasso或Ridge吧?正则化有助提高模型泛化能力,这个跟分布关系不大吧? - shilongcn   2019-03-20 15:41
如果数据是长尾的,异常点很难去。加权最小二乘法的加权是指每个样本权重不同。 - WinJ   2019-03-20 21:33
谢谢你的回答。 - shilongcn   2019-03-21 15:13


  相关讨论

判断两个骰子是独立的?

求介绍一下Shapiro–Wilk test?

怎么判断一个概率分布是对称的?

E-test是什么意思?

怎么验证数据服从某个特定的泊松分布?

如何检验两个样本是同分布的?

单样本T检验的自由度为什么是n-1?

方差分析的多重比较校正

python里Z-score和P-value相互转换

python中实现柯尔莫可洛夫-斯米洛夫检验(K-S test)

  随便看看

为什么LR要用Sigmoid函数?

回归问题中R方可以小于0吗?

Python的Jupyter Notebook环境下怎么制作一个动态显示的进度条?

如何重命名pandas的dataframe的列名

条件概率证明P(a,b|c) > P(a,b)