机器学习——Logistic回归
回归:
常见的回归是指我们给定一些数据点,用于一条直线的拟合,在得到这条直线后,当有新的输入时,可以得到它的输出,相较于普通的线性回归(用于连续变量的预测),Logistics主要用于离散变量的分类,它的输出范围是一个离散的集合,表示属于某一类的概率。总的来说,Logistics回归进行分类的主要思想是:根据现有数据对分类边界线建立回归,以此进行分类,本质上是一个基于条件概率的判别模型。
推导:
对于Logistics回归,一个重要的Sigmoid函数需要了解:
h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_\theta(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=g(θTx)=1+e−θTx1
对于这个函数的理解: θ \theta θ是一个参数列向量,这是我们需要求解的拟合参数,x是样本列向量,即我们给定的数据集,函数g()实现了任意函数到[0,1]的映射,这样无论数据集多大,都可以映射到01区间进行分类,而我们通过这种回归方法得到的输出就是分类为1的概率。
对于这种回归方法,最重要的就是求定这个参数向量 θ \theta θ。
代价函数:
怎么求解这个参数向量呢?我记得参数估计这本书中讲了很多对于参数向量的求解,感兴趣的人可以去看一下,如果我没有记错的话可以有皮尔森、最大似然、贝叶斯风险、最大最小准则等等,我们这里其实就是从代价函数开始考虑的,给定一下函数大家理解一下:
C o s t ( h θ ( x ) , y ) = h θ ( x ) y ( 1 − h θ ( x ) 1 − y ) Cost(h_\theta(x),y)=h_\theta(x)^y(1-h_\theta(x)^{1-y}) Cost(hθ(x),y)=hθ(x)y(1−hθ(x)1−y)
对于这个函数我们称之为代价函数,当y=1时,右式子的第二项为1,这时函数表示我们分类得到为1的概率;而当y=0时,右式子的第一项为1,这时表示我们分类得到为0的概率,也就是说我们的输入分类是什么,我们就得到它对应的概率,基于这个基础,综合起来我们就是为了在给定样本情况下,让这个函数越大,我们的拟合越准确,这时我们的问题就是怎么让上面的代价式子取到最大值,如果你熟悉最大似然,那么就容易了,对上式子取对数,然后求让函数最大值的参数变量,经过对数变化之后:
J ( θ ) = ∑ 1 m [ y ( i ) l o g ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] J(\theta)=\sum_1^m[y^{(i)}log(h_\theta(x^{(i)}))+(1-y^{(i)})log(1-h_\theta(x^{(i)}))] J(θ)=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x