分类问题
- 分类问题满足二元判断,根据计算机二进制原理,只有0,1两种情况,比如有/无,对/错,是/否等
- 分类问题需要设定阈值,高于/低于阈值对应二元分类问题的两种情况
由于线性回归曲线容易收到异常值的影响而导致同一阈值产生较大的偏差(曲率改变),因此不适合用于分类问题
假设方程
既然线性回归不合适,我们需要构建新的假设方程来解决分类问题,即逻辑方程,故称逻辑回归:
g(z)=1+e−z1
其中应用于机器学习时:
假设方程:hθ(x)=g(θTx)其中:z=θTx

逻辑方程曲线分布在0,1范围内,实现了数据规模的统一,且直观地表现了概率,其表达式满足:
hθ(x)=P(y=1∣x;θ)=1−P(y=0∣x;θ)P(y=0∣x;θ)+P(y=1∣x;θ)=1
决策边界
- 选定阈值,如threshold = 0.5则:
hθ(x)≥0.5→y=1hθ(x)<0.5→y=0则此时:θTx≥0⇒y=1θTx<0⇒y=0
- 求解θTx=0.5(threshold),其解即为决策边界,在图形上表示为一条分离数据集的曲线,其两侧则为分类后不同类的数据集
逻辑回归模型
代价函数
我们不能套用线性回归的回归方程计算,事实上,我们需要采用一套99新的算法:
J(θ)=m1i=1∑mCost(hθ(x(i)),y(i))Cost(hθ(x),y)=−log(hθ(x))if y = 1Cost(hθ(x),y)=−log(1−hθ(x))if y = 0
- 当分类结果y=1时:

假设方程输出1,代价方程结果为0
假设方程输出0,代价方程逼近无限
- 当分类结果y=0时:

假设方程输出0,代价方程结果为0
假设方程输出1,代价方程逼近无限
不考虑分类情况,我们可以对代价函数用一个公式统一表示:
J(θ)=−m1i=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
矢量表达式即为:
h=g(Xθ)J(θ)=m1⋅(−yTlog(h)−(1−y)Tlog(1−h))
梯度下降
原理相同:Repeat{θj:=θj−α∂θj∂J(θ)}
求偏导项:Repeat{θj:=θj−mαi=1∑m(hθ(x(i))−y(i))xj(i)}
矢量化:θ:=θ−mαXT(g(Xθ)−y)
高级优化
参数优化方法
- 梯度下降(Gradient Descent)
- 共轭梯度下降(Conjugate Gradient)
- BFGS(Broyden–Fletcher–Goldfarb–Shanno)
- L-BFGS(Limited-memory BFGS)
梯度下降不是唯一的优化参数的方法
算法实践
高级优化太高级了,非专业人士不建议自己写算法,寻找其它已经存在的算法库进行计算更加现实,如在Octave中:

照本宣科,注意fminunc为高级优化算法,参数@costFunction为计算代价函数的回调方法
多类分类
当分类问题输出结果y的类型>2,我们称此为多类分类问题,此时,采取计算机传统的二元判断已经无法满足需求
一对多模型
专业解决多类分类问题一百年

- 通过训练集(一直分类),为每个类都建立一个逻辑回归分类模型,和其它模型进行区分,即回到了二元判断模型,有n类就要建立n个模型
- 为每一个样本,计算出它的概率值(逻辑方程的解,不是代价函数值)
- 选择概率最高的分类,将样本归于此类,重复此步直到分类完成
过拟合
什么是过拟合

正则化原理

代价函数公式:
minθ2m1i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2
-
λ∑j=1nθj2为正则项,正则项不包括θ0
- 其中lambda是一个较大值,如1000,此时进行梯度下降时,要使代价函数值小,相应的特征值就要小,从而能够避免高方差,实现惩罚(penalize)
惩罚究竟使如何实现的呢?答案就在于求偏导。对代价函数求偏导后,θ在梯度下降时就会多减一个值,从而实现惩罚
- lambda过大,曲线接近于直线,欠拟合高偏差
- lambda过小,反作用
正则化线性回归
梯度下降
Repeat { θ0:=θ0−α m1 ∑i=1m(hθ(x(i))−y(i))x0(i) θj:=θj−α [(m1 ∑i=1m(hθ(x(i))−y(i))xj(i))+mλθj] j∈{1,2...n}}
与正则化代价函数相同,θ0也不包括在正则化范围内,换言之,θ0不受正则化影响
对θj项简单处理:
θj:=θj(1−αmλ)−αm1i=1∑m(hθ(x(i))−y(i))xj(i)
其中(1−αmλ)项<1,使得θj不断减小,实现惩罚
正态方程
同样将λ引入正态方程
θ=(XTX+λ⋅L)−1XTywhere L=[011⋱1]
数组中的值都排列在在对角线上,显示不出来
- L为(n+1)×(n+1)矩阵,n为样本特征量
- m < n, XTX不可逆,加上λ.L后就可逆了
- m > n, XTX可逆
正则化逻辑回归
正则化代价函数

同样排除θ0项,正则项也是相同的
正则化梯度下降

除公式外的原理相同,多减去的正则项也相同,没什么好多说的