机器学习(2)-分类问题_Classification and Representation
2017-05-13 22:16
225 查看
分类问题
1、分类问题简介
(1)例子
诸如-垃圾邮件分类
-在线交易是否是诈骗
-肿瘤良性恶性判断
y∈{0,1}
其中
1 叫做正类用+表述
0 叫做负类用-表述
(2)不能使用线性回归算法
若运用线性回归算法,需要:1、拟合数据
2、找到 h(x) = 0.5 的分界点
缺陷:
1、对于不规整的数据会出现极大的误差
2、线性回归h(x)会出现0~1之外的情况,但是逻辑回归h(x)的取值只会在0~1之间
2、逻辑回归模型_Logistic Regression Model
(1)假设函数
hθ(x)=g(θTx)g(z)=11+e−z其中,
g(z)称之为逻辑函数或者sigmoid(S形)函数
化简得:hθ(x)=11+e−θTx
假设函数含义:
hθ(x) 表示在x和Θ的情况下得出1的概率
(2)决策边界
假设函数hθ(x)=g(z)g(z)=11+e−zz为我们设定的决策边界方程
为了得到离散0或1分类,可以将假设函数的输出转换如下:
hθ(x)≥0.5→y=1hθ(x)<0.5→y=0
逻辑函数g的行为方式是当其输入大于或等于零时,其输出大于或等于0.5
g(z)≥0.5whenz≥0
如果我们设定的z方程为θTX这就意味着
θTx≥0⇒y=1θTx<0⇒y=0
绘制出图形z方程就是决策边界
(3)逻辑回归的代价函数
我们不能使用与线性回归相同的成本函数,因为逻辑函数会导致输出为波浪形,导致许多局部最优。换句话说,它不会是一个凸函数。相反,我们用于逻辑回归的成本函数如下所示:
J(θ)=1m∑i=1mCost(hθ(x(i)),y(i))Cost(hθ(x),y)=−log(hθ(x))Cost(hθ(x),y)=−log(1−hθ(x))if y = 1if y = 0
(4)逻辑回归的梯度下降函数
1、化简代价函数
Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))带入得:
J(θ)=−1m∑i=1m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
向量化后为
h=g(Xθ)J(θ)=1m⋅(−yTlog(h)−(1−y)Tlog(1−h))
2、实现梯度下降
梯度下降的一般形式Repeat{θj:=θj−α∂∂θjJ(θ)}
使用微积分带入化简
Repeat{θj:=θj−αm∑i=1m(hθ(x(i))−y(i))x(i)j}
请注意,该算法与我们在线性回归中使用的算法相同。我们还必须同时更新theta中的所有值。
向量化后
θ:=θ−αmXT(g(Xθ)−y⃗ )
(5)高级算法(代替梯度下降)
1、其他可以求回归问题的算法
给出以下的实现-求出J(θ)
-求出J(θ)的偏导数J(θ)∂∂θjJ(θ)
优化算法
-Gradient descent(梯度下降法)
-Conjugate gredient(共轭梯度法)
-BFGS(变尺度法)
-L-BFGS(限制变尺度法)
高级算法有着优点和缺点,例如,
-优点是1,不需要选择学习度α;以及2,比梯度下降更快
-而确实就是相对更复杂
在octive中使用
例子有代价函数 J(θ)=(θ1−5)2+(θ2−5)2
明显要得到两个5,
实现
可以编写一个返回这两个返回值的函数:
function [jVal, gradient] = costFuntion(theta) jVal = (theta(1)-5)^2 + (theta(2)-5)^2; gradient = zeros(2,1); gradient(1) = 2*(theta(1)-5); gradient(2) = 2*(theta(2)-5);
调用
% 配置选项 % GradObj:设置梯度目标参数打开,你写的函数要提供一个梯度的值 % MaxIter:设置最大的迭代次数 options = optimset('GradObj','on', 'MaxIter', '100'); initTheta = zersos(2,1); %初始化theta的值 % 参数说明 % @costFunction函数指针 % initTheta初始化值 % options配置选项 % 返回值说明 % optTheta:theta最优解 % functionVal:此时代价函数的解 % exitFlag:1代表结果已经收敛 [optTheta, functionVal, exitFlag] = fminunc(@costFunction,initTheta,options);
其中initTheta必须是2维以上的向量
(6)多分类问题
当有两个以上的类别时,将接近数据分类。而不是y = {0,1},我们将扩展定义,使得y = {0,1 … n}。由于y = {0,1 … n},我们将问题划分为n + 1(+1,因为索引从0开始)二分类问题;在每个类中,我们预测“y”是我们其中一个类的成员的概率。
y∈{0,1...n}h(0)θ(x)=P(y=0|x;θ)h(1)θ(x)=P(y=1|x;θ)⋯h(n)θ(x)=P(y=n|x;θ)prediction=maxi(h(i)θ(x))
即
将多分类转化为2分类问题,
对于h(0)θ,将y=0映射为正类,其他映射为负类。运行二分类问题的算法得到的假设函数即为h(0)θ
对于新输入,max(maxi(h(i)θ(x)))时i的值就是该输入的分类结果
3、过度拟合问题
1、拟合的一些概念
-欠拟合、高偏差:模型不能很好的拟合数据-过度拟合、高方差:训练的假设函数参数过多,如果没有足够的训练数据,来约束参数,输出参数总能很好的拟合数据,代价函数非常接近于0,输出的模型不是泛化的,不能正确的对新数据产生正确的输出
-恰好拟合:可以很好拟合数据,输出模型是泛化的可以很好的进行预测
2、过度拟合解决方法
选择尽量少的特征变量数(舍弃了一些信息)人工选择特征
模型选择算法
正规化
保留所有特征,减少参数θj大小
当我们有很多有用的特征时,正则化效果很好。
3、正规化与代价函数
如果我们从假设函数中过度拟合,我们可以通过增加代价函数的项,来减少我们函数中的一些参数的权重改变我们的代价函数为:
minθ 12m ∑i=1m(hθ(x(i))−y(i))2+λ ∑j=1nθ2j
其中λ是正则化参数,它决定了我们的θ参数的成本是多少。
使用上述成本函数与额外的求和,我们可以平滑我们的假设函数的输出,以减少过拟合。如果选择λ太大,可能会使过于平滑,导致欠拟合。如果λ= 0,或者太小,将可能发生过度拟合
4、正规化线性回归
(1)梯度下降法我们将修改梯度下降函数,将θ0与其余参数分开,因为我们不想惩罚θ0。
Repeat {θ0:=θ0−α 1m ∑i=1m(hθ(x(i))−y(i))x(i)0θj:=θj−α [(1m ∑i=1m(hθ(x(i))−y(i))x(i)j)+λmθj]}j∈{1,2...n}
变形后:
θj:=θj(1−αλm)−α1m∑i=1m(hθ(x(i))−y(i))x(i)j
上述方程式的第一项,1−αλm将始终小于1。直观地,您可以看到它在每次更新时将θj的值减少一些。
另外,第二项现在与以前完全相同。
(2)正规方程法
θ=(XTX+λ⋅L)−1XTywhere L=⎡⎣⎢⎢⎢⎢⎢⎢⎢011⋱1⎤⎦⎥⎥⎥⎥⎥⎥⎥
正规化不仅可以避免过渡拟合,还可以避免出现不可逆的情况。
回想一下,如果m小于n,那么XTX将不可逆。但是现在加上了λ⋅L,XTX+λL变得可逆。
5、正规化逻辑回归
我们可以使用与正规化线性回归相似的方法对逻辑回归正规化,来避免过渡拟合。(1)代价函数
回想一下,我们的逻辑回归的成本函数是:
J(θ)=−1m∑i=1m[y(i) log(hθ(x(i)))+(1−y(i)) log(1−hθ(x(i)))]
现在可以通过在末尾添加一项来正规化这个方程:
J(θ)=−1m∑i=1m[y(i) log(hθ(x(i)))+(1−y(i)) log(1−hθ(x(i)))]+λ2m∑j=1nθ2j
第二个求和项,∑nj=1θ2j明确的排除偏差项θ0。θ矢量从0到n(保持n + 1个值,θ0到θn),这个和通过从1到n跳过0来明确地跳过θ0。因此,当计算公式时,我们应该连续更新两个方程
(2)梯度下降
和线性回归形式上相类似
Repeat {θ0:=θ0−α 1m ∑i=1m(hθ(x(i))−y(i))x(i)0θj:=θj−α [(1m ∑i=1m(hθ(x(i))−y(i))x(i)j)+λmθj]}j∈{1,2...n}
相关文章推荐
- (三)Multi-class Classification and Neural Networks[多分类问题和神经网络]
- [机器学习笔记]二:Classification and logistic regression(分类和逻辑回归)
- 机器学习2——分类和逻辑回归Classification and logistic regression(牛顿法待研究)
- 机器学习中的回归(regression)与分类(classification)问题
- Stanford 机器学习笔记 Week3 Classification and Representation
- 机器学习 非均衡分类问题
- 机器学习中的非均衡分类问题
- 【机器学习基础】机器学习算法的分类——关于如何选择机器学习算法和适用解决的问题
- 【01】台大机器学习L3 机器学习分类问题
- 分类回归树-classification and regression tree-CART
- 机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)
- 分类和回归 Classification and Regression
- [机器学习]逻辑回归,Logistic regression |分类,Classification
- Coursera机器学习(Andrew Ng)笔记:回归与分类问题
- 机器学习算法笔记1_2:分类和逻辑回归(Classification and Logistic regression)
- 机器学习基础(五十三)—— 精确率与召回率(多分类问题精确率和召回率的计算)
- Stanford机器学习课程(Andrew Ng) Week 1 Model and Cost Function --- 第一节 Model representation
- Robust Visual Tracking and Vehicle Classification via Sparse Representation 阅读小结
- 【分享】SLR Toolbox for Classification Problems(用于分类问题的SLR工具包)
- 【机器学习基础】将回归模型用于分类问题