机器学习入门笔记(二)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44832672/article/details/91125713

多元线性回归

多元线性回归与一元线性回归类似,只是特征值由一个变为了两个及以上。
表达式:hθ(xi)=θ0+θ1x+θ2x2+...+θnxnh_\theta(x_i)=\theta_0+\theta_1x+\theta_2x_2+...+\theta_nx_n
因此可用向量写成:hθ(xi)=θiXiTh_\theta(x_i)=\theta_iX_i^T
其中XT=(X0,X1,X2....,Xn)X^T=(X_0,X_1,X_2....,X_n)其中X0X_0恒为1。
而代价函数仍为:()2(真实值-预测值)^2 的平均·。

除了多元线性回归,还有多项式回归。多项式回归是因为用直线拟合不够准确,因此要用平滑的曲线拟合,如下图为多项式回归的一种情况:

多项式回归
多项式回归的一般式子可写成:Yi=β0+β1Xi+β2X2+...+βkXikY_i=\beta_0+\beta_1X_i+\beta_2X_2+...+\beta_kX_i^k
其中当k的值越大时,拟合的效果越好,曲线越平滑,但可能出现过拟合的情况。

标准方程法

除了梯度下降法,还有标准方程法也可用于求解参数。一般当参数较少时用标准方程法较为合适,其复杂度为O(n3n^3),其中n为k的大小,即特征量的个数。
已知代价函数为:i=1m(hw(xi)yi)2=(yXw)T(yXw)\sum_{i=1}^{m}(h_w(x^i)-y^i)^2=(y-Xw)^T(y-Xw)

例如下列一组数据:
x=[x0x1x2x3x412104514511416324011536323018522136]x= \left[ \begin{matrix} x_0&x_1&x_2&x_3&x_4\\ 1 & 2104 &5&1&45 \\ 1 & 1416 &3&2&40\\ 1 & 1536 &3&2&30 \\ 1 & 852 &2&1&36 \\ \end{matrix} \right]
w=[w0w1w2w3w4]w= \left[ \begin{matrix} w_0\\ w_1\\ w_2\\ w_3\\ w_4\\ \end{matrix} \right]
y=[460232315178]y= \left[ \begin{matrix} 460\\ 232\\ 315\\ 178\\ \end{matrix} \right]
其中w为参数向量,对代价函数的w进行求偏导,即w[(yXw)T(yXw)]\frac{\partial}{\partial w}[(y-Xw)^T(y-Xw)]
根据矩阵求导法则可求得 w=(XTX)1XTy(X^TX)^{-1}X^Ty
实例代码如下:

import numpy as np
from numpy import genfromtxt
import matplotlib.pyplot as plt
# 载入数据
data = np.genfromtxt("Salary_Data.csv",delimiter=",")
x_data = data[1:,0,np.newaxis]
y_data = data[1:,1,np.newaxis]
plt.scatter(x_data,y_data)
plt.show()
#为X矩阵 添加偏置项,即添加x0=1
X_data = np.concatenate((np.ones((30,1)),x_data),axis=1)
print(X_data)
#标准方程法求解回归参数
def weights(xArr, yArr):
    xMat = np.mat(xArr)
    yMat = np.mat(yArr)
    xTx  = xMat.T*xMat # 矩阵乘法
    # 计算矩阵的值,如果值为0,说明矩阵不可逆
    if np.linalg.det(xTx) == 0.0:
        print("矩阵不可逆!")
        return
    ws=xTx.I*xMat.T*yMat
    return ws
x_test = np.array([[0],[12]])
y_test = ws[0]+x_test*ws[1]
plt.plot(x_data,y_data,'b.')
plt.plot(x_test,y_test,'r')
plt.show()

其中salary_data.csv 为参考的工资数据。

最终结果如下:
散点图
标准方程法拟合直线图

展开阅读全文

没有更多推荐了,返回首页