博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

机器学习作业5--线性回归算法

Posted on 2020-04-22 16:43  马淳丰  阅读(268)  评论(0编辑  收藏  举报

1.本节重点知识点用自己的话总结出来,可以配上图片,以及说明该知识点的重要性。

(1)监督学习中回归与分类的分别

两者的区别在于预测的目标是否是连续的,回归是连续变量预测,分类是离散变量预测。

 

 

 (2)回归用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。线性回归的定义是:目标值预期是输入变量的线性组合。线性模型形式简单、易于建模,但却蕴含着机器学习中一些重要的基本思想。线性回归,是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。

 

(3)无论怎么构建这个回归模型,总会存在误差,也就是说总会有一些点没有落在建立的线或者面上面。真实值与预测值之间的差距就叫做误差大小,也叫做损失函数。而我们建立回归模型的目的之一,就是尽可能的将这个损失函数的值降到最低,也就是要找到最佳的权重w。

 (4)梯度下降就是寻找最佳的权重w的方法之一。

 

 (5)复习了矩阵和数组的基本运算方法。(矩阵必须是二维数组)

 

2.思考线性回归算法可以用来做什么?(大家尽量不要写重复)

线性回归算法可以得出身高与体重的关系。将身高作为变量,体重作为因变量。这样就可以在得知一个人的身高后,预测出当一个人的体重。

3.自主编写线性回归算法 ,数据可以自己造,或者从网上获取。(加分题)

 1 import matplotlib.pyplot as plt
 2 from sklearn.linear_model import LinearRegression
 3 x = [[0.86],[0.96],[1.12],[1.35],[1.55],[1.63],[1.71],[1.78]]  # 身高
 4 y = [[12],[15],[20],[35],[48],[51],[59],[66]]  # 体重
 5 
 6 model = LinearRegression()  # 构建模型
 7 model.fit(x, y)       # 训练模型
 8 pre = model.predict(x)  # 预测模型
 9 print("身高为1.76米的人,体重大概为:",model.predict([[1.76]]))
10 
11 plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
12 plt.scatter(x, y)    # 实际样本的分布
13 plt.xlabel("身高(米)")
14 plt.ylabel("体重(公斤)")
15 plt.plot(x, pre, c='r')     # 拟合出的回归方程
16 plt.legend(['pre', 'real'])
17 plt.show()