Coursera_机器学习_week3_逻辑回归

52nlp的笔记,我的笔记中主要讨论偏微分方程的推导

分类算法 逻辑回归

分类问题的y取值是在一定范围
y = {0,1}或者y={0,1,2,3}
这种情况下线性回归方程并不适用,这时候可以采用逻辑回归算法

逻辑回归Logistic Regression

hθ(X)=g(ΘTX)=11+eθTX

这样就使得 0hθ(x)1 ,这里 hθ(X) 的定义是
hθ(X)=P(y=1|x,θ)

也就是,对给定的x, θ ,y=1的概率

决策边界Decision Boundary

如果我们假定阈值为0.5 ,也即
hθ(X)0.5 时,y=1;
hθ(X)0.5 时,y=0;
那么 hθ(X)=0.5 ,也即 ΘTX=0 是决策边界。

代价函数 Cost Function

对于逻辑回归问题,我们选择对数损失函数/对数似然损失函数作为代价函数,这样的代价函数是凸函数,有global optimum 而不是很多个local optimum

Cost(hθ(x),y)={log(hθ(x))log(1hθ(x))if y=1if y=0

简化的代价函数

总代价函数为

J(Θ)=1mi=1mCost(hθ(x(i)),y(i))

将代价函数合并成一个函数
Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))

这其实就是最大似然函数的形式
从而总的代价函数可以表示为
J(Θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]

梯度下降算法

minθJ(Θ):
Repeat{
Θj:=ΘjαθjJ(Θ)
(simutaneously undate all θj )
}
其中

θjJ(Θ)=1mi=1m(hθ(x(i))y(i))x(i)j

推导过程需要用到:
y=logx , yx=1x
y=expx i.e. ex , yx=expx
limx+(1+1x)x=e
(f(x)g(x))=f(x)g(x)f(x)g(x)g(x)2
以及倒数的定义
Δy=f(x0+Δx)f(x0)
ΔyΔx=f(x0+Δx)f(x0)Δx
f(x0)=limΔx0ΔyΔx
推导过程:
J(Θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]

=1m[i=1my(i)loghθ(x(i))1hθ(x(i))+log(1hθ(x(i)))]

hθ(X)=11+eθTX 代入,得到
J(Θ)=1m[i=1my(i)ΘTx(i)+log(eΘTx(i)1+eΘTx(i))]

那么

θjJ(Θ)=1m[i=1my(i)x(i)j+1+eΘTx(i)eΘTx(i)eΘTx(i)(x(i)j)(1+eΘTx(i))eΘTx(i)(x(i)j)(eΘTx(i))(1+eΘTx(i))2]

=1m[i=1my(i)x(i)j+(x(i)j)(1+eΘTx(i))(x(i)j)(eΘTx(i))1+eΘTx(i)]

=1mi=1m(hθ(x(i))y(i))x(i)j

调用 fminunc()函数

不用再编写循环和设置步长了,一个函数搞定

fminunc

过拟合Overfitting

特征太多,拟合的太好,代价函数几乎为0,但预测结果并不好
过拟合发生时,我们需要
1)降低特征个数(手动/通过算法),代价是失去了部分信息
2)正规化:保留所有特征,但减少 θj 的大小,这样就保留了所有的特征

正规化 Regularization

使用数值小的参数,得到“简化”的h函数,降低过拟合的倾向性

线性回归的正规化

J(Θ)=12m[i=1m(hθ(x(i)y(i))2+λj=1nθ2j]

注意, θ0 单列出来,不在惩罚范围内
λ 为正规化参数,如果 λ 过大,则可能导致underfitting

assignment

plot样本数据的时候用到了find

% Find Indices of Positive and Negative Examples
pos = find(y==1); neg = find(y == 0);
% Plot Examples
plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, ...
     'MarkerSize', 7);
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y', ...
     'MarkerSize', 7);

求解过程用到的函数其实也没怎么搞明白

%  Set options for fminunc
options = optimset('GradObj', 'on', 'MaxIter', 400);
%  Run fminunc to obtain the optimal theta
%  This function will return theta and the cost
[theta, cost] = ...
fminunc(@(t)(costFunction(t, X, y)), initial theta, options);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值