吴恩达 机器学习 (逻辑回归)

第六章: 逻辑回归

假说表示

逻辑回归,该模型的输出变量范围始终在0和1之间。 逻辑回归模型的假设是:h_{\theta } = g\left ( \theta ^{T}X \right )  其中:  X代表特征向量  g代表逻辑函数(logistic function)是一个常用的逻辑函数为S形函数(Sigmoid function),公式为: g\left ( z \right ) = \frac{1}{1+e^{-z}}

g(z)的图像为(该函数的值域与定义域非常适合逻辑(1,0)和概率的判断):

h_{\theta }(x)的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1的可能性(estimated probablity)即 h_{\theta } = P(y=1|x;\theta )

代价函数

代价函数需要是一个凸函数

如果是非凸函数,这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。

Cost(h_{\theta }(x),y)的理解,当y=1时, 如果h_{\theta }(x)的值与1越接近,代价越小,与0越近代价越大.

梯度下降算法

高级优化

即调用Octave内置算法来最小化代价函数,从而得出最佳theta.

调用内置函数需要自己定义一个代价函数,该函数的第一个返回值是代价函数的计算值,函数返回的第二个值是梯度值.

function [J, grad] = costFunction(theta, X, y)

m = length(y); % number of training examples

J = 0;
grad = zeros(size(theta));

J = -1*sum(y.*log(sigmoid(X*theta)) + (1-y).*log((1-sigmoid(X*theta))))/m

grad = 1/m*((sigmoid(X*theta)-y)'*X)';

end

调用代码

options = optimset('GradObj', 'on', 'MaxIter', 400);
initial_theta = zeros(n + 1, 1);

[theta, cost] = fminunc(@(t)(costFunction(t, X, y)), initial_theta, options);

这个 options 变量作为一个数据结构可以存储你想要的options,所以 GradObj 和On,这里设置梯度目标参数为打开(on),这意味着你现在确实要给这个算法提供一个梯度,然后设置最大迭代次数.

优点:

不需要手动选择学习率 ,它可以自动尝试不同的学习速率 ,并自动选择一个好的学习速率 ,因此它甚至可以为每次迭代选择不同的学习速率,那么你就不需要自己选择。这些算法实际上在做更复杂的事情,不仅仅是选择一个好的学习速率,所以它们往往最终比梯度下降收敛得快多了。

多类别分类: 一对多

有多少类分解为多少个逻辑回归,并得到多个h_{\theta }^{(i) }(x),最终取最大值,即max(h_{\theta }^{(i) }(x))

第七章: 正则化

欠拟合和过拟合

正则化线性回归

思想: 用\lambda*\theta _{j}^{2}来增加代价函数,即惩罚\theta _{j}对应项,缩小对应项的影响

代价函数

梯度下降

正规方程也同样适用

正则化逻辑回归

theta(0)不参与

代价函数

梯度下降

要分开讨论(theta(0)不需要正则化,即不需要缩小theta(0)对应的项的影响)

注:看上去同线性回归一样,但是知道h_{\theta } = g\left ( \theta ^{T}X \right ) ,所以与线性回归不同。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值