边缘检测程序员逻辑回归

机器学习之逻辑回归算法

2019-01-08  本文已影响67人  一枚不只关注技术的技术宅

算法这个系列是我一直有些不愿意去涉及的。这个系列内容太多,干货太多,一来是比较繁琐,二来是很容易有些地方出错,反而给大家设立一个错误的知识。不过思来想去,这一部分的内容确实是难以避免的,也是最为重要的,今天开始我会每隔一两天来为大家送上一篇算法详解,在中间我会尽量少用数学的公式,尽量使用易懂的语言为大家来讲解算法。

机器学习的基础算法大致有以下几种:逻辑回归(Logistic Regression),k-NN(k-Nearest Neighbors),SVM(Support Vector Machine),决策树(Decision Tree),神经网络(Neural Network),K-Means等。除此基础算法之外,还有两种集成思想构成的集成算法(Ensemble),这两种思想为:Bagging和Boosting。

机器学习的算法体系基本如上所述,今天我们先从逻辑回归讲起。

逻辑回归,有些也翻译做逻辑斯蒂回归,这两种翻译方式其实都没有抓到逻辑回归的核心。Logistic中的Log指的是Log变换,即指的是在线性回归(Linear Regression)的基础上对式子做出Log变换,从而得到一种名为Logistic Regression的分类算法。逻辑回归作为一种简单、透明、易解释的分类算法,广泛应用于金融和风险预测领域。目前世界上仍有80%的决策是借助逻辑回归的辅助来完成的。也就是说,逻辑回归虽然可以称得上是最简单的算法,但是仍然受到了非常广泛的应用。

由于逻辑回归来源于线性回归,它继承了线性回归的许多特质。最重要的一条特质就是模型中的每一个特征都拥有一个独立的参数。正是由于独立参数的存在,让模型中每个特征的重要性有了解释的可能,如下所示:

图中左边加粗部分是每个特征的名称,Coef.是每一个特征对应的参数,同时我们还可以通过P值的大小来筛选变量(通常保留P<=0.05的特征)。在这里需要注意的是,虽然参数值越大代表这个特征越为重要,但一切的前提一定是数据是经过归一化处理的,否则特征和特征的数值不具备可比性,自然也就无法根据参数的大小比较重要性。

以上的结果是由Python中的Statsmodel函数库实现的,Sklearn虽然也有逻辑回归的实现,但是功能要单薄不少。逻辑回归的运用,多半还是在统计分析方面,所运用的方法也以统计方法为主,若是纯粹的机器学习方法的话,逻辑回归的效果会差得比较多。

在统计分析中,往往更侧重于模型的透明性(即可解释性),我们需要用到模型的结果来说服决策者,并让决策者做出重要的决定;而机器学习侧重于模型的准确度,模型往往也不需要起到辅助决策的作用,因此往往忽略掉了可解释性。

笔者还记得当时在美帝读研究生时,有一门课花了将近一个学期的时间(大约10周)来讲线性回归和逻辑回归的原理、分析、代码实现等等,因此,逻辑回归虽然算法原理简单,但是分析方法绝不仅仅是几篇文章就能讲清楚的,这里还是建议大家去找些书来细细研究,我这里推荐一本:

这本是英文原版,如果大家有谁找到了中文译版的话,请大家在留言中分享一下。

想成为一名合格的数据科学家/AI工程师吗?关注“机器学习学社”获取每天一份的新鲜咨询,为你开拓属于你自己的AI之路

上一篇下一篇

猜你喜欢

热点阅读