当前位置:   article > 正文

【头歌】重生之数据挖掘算法原理与实践:线性回归(房价预测)_第2关:动手实现线性回归

第2关:动手实现线性回归

关于【头歌】线性回归理论与案例实践的其他单元仅粉丝可见,想要更多学习资源的同学关注我哦~

创作不易,参考之前,点个赞,收藏,关注一下不过分吧,家人们

第1关:线性回归算法思想

  • 1、

    下面属于多元线性回归的是?

    A、

    求得正方形面积与对角线之间的关系。

    B、

    建立股票价格与成交量、换手率等因素之间的线性关系。

    C、

    建立西瓜价格与西瓜大小、西瓜产地、甜度等因素之间的线性关系。

    D、

    建立西瓜书销量与时间之间的线性关系。

  • 答案:B C

第2关:动手实现线性回归

任务描述

本关任务:根据本关卡所学知识,构建线性回归算法,并利用波士顿房价数据对模型进行训练,然后对未知的房价数据进行预测。

编程要求

根据提示,在右侧编辑器Begin-End处补充 Python 代码,实现线性回归算法与MSE损失函数计算方法,并利用房价数据对模型进行训练,然后对未知的房价数据进行预测。

  1. #mse
  2. def mse_score(y_predict,y_test):
  3. #********* Begin *********#
  4. m = len(y_predict)
  5. a = y_test - y_predict
  6. mse = np.dot(a,a)/m
  7. #********* End *********#
  8. return mse
  9. def lr(train_feature,train_label,test_feature):
  10. '''
  11. input:
  12. train_feature(ndarray):训练样本特征
  13. train_label(ndarray):训练样本标签
  14. test_feature(ndarray):测试样本特征
  15. output:
  16. predict(ndarray):测试样本预测标签
  17. '''
  18. #********* Begin *********#
  19. #将x0=1加入训练数据
  20. new_train = np.concatenate((np.ones(len(train_feature)).reshape(-1,1),train_feature),axis=1)
  21. #使用正规方程解求得参数
  22. train_T = new_train.T
  23. linal = np.linalg.inv(np.dot(train_T,new_train))
  24. result = np.dot(linal,train_T)
  25. theta = np.dot(result,train_label)
  26. #将x0=1加入测试数据
  27. new_test = np.concatenate((np.ones(len(test_feature)).reshape(-1,1),test_feature),axis=1)
  28. #求得测试集预测标签
  29. predict = np.dot(new_test, theta)
  30. #********* End *********#
  31. return predict

第3关:衡量线性回归的性能指标

任务描述

本关任务:根据本关卡所学知识,用Python实现线性回归常用评估指标,并对构造的线性回归模型进行评估。

  1. def r2_score(y_predict,y_test):
  2. '''
  3. input:y_predict(ndarray):预测值
  4. y_test(ndarray):真实值
  5. output:r2(float):r2值
  6. '''
  7. #********* Begin *********#
  8. r2 = 1-mse_score(y_predict,y_test)/np.var(y_test)
  9. #********* End *********#
  10. return r2

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号