机器学习中如何应对非正态分布数据的建模


前言

在机器学习或数据分析过程中,通常会期待手里所拿到的数据在统计上是符合正态分布的。原因是大多常用的分析工具或算法模型均是以符合正态分布为前提条件。

比如,统计分析中的平均值、标准偏差、方差分析等;机器学习中的主成分分析、参数模型(如线性回归、判别分析等)。

当数据呈非正态分布时,计算平均值、标偏等就没有统计学意义;方差分析的过程涉及F检验,同样以样本服从正态分布为假设前提;当进行主成分降维时,每一个主成分都是方差最大化的方向,而计算方差本身的前提则是样本满足正态分布;而线性回归等模型要求残差服从正态分布,否则就无法计算模型参数的置信区间。

正态分布 and 非正态分布

对于做机器学习建模来说,最乐于看到的还是样本的特征呈正态分布,因此许多数据探索、特征工程以及模型本身都需要以服从正态分布为前提。

通常来说,我们期望的特征分布如下图所示:

image

呈正态分布的效果是可以尝试更多的分析技巧和选用更多的模型。但实际上,可能碰到的数据特征分布是下面这种情况:

image
呈明显的偏态分布。

或者下面这种:
image

分布出现两个甚至多个峰值,与标准的正态分布差别甚大。当出现多峰时,首先需要分析其原因。是否是因为存在多个不同的组?譬如在分类模型中,将所有不同类别的样本放在一起,那么特征分布出现多峰值就比较合理。

那么如果针对回归模型,或者分类模型中每个类别的特征分布仍呈非正态分布,这时应该如何处理呢?

大体来说,可采用两种不同的策略:

  • 对样本特征进行数据变换:如log变换、power transformation、quantile transformation等,这些都是将样本向正态分布方向进行变换的方式。一般来说,对于呈偏态分布采用log transformation、或者power transformation基本已足够将其转换为正态分布了。但对于呈多峰分布的,甚至需要通过分位数变换才能达到正态分布变换的效果。
  • 采用非参数模型:每个模型都有其假设前提或者限制条件。尽管许多模型近能够从满足正态分布的数据集中完成学习,但仍有大量的模型可以直接针对非正态分布的数据集完成训练学习,如SVM、Random Forests、Decision Trees或者Gradient Boosted Trees等。

到这里,基本讲完了如何在机器学习建模过程中如何应对非正态数据的处理了。那么什么是参数模型、或者非参数模型呢?

参数模型 and 非参数模型

参数模型中的模型参数数量固定,与数据集无关;在非参数模型中,参数的数量与样本集相关,参数数量会随着数据集增长而增加。

参数模型以数据分布为假设前提,从样本数据中估计模型参数(如均值、标偏等)用于建模,当数据分布呈偏态或者多峰分布时,均值则无法代表样本的总体情况,从而影响模型表现。非参模型不考虑特征分布,比如在决策树中,仅考虑两个分支的决策差异最大化,那么数据分布对于该过程则没有影响。

由于非参数模型,对于数据分布没有假设前提,因此可用于特征呈非正态分布的数据集建模。譬如在分类问题中,许多分类模型就可以直接处理非正态分布的特征数据集,如非参数模型支持向量机、决策树等,均可以处理非正态分布数据集。

下图是不同机器学习模型是否属于参数或非参数模型的汇总:
Image

小结

本文以非正态分布为说明入口,从以下几个方面论述开来:

  • 正态分布的意义;
  • 非正态分布的表现和影响;
  • 如何应对非正态分布;
  • 非参数模型与参数模型的说明。

Reference

[1] https://datascience.stackexchange.com/questions/25789/why-does-pca-assume-gaussian-distribution

[2] https://www.quality-control-plan.com/StatGuide/ftest_ass_viol.htm

[3] https://www.statology.org/multimodal-distribution/

[4] https://stats.stackexchange.com/questions/268638/what-exactly-is-the-difference-between-a-parametric-and-non-parametric-model

[5] https://vitalflux.com/difference-between-parametric-vs-non-parametric-models/


文章作者: 安立广
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 安立广 !
  目录