吴恩达机器学习笔记(二)
标签: 机器学习
一.逻辑回归(logistic regression)
1.逻辑函数&&S型函数(logistic function and sigmoid function)
线性回归的假设表达式不试用于仅有0,1两种结果的分类表达,将表达式简单修改为逻辑函数也叫S型函数如下:
该函数的函数图像如下
在预测时输入x变量所得的g(z)即结果为1的概率值
2.决策边界(decision boundary)
在S型函数中若y大于0.5边界则x必定大于0,于是:
所以可以推出以下 结论!
3.代价函数(cost function)
分类问题的代价函数与回归问题的代价函数有一定的区别如下:
当y=1时函数图像如下
当y=0时函数图像如下
4.代价函数的简化(Simplified Cost Function)
Cost(hθ(x),y)
可以写作:
从而得到简化的代价函数:
将其表达为矢量表达为:
5.梯度下降(Gradient Descent)
将其代价函数应用到梯度下降算法中为:
矢量化表达为:
6.更快的优化算法
“Conjugate gradient”, “BFGS”, and “L-BFGS”
这些算法都不需要手动选择学习速率,并且比梯度下降速度更高效,但是也更复杂。
使用方法:
1.先计算出J值与梯度值
J(θ)与∂∂θjJ(θ)
2.写一个代价函数返回J值与梯度值:
function [jVal, gradient] = costFunction(theta)
jVal = [...code to compute J(theta)...];
gradient = [...code to compute derivative of J(theta)...];
end
3.使用fminunc()优化算法 (无约束非线性规划函数)
options = optimset('GradObj', 'on', 'MaxIter', 100); %100表示迭代次数
initialTheta = zeros(2,1);
[optTheta, functionVal, exitFlag] = fminunc(@costFunction, initialTheta, options);
%optTheta是最后迭代出的theta,functionVal是J的最小值exitFlag返回是否收敛
7.多元分类问题
将n元问题分成n个二元问题,然后在对这个二元问题进行预测
二.过拟合(Overfitting)
1.基本概念
左边第一副图称作欠拟合(underfitting), 特征太少导致并没有很好的拟合数据,cost function非常大
中间一幅图拟合的很好
而右边一幅图称作过拟合(overfitting),特征太多导致过分的拟合,cost function虽然非常小但是不符合实际情况
解决过度拟合问题有两种方法:
1.减少特征数量
- 手动选择哪些特征需要保留
- 使用一个模型选择算法
2.使用正则化
- 保留所有的特征,减少参数 θ 的数量
- 当有很多有用的特征时使用的很好
2.正则化的代价函数(cost function)
将前面的代价函数加上一个惩罚(penalize)使之尽量少的增加变量,添加后的代价函数如下:
λ 是一个 正则化参数(regularization parameter),决定了惩罚的大小
通过正则化可以使假设函数更加平滑并且减少过拟合,但是如果 λ 太大则会出现欠拟合。
3.正规化的线性回归(Regularized Linear Regression)
1.修改梯度下降方程、
注:将 θ0 与 θi 分开因为我们一般不惩罚 θ0
θi 可以写做:
2.正则方程
注:L是(n+1)*(n+1)维的
4.正则化的逻辑回归(Regularized Logistic Regression)
加上正则化的代价函数如下:
然后通过梯度下降不断更新 θi 获得代价函数。
3.总结重要的几个式子
1.逻辑回归的代价函数的矢量表达:
2.逻辑回归梯度下降的矢量表达:
3..正则方程
注:L是(n+1)*(n+1)维的
另外找到了plot函数画点形状的命令