机器学习算法1_标准方程法

机器学习算法第一篇

主要内容:多项式回归之标准方程法算法展开

通俗的讲:

算法目的:

  • 求通过训练集计算出一个最合适的线\面\超平面hθ(x)h_\theta(x)hθ(x),使所有点到它的距离(误差)之和最小,
    将测试的特征向量带入该hθ(x)h_\theta(x)hθ(x)所得的值即为预测值

步骤:

  1. 设一个目标函数(线\面\超平面) hθ(x)=θ1xi(1)+θ2xi(2)+...+θnxi(n)h_\theta(x) = \theta_1x_i^{(1)}+\theta_2x_i^{(2)} +...+\theta_nx_i^{(n)}hθ(x)=θ1xi(1)+θ2xi(2)+...+θnxi(n) ,一个n维特征带入后可得到预测值y^i\hat y_iy^i

  2. 设一个损失函数J(θ1,θ2...θn)=12m∑i=1m(y^i−yi)2J(\theta_1,\theta_2...\theta_n)=\frac{1}{2m}\sum_{i=1}^m (\hat y_i-y_i)^2J(θ1,θ2...θn)=2m1i=1m(y^iyi)2,它表示所有点预测值y^i\hat y_iy^i到真实值y之间的误差的平方和的平均,数学上可以代表目标函数的好坏,即拟合度的高低

  3. 所以我们目标可以理解为在学习阶段:求合适的(θ1,θ2...θn)(\theta_1,\theta_2...\theta_n)(θ1,θ2...θn)使损失函数最小

  4. 带入训练集数据,通过梯度下降法或标准方程法解出最合适的(θ1,θ2...θn)(\theta_1,\theta_2...\theta_n)(θ1,θ2...θn),然后带入线\面\超平面函数 hθ(x)=θ1xi(1)+θ2xi(2)+...+θnxi(n)h_\theta(x) = \theta_1x_i^{(1)}+\theta_2x_i^{(2)} +...+\theta_nx_i^{(n)}hθ(x)=θ1xi(1)+θ2xi(2)+...+θnxi(n) 得到目标函数(回归函数)

  5. 把需要测试的数据输入该回归函数,可得到预测值(也可测试回归函数的拟合度,即参数的好坏)

展开来说:
  1. 有训练集T={(x1,y1),(x2,y2),(x3,y3)...(xm,ym)}由P(X,Y)独立同分布产生T=\{(x_1,y_1),(x_2,y_2),(x_3,y_3)...(x_m,y_m) \}由P(X,Y)独立同分布产生T={(x1,y1),(x2,y2),(x3,y3)...(xm,ym)}P(X,Y)
    T:[x1(1)x1(2)...x1(n)y1x2(1)x2(2)...x2(n)y2x3(1)x3(2)...x3(n)y3..............xm(1)xm(2)...xm(n)ym] T:\begin{bmatrix} x_1^{(1)} & x_1^{(2)} \quad ...&x_1^{(n)}& y_1 \\ x_2^{(1)} & x_2^{(2)} \quad...&x_2^{(n)}& y_2\\ x_3^{(1)} & x_3^{(2)} \quad...&x_3^{(n)}& y_3 \\ . & . \quad...& .& . \\ . & . \quad...& .& . \\ x_m^{(1)} & x_m^{(2)} \quad...&x_m^{(n)}& y_m \\ \end{bmatrix}T:x1(1)x2(1)x3(1)..xm(1)x1(2)...x2(2)...x3(2)...........xm(2)...x1(n)x2(n)x3(n)..xm(n)y1y2y3..ym

  2. 输入空间X⊊R∗\mathscr {X}\subsetneq R^*XR为n维向量的集合

  3. 输出空间为标记集合Y=R\mathscr{Y}=RY=R,为全体实数标量集合

  4. 输入为特征向量xi(xi(1),xi(2)...xi(n))∈Xx_i(x_i^{(1)},x_i^{(2)}...x_i^{(n)})\in\mathscr {X}xi(xi(1),xi(2)...xi(n))X

  5. 输出为类标记y∈Yy\in\mathscr{Y}yY

  6. X是定义在输入空间X\mathscr {X}X上的随机向量

  7. Y是定义在输入空间Y\mathscr {Y}Y上的随机变量

  8. 设回归函数 hθ(x)=θ1xi(1)+θ2xi(2)+...+θnxi(n)h_\theta(x)=\theta_1x_i^{(1)}+\theta_2x_i^{(2)} +...+\theta_nx_i^{(n)}hθ(x)=θ1xi(1)+θ2xi(2)+...+θnxi(n)
    任意点Pi(xi(1),xi(2)...xi(n))P_i(x_i^{(1)},x_i^{(2)}...x_i^{(n)})Pi(xi(1),xi(2)...xi(n))带入该式可得到点PiP_iPi到预测值y^i\hat y_iy^i

  9. 带入多项式模型的损失函数J(θ1,θ2...θn)=12m∑i=1m(y^i−yi)2J(\theta_1,\theta_2...\theta_n)=\frac{1}{2m}\sum_{i=1}^m (\hat y_i-y_i)^2J(θ1,θ2...θn)=2m1i=1m(y^iyi)2

  10. (1)J(θ1,θ2...θn)=12m∑i=1m(hθ(x)−yi)2J(\theta_1,\theta_2...\theta_n)=\frac{1}{2m}\sum_{i=1}^m (h_\theta(x)-y_i)^2\tag 1J(θ1,θ2...θn)=2m1i=1m(hθ(x)yi)2(1)

  11. 在训练阶段, 代价函数的x 与y 都是已知量 θ\thetaθ为变量量
    因此算法目标等价于求损失函数J(θ1,θ2...θn)J(\theta_1,\theta_2...\theta_n)J(θ1,θ2...θn)的值取最小值时候的变量(θ1,θ2...θn)(\theta_1,\theta_2...\theta_n)(θ1,θ2...θn)

  12. 因为多项式模型的代价函数为凸函数,所以令其导数为0 可求出最合适的(θ1,θ2...θn)(\theta_1,\theta_2...\theta_n)(θ1,θ2...θn)

求导过程:

由于对损失函数J(θ1,θ2...θn)=12m∑i=1m(hθ(x)−yi)2J(\theta_1,\theta_2...\theta_n)=\frac{1}{2m}\sum_{i=1}^m (h_\theta(x)-y_i)^2J(θ1,θ2...θn)=2m1i=1m(hθ(x)yi)2的求导过程为较复杂.计算量较大庞大,
一般采用将式子转换矩阵,然后求解的方式

  1. 子式矩阵化
  • θ=[θ1θ2θ3..θm]\theta= \begin{bmatrix} \theta_1 \\ \theta_2\\ \theta_3 \\ . \\ . \\ \theta_m \\ \end{bmatrix}θ=θ1θ2θ3..θm

  • J(θ1,θ2...θn)⇒J(θ)J(\theta_1,\theta_2...\theta_n) \Rightarrow J(\theta)J(θ1,θ2...θn)J(θ)

  • yi⇒Y=y_data=[y1y2y3..ym]y_i\Rightarrow Y=y\_data=\begin{bmatrix} y_1 \\ y_2\\ y_3 \\ . \\ . \\ y_m \\ \end{bmatrix}yiY=y_data=y1y2y3..ym

  • xi⇒X=x_data=[x1(1)x1(2)...x1(n)x2(1)x2(2)...x2(n)x3(1)x3(2)...x3(n)............xm(1)xm(2)...xm(n)]x_i\Rightarrow X=x\_data=\begin{bmatrix} x_1^{(1)} & x_1^{(2)} \quad ...&x_1^{(n)} \\ x_2^{(1)} & x_2^{(2)} \quad...&x_2^{(n)}\\ x_3^{(1)} & x_3^{(2)} \quad...&x_3^{(n)} \\ . & . \quad...& . \\ . & . \quad...& . \\ x_m^{(1)} & x_m^{(2)} \quad...&x_m^{(n)} \\ \end{bmatrix}xiX=x_data=x1(1)x2(1)x3(1)..xm(1)x1(2)...x2(2)...x3(2)...........xm(2)...x1(n)x2(n)x3(n)..xm(n)

  • hθ(xi)⇒[hθ(x1)hθ(x2)hθ(x3)..hθ(xm)]=[θ1x1(1)+θ2x1(2)+...+θnx1(n)θ1x2(1)+θ2x22)+...+θnx2(n)θ1x3(1)+θ2x3(2)+...+θnx3(n)........θ1xm(1)+θ2xm(2)+...+θnxm(n)]=X⋅θh_\theta(x_i)\Rightarrow \begin{bmatrix} h_\theta (x_1) \\ h_\theta (x_2) \\ h_\theta (x_3 ) \\ . \\ . \\ h_\theta (x_m) \\ \end{bmatrix}=\begin{bmatrix} \theta_1x_1^{(1)}+\theta_2x_1^{(2)} +...+\theta_nx_1^{(n)}\\ \theta_1x_2^{(1)}+\theta_2x_2 ^{2)}+...+\theta_nx_2^{(n)}\\ \theta_1x_3^{(1)}+\theta_2x_3 ^{(2)}+...+\theta_nx_3^{(n)}\\ \quad... . \\ \quad... .\\ \theta_1x_m^{(1)}+\theta_2x_m^{(2)} +...+\theta_nx_m^{(n)}\\ \end{bmatrix}=X \cdot \thetahθ(xi)hθ(x1)hθ(x2)hθ(x3)..hθ(xm)=θ1x1(1)+θ2x1(2)+...+θnx1(n)θ1x2(1)+θ2x22)+...+θnx2(n)θ1x3(1)+θ2x3(2)+...+θnx3(n)........θ1xm(1)+θ2xm(2)+...+θnxm(n)=Xθ

  • ∂f∂θi⇒∇J(θ)=[∂f∂θ1∂f∂θ2∂f∂θ3..∂f∂θn]\frac{\partial f}{\partial\theta_i}\Rightarrow ∇J(\theta)=\begin{bmatrix} \frac{\partial f}{\partial\theta_1}\\ \frac{\partial f}{\partial\theta_2}\\ \frac{\partial f}{\partial\theta_3}\\ . \\ . \\ \frac{\partial f}{\partial\theta_n}\\ \end{bmatrix}θifJ(θ)=θ1fθ2fθ3f..θnf

正向转换

J(θ1,θ2...θn)=1m∑i=1m(hθ(xi)−yi)2J(\theta_1,\theta_2...\theta_n)=\frac{1}{m}\sum_{i=1}^m (h_\theta(x_i)-y_i)^2J(θ1,θ2...θn)=m1i=1m(hθ(xi)yi)2

⇒J(θ1,θ2...θn)=1m((hθ(x1)−y1)2+(hθ(x2)−y2)2+(hθ(x3)−y3)2...+(hθ(xm)−ym)2)\Rightarrow J(\theta_1,\theta_2...\theta_n)=\frac{1}{m} \left( \left( h_\theta(x_1)-y_1\right)^2 +\left( h_\theta(x_2)-y_2\right)^2+\left( h_\theta(x_3)-y_3\right)^2...+\left( h_\theta(x_m)-y_m\right)^2\right)J(θ1,θ2...θn)=m1((hθ(x1)y1)2+(hθ(x2)y2)2+(hθ(x3)y3)2...+(hθ(xm)ym)2)
 \  
套公式[abc]T[abv]=a2+b2+c2套公式\begin{bmatrix}a\\b\\c\end{bmatrix}^T \begin{bmatrix}a\\b\\v\end{bmatrix} =a^2+b^2+c^2abcTabv=a2+b2+c2

所以上上式可改为所以上上式可改为
⇒J(θ)=1m[hθ(x1)−y1hθ(x2)−y2hθ(x3−y3...hθ(xm)−ym]T[hθ(x1)−y1hθ(x2)−y2hθ(x3−y3...hθ(xm)−ym]\Rightarrow J(\theta)=\frac{1}{m}\begin{bmatrix} h_\theta(x_1)-y_1\\ h_\theta(x_2)-y_2\\ h_\theta(x_3-y_3\\ ...\\ h_\theta(x_m)-y_m\\ \end{bmatrix}^T\begin{bmatrix} h_\theta(x_1)-y_1\\ h_\theta(x_2)-y_2\\ h_\theta(x_3-y_3\\ ...\\ h_\theta(x_m)-y_m\\ \end{bmatrix}J(θ)=m1hθ(x1)y1hθ(x2)y2hθ(x3y3...hθ(xm)ymThθ(x1)y1hθ(x2)y2hθ(x3y3...hθ(xm)ym

⇒J(θ)=1m([hθ(x1)hθ(x2)hθ(x3...hθ(xm)]−[y1y2y3...ym])T([hθ(x1)hθ(x2)hθ(x3)...hθ(xm)]−[y1y2y3...ym])\Rightarrow J(\theta)=\frac{1}{m} \left( \begin{bmatrix} h_\theta(x_1)\\ h_\theta(x_2)\\ h_\theta(x_3\\ ...\\ h_\theta(x_m)\\ \end{bmatrix}-\begin{bmatrix} y_1\\ y_2\\ y_3\\ ...\\ y_m\\ \end{bmatrix} \right)^T\left( \begin{bmatrix} h_\theta(x_1)\\ h_\theta(x_2)\\ h_\theta(x_3)\\ ...\\ h_\theta(x_m)\\ \end{bmatrix}-\begin{bmatrix} y_1\\ y_2\\ y_3\\ ...\\ y_m\\ \end{bmatrix} \right)J(θ)=m1hθ(x1)hθ(x2)hθ(x3...hθ(xm)y1y2y3...ymThθ(x1)hθ(x2)hθ(x3)...hθ(xm)y1y2y3...ym
 \  

将子式带入将子式带入
J(θ)=1m(Xθ−Y)T(Xθ−Y)J(\theta)=\frac{1}{m}(X\theta-Y)^T(X\theta-Y)J(θ)=m1(XθY)T(XθY)
⇒J(θ)=1m[(θTXTXθ−θTXTY−YTXθ+YTY]\Rightarrow J(\theta)=\frac{1}{m}[(\theta^TX^TX\theta-\theta^TX^TY -Y^TX\theta+Y^TY]J(θ)=m1[(θTXTXθθTXTYYTXθ+YTY]
  \  

矩阵求导得dJ(θ)dθ=1m[2XTXθ−2XTY]矩阵求导得 \\\frac{dJ(\theta)}{d\theta}=\frac{1}{m}[2X^TX\theta -2X^TY]dθdJ(θ)=m1[2XTXθ2XTY]
  \  

令上式等于0得θ=(XTX)−1XTY 令上式等于0得 \\\theta=(X^TX)^{-1}X^TY0θ=(XTX)1XTY
  \  

将X=x_data,Y=y_data带入上式将得到目标θ=[θ1θ2θ3..θm]将X=x\_data,Y=y\_data带入上式将得到目标\theta= \begin{bmatrix} \theta_1 \\ \theta_2\\ \theta_3 \\ . \\ . \\ \theta_m \\ \end{bmatrix}X=x_data,Y=y_dataθ=θ1θ2θ3..θm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值