机器学习之逻辑回归算法解决分类问题
吴恩达老师的coursera课程翻译版:https://www.bilibili.com/video/BV164411b7dx?p=5
参考github上大佬python实现算法的笔记:https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes
很经典的课程啦,这个翻译还可以,有不清楚的直接看英文。网上笔记很多,我也记录一下,记得牢固一点。
一、分类
- 二值分类问题:预测变量的值只有0或者1
- 多分类问题:预测变量值0,1,2,3……
【注】:线性回归并不适用于分类问题,分类问题的回归函数值域应在0和1之间。
二、假设函数
-
逻辑回归模型的假设函数需要的区间: 0 ⩽ h θ ( x ) ⩽ 1 0\leqslant h_\theta(x)\leqslant 1 0⩽hθ(x)⩽1
-
参考线性回归:
h θ ( x ) = g ( θ T x ) s i g m o i d 函 数 : g ( z ) = 1 1 + e − z h_\theta(x)=g(\theta^Tx)\\sigmoid函数:g(z)=\frac{1}{1+e^{-z}} hθ(x)=g(θTx)sigmoid函数:g(z)=1+e−z1
-
模型解释:
当输入x时, h θ ( x ) h_\theta(x) hθ(x)为预测的y分类为1的概率
数学表示: h θ ( x ) = P ( y = 1 ∣ x ; θ ) h_\theta(x)=P(y=1|x;\theta) hθ(x)=P(y=1∣x;θ)
三、假设函数的属性:决策边界
解决算法何时将y预测为1,何时预测为0的问题。
-
直观的: h θ ( x ) h_\theta(x) hθ(x)以0.5位分界线,大于0.5分类为1,小于0.5分类为0
-
隐含的: z = θ T x ≥ 0 z=\theta^Tx\ge0 z=θTx≥0
【注】:当我们有确定的 θ \theta θ值时,我们就有完全确定的决策边界。
非线性决策边界:
四、代价函数:
我们希望代价函数式一个凸函数,这样能适用于梯度下降,更好的的找到局部最小值
-
定义:
KaTeX parse error: Unknown column alignment: 1 at position 44: … \begin{array}{1̲1} -log(h_\thet… -
理解:
五、简化代价函数与梯度下降
-
代价函数:(原理来自最大似然估计)
J ( θ ) = − 1 m ∑ i = 1 m y ( i ) l o g ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) J(\theta)=-\frac{1}{m}\sum_{i=1}^{m}y^{(i)}log(h_\theta(x^{(i)}))+(1-y^{(i)})log(1-h_\theta(x^{(i)})) J(θ)=−m1i=1∑my(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i))) -
梯度下降:
【注】:线性回归的特征缩放在此同样适用
六、高级优化算法
梯度下降并不是我们可以使用的唯一的优化算法,有一些更高级的优化算法可以加速算法运行,使逻辑回归算法能更好的应用于大型数据集。
通常调用库函数选用哪个要多尝试
七、多元分类
分别训练好后,输入新的x选出三个分类器里预测值最大的那个