【机器学习算法实现】系列文章将记录个人阅读机器学习论文、书籍过程中所碰到的算法,每篇文章描述一个具体的算法、算法的编程实现、算法的具体应用实例。争取每个算法都用多种语言编程实现。所有代码共享至github:https://github.com/wepe/MachineLearning-Demo 欢迎交流指正!
(2)logistic回归__基于Python和Numpy函数库
1、算法简介
本文的重点放在算法的工程实现上,关于算法的原理不具体展开,logistic回归算法很简单,可以看看Andrew Ng的视频:
https://class.coursera.org/ml-007
,也可以看看一些写得比较好的博文:
洞庭之子的博文
。下面我只列出一些个人认为重要的点。
回归的概念:假设有一些数据点,我们用一条直线对这些点进行拟合,这个拟合过程就称作回归。
logistic回归算法之所以称作“logistic”,是因为它运用了logistic函数,即sigmoid函数。
logistic回归算法一般用于二分类问题(当然也可以多类别,后面会讲)。
logistic回归的算法思想:
用上面的图来分析,每个O或X代表一个特征向量,这里是二维的,可以写成x=(x1,x2)。
用logistic回归进行分类的主要思想就是根据现有数据集,对分类边界建立回归公式,拿上面这个图来说,就是根据
这些OOXX,找出那条直线的公式:Θ0*x0+Θ1*x1+Θ2*x2=Θ0+Θ1*x1+Θ2*x2=0 (x0=1)。
因为上图是二维的,所以参数Θ=(Θ0,Θ1, Θ2),分类边界就由这个(Θ0,Θ1, Θ2)确定,对于更高维的情况也
是一样的,所以无论二维三维更高维,分类边界可以统一表示成f(x)=ΘT*x (ΘT表示Θ的转置)。