首先导入所需要的库文件
1 | import matplotlib.pyplot as plt # 导入可视化库 |
把我们的参数值求解公式$\theta=(X^TX)^{-1}X^TY$转换为代码
1 | def fit(self, X, y): # 训练集的拟合 |
其中:$(X^TX)^{-1} $表示为:
1 | X_ = np.linalg.inv(X.T.dot(X)) # 公式求解 -- X.T表示转置,X.dot(Y)表示矩阵相乘 |
其中:$X^TY $表示为:
1 | X.T.dot(X) |
所以完整公式$\theta=(X^TX)^{-1}X^TY$表示为:
1 | X_.dot(X.T).dot(y) |
由于我们最终得到的线性回归函数是$y=\theta x+b$即预测函数:
1 | def predict(self, X): # 测试集的测试反馈 |
其中得到的预测结果y_pred=X_text$\cdot\theta$
1 | y_pred = X.dot(self.w) # 测试集与参数值相乘 |
最终得出线性回归代码:
1 | class LinearRegression(): |
同时我们需要得出预测值与真实值的一个平方平均值
1 | def mean_squared_error(y_true, y_pred): |
最后就是进行我数据的加载,训练,测试过程以及可视化
1 | def main(): |
可视化结果
完整线性回归的代码
1 | import matplotlib.pyplot as plt # 导入可视化库 |