算法梳理进阶线性回归(三)

向右看齐 2022-03-14 08:22 318阅读 0赞

文章目录

  • 代码实现
  • 效果

代码实现

  1. # -*- coding:utf-8 -*-
  2. import sklearn.datasets as datasets
  3. from sklearn.linear_model import LinearRegression
  4. from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
  5. from sklearn.model_selection import train_test_split
  6. import numpy as np
  7. class HousePrice:
  8. def data_split(self):
  9. # 载入数据集
  10. boston_data = datasets.load_boston()
  11. # 得到RM列的数据
  12. x = boston_data.data[:, 5]
  13. # 变为一列
  14. x = x.reshape(-1, 1)
  15. y = boston_data.target
  16. y = y.reshape(-1, 1)
  17. # 分割数据集
  18. x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0)
  19. # 创建线性回归模型
  20. lr = LinearRegression()
  21. lr.fit(x_train, y_train)
  22. # 得到预测结果
  23. y_pred = lr.predict(x_test)
  24. return y_pred, y_test
  25. if __name__ == '__main__':
  26. hp = HousePrice()
  27. # 得到预测以及测试原本的结果
  28. y_pred, y_test = hp.data_split()
  29. # 计算评分指标
  30. mse_test = np.sum((y_pred - y_test) ** 2) / len(y_test)
  31. mae_test = np.sum(np.absolute(y_pred - y_test)) / len(y_test)
  32. rmse_test = mse_test ** 0.5
  33. r_score = 1 - (mse_test / np.var(y_test))
  34. print('自己实现')
  35. print("均方误差:{0},平均绝对误差:{1},均方根误差:{2},可决系数:{3}".format(mse_test, mae_test, rmse_test, r2_score))
  36. # 调用函数得到
  37. # 调用函数获得结果
  38. mse_test = mean_squared_error(y_test, y_pred)
  39. mae_test = mean_absolute_error(y_test, y_pred)
  40. rmse_test = mse_test ** 0.5
  41. r2_score = r2_score(y_test, y_pred)
  42. print('调用函数')
  43. print("均方误差:{0},平均绝对误差:{1},均方根误差:{2},可决系数:{3}".format(mse_test, mae_test, rmse_test, r2_score))
  44. pass

效果

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,318人围观)

还没有评论,来说两句吧...

相关阅读

    相关 线性回归算法

    以sklearn.datasets模块中的经典数据load\_boston(波士顿房价)为例,实现线性回归算法 代码: from sklearn.datasets