1.线性回归(linear regression)
(1)引言
机器学习解决的问题可以分为分类问题(Classification)和回归(regression)问题两种,前者是离散值输出,而后者是预测值输出。这里先从回归问题引入,而线性回归(linear regression)则表示输入值与输出值之间存在线性关系。
(2)预测函数
- z = H ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n ( x 0 = 1 , 在 说 明 输 入 向 量 维 数 时 并 没 有 考 虑 x 0 ) z=H(x)=\theta_0x_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n(x_0=1,在说明输入向量维数时并没有考虑x_0) z=H(x)=θ0x0+θ1x1+θ2x2+...+θnxn(x0=1,在说明输入向量维数时并没有考虑x0)
- θ = ( θ 0 , θ 1 , θ 2 , . . . , θ n ) \theta=(\theta_0,\theta_1,\theta_2,...,\theta_n) θ=(θ0,θ1,θ2,...,θn)表示机器学习系统中的参数向量
- 预测函数根据输入“设定的参数向量是“预测样本输入的对应输出,线性回归中适用样本集(X,Y)存在线性关系。
(3)代价函数
-
J ( X , Y ) = 1 2 m Σ i = 1 m ( H ( x i ) − y i ) 2 J(X,Y)=\frac{1}{2m}\Sigma_{i=1}^m(H(x^i)-y^i)^2 J(X,Y)=2m1Σi=1m(H(xi)−yi)2
-
代价函数会统计预测输出集合与真实输出集合间的偏差,实际上这里列出的代价函数只是一种基础的统计方法。
(4)参数向量调整
根据代价函数的结果可以评估当前参数向量的效果,而如何调整参数向量主要有梯度下降算法和正规方程算法。
梯度下降算法
- θ j = θ j − α ρ J ( X , Y ) ρ θ j ( j = 0 , 1 , 2... n ) \theta_j=\theta_j - \alpha\frac{\rho J(X,Y)}{\rho \theta_j}(j=0,1,2...n) θj=θj−αρθjρJ(X,Y)(j=0,1,2...n)
- α \alpha α:学习率
正规方程算法
-
θ = ( X T X ) − 1 X T Y ( 这 里 的 X 采 用 了 x 0 i = 1 ) \theta=(X^TX)^{-1}X^TY(这里的X采用了x^i_0=1) θ=(XTX)−1XTY(这里的X采用了x0i=1)
-
当矩阵X不可逆
- 解决方法:使用伪逆。
- 调试方法:检查特征量之间是否线性相关;考虑数据集是否过小。
2.逻辑回归(logistic regression)
(1)引言
逻辑回归实际上是一种分类算法,假设输出变量服从设定的分布,根据预测值估计分类的可能性。
(2)预测函数
z = H ( x ) = 1 1 + e − θ x z=H(x)=\frac{1}{1+e^{-\theta x}} z=H(x)=1+e−θx1
(3)代价函数
J ( θ ) = − 1 m ( Σ i = 1 m ( y i log ( z i ) + ( 1 − y i ) l o g ( 1 − z i ) ) ) J(\theta)=-\frac{1}{m}(\Sigma_{i=1}^m(y^i\log(z^i)+(1-y^i)log(1-z^i))) J(θ)=−m1(Σi=1m(yilog(zi)+(1−yi)log(1−zi)))