我以为广义线性模型(GLM)会被认为是一种统计模型,但一位朋友告诉我,有些论文将其归类为机器学习技术。哪一个是正确的(或更准确的)?任何解释将不胜感激。
GLM 是统计模型还是机器学习模型?
GLM 绝对是一种统计模型,但统计模型和机器学习技术并不相互排斥。一般来说,统计学更关心推断参数,而在机器学习中,预测是最终目标。
关于预测,统计学和机器学习科学开始从不同的角度解决几乎相同的问题。
基本上统计假设数据是由给定的随机模型产生的。因此,从统计的角度来看,假设一个模型并给出各种假设,处理错误并推断模型参数和其他问题。
机器学习来自计算机科学的角度。这些模型是算法的,通常很少需要关于数据的假设。我们处理假设空间和学习偏差。我找到的关于机器学习的最佳阐述包含在 Tom Mitchell 的名为Machine Learning的书中。
有关这两种文化的更详尽和完整的想法,您可以阅读 Leo Breiman 名为Statistical Modeling: The Two Cultures 的论文
然而必须补充的是,即使这两种科学从不同的角度开始,它们现在都共享相当多的共同知识和技术。为什么,因为问题相同,但工具不同。所以现在机器学习主要是从统计的角度来处理(查看 Hastie、Tibshirani、Friedman 的书The Elements of Statistical Learning from a machine learning point of a statistical treatment,也许还有 Kevin P. Murphy 的书Machine Learning: A概率观点,仅举几本当今最好的书籍)。
甚至该领域的发展历史也显示了这种观点融合的好处。我将描述两个事件。
首先是 CART 树的创建,它是由 Breiman 创建的,具有扎实的统计背景。大约在同一时间,Quinlan 开发了 ID3、C45、See5 等具有更多计算机科学背景的决策树套件。现在,这两个树家族和像 bagging 和 Forests 这样的集成方法变得非常相似。
第二个故事是关于提升的。最初,它们是由 Freund 和 Shapire 在发现 AdaBoost 时开发的。设计 AdaBoost 的选择主要是从计算角度完成的。甚至作者也没有很好地理解它为什么起作用。仅仅 5 年后,Breiman(再次!)从统计的角度描述了 adaboost 模型,并解释了它为什么有效。从那时起,具有这两种背景的各种杰出的科学家进一步发展了这些想法,从而产生了大量的提升算法,如逻辑提升、梯度提升、温和提升等。现在很难在没有坚实的统计背景的情况下考虑提升。
广义线性模型是一种统计发展。然而,新的贝叶斯处理方法也将该算法置于机器学习领域。所以我相信这两种说法都是正确的,因为对其工作方式的解释和处理可能会有所不同。
除了 Ben 的回答之外,统计模型和机器学习模型之间的细微区别在于,在统计模型中,您在构建模型之前明确决定了输出方程结构。该模型用于计算参数/系数。
以线性模型或 GLM 为例,
y = a1x1 + a2x2 + a3x3
您的自变量是 x1、x2、x3,要确定的系数是 a1、a2、a3。在构建模型并计算 a1、a2、a3 之前,您可以通过这种方式定义方程结构。如果您认为 y 以某种非线性方式与 x2 相关,您可以尝试这样的事情。
y = a1x1 + a2(x2)^2 + a3x3.
因此,您对输出结构进行了限制。统计模型本质上是线性模型,除非您明确应用 sigmoid 或内核之类的变换来使它们成为非线性模型(GLM 和 SVM)。
在机器学习模型的情况下,您很少指定输出结构,并且决策树等算法本质上是非线性的并且可以有效地工作。
与 Ben 指出的相反,机器学习模型不仅仅是关于预测,它们还可以进行分类、回归等,这些模型可以用来进行预测,这些预测也可以通过各种统计模型完成。
GLM 绝对是一种统计模型,而越来越多的统计方法作为机器学习技巧被应用到工业生产中。这些天我读得最多的元分析是统计领域的一个很好的例子。
一个完美的 GLM 工业应用可以解释为什么你的朋友告诉你 GLM 被认为是一种机器学习技术。你可以参考源文件http://www.kdd.org/kdd2016/papers/files/adf0562-zhangA.pdf关于那个。
几周前,我实现了一个简化的框架,它被视为我的推荐系统在生产场景中的主要框架。非常感谢您给我一些提示,您可以查看源代码:https ://github.com/PayneJoe/algo-sensetime/blob/master/src/main/scala/GLMM.scala
希望这对你有帮助,美好的一天!