sklearn 线性回归_使用sklearn库做线性回归拟合

本文介绍了如何利用sklearn库中的LinearRegression类进行线性回归分析。在研究海拔与温度的线性关系中,通过处理实测数据,进行线性回归拟合,以揭示两者之间的数学关系。
摘要由CSDN通过智能技术生成

f2381a938f3a3db300a9b2560c8685cf.png

背景资料

随着海拔高度的上升,温度越来越低,经过气象专家的研究,在一定的海拔高度范围内,高度和温度呈线性关系。现有一组实测资料,我们需要对这些数据进行处理拟合,获得此线性关系。

解决思路

采用sklearn库中的LinearRegression线性回归类进行拟合。

代码

# 导入所需的模块
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# 已有数据
height = [0.0, 500.0, 1000.0, 1500.0, 2000.0, 2500.0, 3000.0, 3500.0, 4000.0]
temperature = [12.834044009405147, 10.190648986884316, 5.50022874963469, 2.8546651452636795, -0.7064882183657739, -4.065322810462405, -7.1274795772446575, -10.058878545913904, -13.206465051538661]

# 数据处理
# sklearn 拟合输入输出一般都是二维数组,这里将一维转换为二维。
height = np.array(height).reshape(-1, 1)
temp = np.array(temperature).reshape(-1, 1)

# 拟合
reg = LinearRegression()
reg.fit(height, temp)
a = reg.coef_[0][0]     # 系数
b = reg.intercept_[0]   # 截距
print('拟合的方程为:Y = %.6fX + %.6f' % (a, b))
# out: 拟合的方程为:Y = -0.006570X + 12.718507

# 可视化
prediction = reg.predict(height)                # 根据高度,按照拟合的曲线预测温度值
plt.figure('海拔高度~温度关系曲线拟合结果', figsize=(12,8))
plt.rcParams['font.family'] = ['sans-serif']    # 设置matplotlib 显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']    # 设置matplotlib 显示中文
plt.xlabel('温度')
plt.ylabel('高度')
plt.scatter(temp, height, c='black')
plt.plot(prediction, height, c='r')
plt.show()

fed02923d9a8d53c6c31bb5ea9737383.png
海拔高度~温度曲线拟合结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值