机器学习之线性回归(Day2)

机器学习之线性回归(简单易学)

1. 什么是回归分析?
首先和大家分享一个案例:通过住宅面积预测售价
在这里插入图片描述
通过图中标识数据,我们可以找到售价与住宅面积之间的关系,寻找一条最好的直线或曲线来拟合数据。
生活当中有许多诸如此类的例子:年龄预测身高;医生数量预测区域人均寿命…
回归分析:根据数据,确定两种或两种以上变量间相互依赖的定量关系。具体分类如下:
在这里插入图片描述
2. 什么是线性回归?
线性回归是回归分析问题中最简单的一种,即找到变量与因变量存在的线性关系。函数表达式:y=ax+b(高中学习的一次函数)
3. 回归问题求解
问题:面积110平米售价150万是否值得投资?
在这里插入图片描述
第一步:确定P、A间的定量关系P=f(A);
第二步:根据关系预测合理价格;
第三步:做出判断。
第一部确定关系为关键,即如何求出y=ax+b中的a和b(最合适)?
假设x为变量,y为对应的结果,y1为模型的输出结果,目标变为y1尽可能接近y.
在这里插入图片描述
上述公式可以转化为:
在这里插入图片描述
这就是我们经常提到的损失函数。(除2m是为了将来求导方便求解)
代入公式:在这里插入图片描述
求解方法:梯度下降法:寻找极小值的一种方法。通过函数上当前点对应梯度(或是近似梯度)的反方向的规定步长距离进行迭代搜索,直到在极小点收敛。(高数中也有讲解,大家学习人工智能之前首先要有必备的数学知识。)
在这里插入图片描述
在这里插入图片描述
这样就可以找到a和b了。
举例:在这里插入图片描述
在这里插入图片描述

逐渐求导,直至接近极小值点,直线平行。

4. 代码实现
(1)Scikit-learn
Python语言中专门针对机器学习应用发展起来的一款开源框架,可以实现数据预处理、分类、回归、降维、模型选择等常用的机器学习算法。感兴趣的读者可以到网站
https://scikit-learn.org/stable/index.html)学习
(2)调用SKlearn求解线性回归问题

#建立线性回归模型
from sklearn.linear_model import LinearRegression
lr_model = LinearRegression()
#拟合数据
lr_model.fit(x,y)
#预测数据
y_predict = lr_model.predict(x)
#a\b打印
a = lr_model.coef_
b = lr_model.intercept_

(3)评估模型表现
在这里插入图片描述

#评估模型表现  MSE越小越好,R2分数越接近1越好
from sklearn.metrics import mean_squared_error,r2_score
MSE = mean_squared_error(y,y_predict)
R2 = r2_score(y,y_predict)
print(MSE,R2)

(4)图形展示

#通过图形评估模型
from matplotlib import pyplot as plt
plt.figure()
plt.plot(y,y_predict)#画图对比y和y_predict
plt.show()

5. 实战应用(基于AI Studio平台)
(1)单因子线性回归
基于danyinzi1.csv的数据,建立线性回归模型,并预测x=3.5对应的y的值,评估模型表现。
该数据非常简单,大家自行创建即可。
在这里插入图片描述
以图片形式展示:
在这里插入图片描述
(2)多因子线性回归
任务: 基于housing_price.csv数据,建立线性回归模型,预测合理房价

  • 以面积为输入变量,建立单因子模型,评估模型表现,可视化线性回归预测结果
  • 以其他数据为输入变量,建立多因子模型,评估模型表现,
  • 给出一条数据进行预测
  • 注意:由于无法找到合适数据,代码不能运行,只能参考
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值