1.线性回归(linear regression)
(1)引言
机器学习解决的问题可以分为分类问题(Classification)和回归(regression)问题两种,前者是离散值输出,而后者是预测值输出。这里先从回归问题引入,而线性回归(linear regression)则表示输入值与输出值之间存在线性关系。
(2)预测函数
- z=H(x)=θ0x0+θ1x1+θ2x2+...+θnxn(x0=1,在说明输入向量维数时并没有考虑x0)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)=12mΣi=1m(H(xi)−yi)2J(X,Y)=\frac{1}{2m}\Sigma_{i=1}^m(H(x^i)-y^i)^2J(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α:学习率
正规方程算法
-
θ=(XTX)−1XTY(这里的X采用了x0i=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)=11+e−θxz=H(x)=\frac{1}{1+e^{-\theta x}}z=H(x)=1+e−θx1
(3)代价函数
J(θ)=−1m(Σi=1m(yilog(zi)+(1−yi)log(1−zi)))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)))