第1关:简单线性回归与多元线性回归

1、下面属于多元线性回归的是?(BC)

A、求得正方形面积与对角线之间的关系。
B、建立股票价格与成交量、换手率等因素之间的线性关系。
C、建立西瓜价格与西瓜大小、西瓜产地、甜度等因素之间的线性关系。
D、建立西瓜书销量与时间之间的线性关系。

2、若线性回归方程得到多个解,下面哪些方法能够解决此问题?(ABC)

A、获取更多的训练样本
B、选取样本有效的特征,使样本数量大于特征数
C、加入正则化项
D、不考虑偏置项b

3、下列关于线性回归分析中的残差(预测值减去真实值)说法正确的是?(A)

A、残差均值总是为零
B、残差均值总是小于零
C、残差均值总是大于零
D、以上说法都不对


第2关:线性回归的正规方程解

编程要求

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

测试说明

只需返回预测结果即可,程序内部会检测您的代码,MSE低于30则视为过关。

#encoding=utf8
import numpy as np
def mse_score(y_predict,y_test):'''input:y_predict(ndarray):预测值y_test(ndarray):真实值ouput:mse(float):mse损失函数值'''#********* Begin *********#mse = np.mean((y_predict-y_test)/2)#********* End *********#return mse
class LinearRegression :def __init__(self):'''初始化线性回归模型'''self.theta = Nonedef fit_normal(self,train_data,train_label):'''input:train_data(ndarray):训练样本train_label(ndarray):训练标签'''#********* Begin *********#x = np.hstack([np.ones((len(train_data),1)),train_data])self.theta =np.linalg.inv(x.T.dot(x)).dot(x.T).dot(train_label)#********* End *********#return self.thetadef predict(self,test_data):'''input:test_data(ndarray):测试样本'''#********* Begin *********#x = np.hstack([np.ones((len(test_data),1)),test_data])return x.dot(self.theta)#********* End *********#

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

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,用Python实现R-Squared指标,并用实现的R-Squared指标来评估上一关的线性回归模型。

测试说明

只需返回预测结果即可,程序内部会检测您的代码,R-Squared指标高于0.6视为过关。

#encoding=utf8
import numpy as np
#mse
def mse_score(y_predict,y_test):mse = np.mean((y_predict-y_test)**2)return mse
#r2
def r2_score(y_predict,y_test):'''input:y_predict(ndarray):预测值y_test(ndarray):真实值output:r2(float):r2值'''#********* Begin *********#r2 = 1 - mse_score(y_predict,y_test)/np.var(y_test)#********* End *********#return r2
class LinearRegression :def __init__(self):'''初始化线性回归模型'''self.theta = Nonedef fit_normal(self,train_data,train_label):'''input:train_data(ndarray):训练样本train_label(ndarray):训练标签'''#********* Begin *********#x = np.hstack([np.ones((len(train_data),1)),train_data])self.theta =np.linalg.inv(x.T.dot(x)).dot(x.T).dot(train_label)#********* End *********#return selfdef predict(self,test_data):'''input:test_data(ndarray):测试样本'''#********* Begin *********#x = np.hstack([np.ones((len(test_data),1)),test_data])return x.dot(self.theta)#********* End *********#

第4关:scikit-learn线性回归实践 - 波斯顿房价预测

编程要求
使用sklearn构建线性回归模型,利用训练集数据与训练标签对模型进行训练,然后使用训练好的模型对测试集数据进行预测,并将预测结果保存到./step3/result.csv中。

测试说明
我们会获取你的预测结果与真实标签对比,R2指标高于0.6视为过关。

#encoding=utf8
#********* Begin *********#
import pandas as pd
from sklearn.linear_model import LinearRegression#读取训练数据
train_data = pd.read_csv('./step3/train_data.csv')#读取训练标签
train_label = pd.read_csv("./step3/train_label.csv")
train_label = train_label["target"]#读取测试数据
test_data = pd.read_csv("./step3/test_data.csv")
lr = LinearRegression()#训练模型
lr.fit(train_data,train_label)#预测标签
predict = lr.predict(test_data)#写入csv
df = pd.DataFrame({"result":predict})
df.to_csv("./step3/result.csv", index=False)#********* End *********#

机器学习 线性回归 头歌实训相关推荐

  1. educoder头歌实训 web课——JavaScript语言基础:JS循环语句

    educoder头歌实训 太原理工大学web课程----JavaScript语法基础:JS运算符_玛卡巴卡的博客-CSDN博客 第1关:while类型 任务描述 质数的定义如下:大于1的自然数,且除 ...

  2. 数据库原理 头歌实训 数据库常用对象

    SQL视图的定义与操纵 第1关:创建行列子集视图 任务描述 本关任务:创建计算机系的学生信息的视图 student_cs. 相关知识 行列子集视图是指视图的结果集来源于基本表,没有经过二次计算. ## ...

  3. JAVA程序设计-头歌实训-------# 第一阶段 Java语言快速入门

    第一阶段 Java语言快速入门 第1关:Java程序的基本框架:Hello Java World! 任务描述 本关的任务是编写你人生中第一个Java程序,从此开启你的Java实训之旅,显示效果如下: ...

  4. 头歌实训平台Python

    目录 Python 初体验-- Hello world 第1关  Hello Python,我来了! Python控制结构(一)※ 第1关  if分支入门※ 第2关  while循环分支入门※ 学习- ...

  5. 【头歌实训】Java高级特性 - 多线程基础(1)使用线程,使用 Callable 和 Future 创建线程

    任务描述 本关任务:通过 Callable 和 Future 来创建线程. 相关知识 从Java1.5版本开始,就提供了 Callable 和 Future 来创建线程,这种方式也是在Java程序员面 ...

  6. 湖南大学python头歌实训-循环语句

    文章目录 第二章-Python语言基础-2.3循环(一) 第1关:While循环与break语句 第2关:for循环※ 第3关:for循环与continue语句 第4关:循环嵌套 第5关:迭代器 第二 ...

  7. 湖南大学python头歌实训-分支语句

    文章目录 第二章-Python语言基础-2.2条件分支(一) 第1关:顺序结构 第2关:选择结构:if-else 第3关:选择结构 - 三元操作符 第4关:选择结构-入门实训 第二章-Python语言 ...

  8. 计算机图形学头歌实训平台作业OpenGL二维几何变换

    二维几何变换 第1关 正方形的平移与缩放 第2关 正方形的平移和旋转 第3关 正方形的变换组合 第4关 三菱形状 第1关 正方形的平移与缩放 // 提示:写完代码请保存之后再进行评测 #include ...

  9. 计算机图形学头歌实训平台——二维几何变换

    第1关:正方形的平移与缩放 // 提示:写完代码请保存之后再进行评测 #include <GL/freeglut.h> #include<stdio.h>// 评测代码所用头文 ...

最新文章

  1. android 关于字符转化问题
  2. C#:关于双引号的输出
  3. liferay 如何使用javascript
  4. 【图像处理】——Python OpenCV实现形态学膨胀、腐蚀开闭操作(可以用于图像滤波、图像分割等)
  5. 带你自学Python系列(八):列表具体操作思维导图总结,再也不用翻书查用法了!...
  6. Spring5(3)---Spring5概述
  7. SoundWireServer使用以及失败问题
  8. TCP协议为什么会采用三次握手,若采用二次握手可以吗?
  9. 【leetcode刷题笔记】单调栈
  10. Emmet 简写语法
  11. 调试技巧之调用堆栈 - Call stack
  12. 外文文献翻译一条龙 -对于毕设翻译贼有用
  13. 实现360浏览器内核模式切换
  14. MyBatis第一天课堂笔记
  15. 20155313 杨瀚 《网络对抗技术》实验六 信息搜集与漏洞扫描
  16. Gauntlet风险评级上线: DeFi杠杆率多高?会不会崩盘?
  17. Hexo Icarus配置和美化升级
  18. 108. 将有序数组转换为二叉搜索树
  19. 异常:org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usage [hiber
  20. rsync来实现文件同步

热门文章

  1. 交货单过账:BAPI_OUTB_DELIVERY_CONFIRM_DEC 、WS_DELIVERY_UPDATE
  2. SQLite下载与安装
  3. java报表控件工具,简单实用的报表生成器
  4. JetsonNano学习(二)环境配置
  5. [笔记] 应用安装过程梳理
  6. C++课程设计--简易画图程序(MFC)
  7. 基于Html5的个性化学习系统的设计与实现
  8. 计算机网络怎么区分a类b类c类地址,如何判断IP地址是A类B类还是C类
  9. IDEA报错OutofMemory
  10. 懂得智慧生活 方能不负时光