实验1机器学习之线性回归实验

一、实验目的:

(1)理解一元线性回归和多元线性回归的数学原理,能够利用sklearn中相关库解决现实世界中的各类回归问题;

(2)掌握利用matplotlib对一元线性回归模型进行可视化的方法,并分析模型的优劣;

(3)掌握利用statsmodels进行线性回归并进行模型评价的方法;

(4)掌握利用回归模型对现实问题进行分析和解释的能力。

二、实验仪器及实验环境

(1)硬件:PC机;

(2)软件:Anaconda Jupyter Notebook,Spyder,Pandas

、实验内容:

(一)基于伊春市木材剩余物数据利用回归模型预测木材剩余物

伊春林区位于黑龙江省东北部。全区有森林面积218.9732万公顷,木材蓄积量为2.324602亿m3。森林覆盖率为62.5%,是我国主要的木材工业基地之一。1999年伊春林区木材采伐量为532万m3。按此速度44年之后,1999年的蓄积量将被采伐一空。所以目前亟待调整木材采伐规划与方式,保护森林生态环境。为缓解森林资源危机,并解决部分职工就业问题,除了做好木材的深加工外,还要充分利用木材剩余物生产林业产品,如纸浆、纸袋、纸板等。因此预测林区的年木材剩余物是安排木材剩余物加工生产的一个关键环节。下面,利用一元线性回归模型预测林区每年的木材剩余物。显然引起木材剩余物变化的关键因素是年木材采伐量。

给出伊春林区16个林业局1999年木材剩余物和年木材采伐量数据见**"木材剩余物.csv"。**

1.读取伊春市木材剩余物数据集,并显示输入

OSError: Initializing from file failed

解决方法:http://t.csdnimg.cn/afyEh

python 复制代码
import numpy as np
import pandas as pd
python 复制代码
filepath=r"D:\木材剩余物.csv"
df=pd.read_csv(filepath,sep=",",index_col=0,engine='python')#engine='python'
columns=["剩余物","采伐量"]
df.columns=columns
df.head()

#因为\在python中时转义的意思,这里所表示的路径在编码时无法被正确识别,加上r可强制不转义。

#因为\在python中时转义的意思,这里所表示的路径在编码时无法被正确识别,加上r可强制不转义。

index_col=0告诉Pandas使用第一列作为索引。

2、利用分割X和Y数据集。

python 复制代码
X=df[["采伐量"]]#这里如果不加两层中括号没有表格
Y=df["剩余物"]
X.head()

3、对数据进行可视化显示。

python 复制代码
X=df[["采伐量"]]#这里如果不加两层中括号没有表格
Y=df["剩余物"]
X.head()

4、利用sklearn中的线性回归模型建立回归模型,对模型进行训练,输出模型参数。

python 复制代码
from sklearn.linear_model import LinearRegression
regr=LinearRegression()
regr.fit(X,Y)
regr.coef_,regr.intercept_#regr.coef代表y=ax+b中的a,权值,而regr.intercept代表截距,就是b

5、假设乌伊岭林业局2000年计划采伐木材20万m3,求木材剩余物的点预测值。

通过计算,置信度为0.95的2000年平均木材剩余物E(y2000)的置信区间是

从而得出预测结果,2000年若采伐木材20万m3,产生木材剩余物的点估计值是7.3231万m3。平均木材剩余物产出量的置信区间估计是在 [5.8736, 8.7726] 万m3之间。从而为恰当安排2000年木材剩余物的加工生产提供依据。

6、利用statsmodels实现线性回归并对模型进行评估。

python 复制代码
import statsmodels.api as sm
X2=sm.add_constant(X)
est=sm.OLS(Y,X2).fit()
print(est.summary())

代码解读:

sm.add_constant()函数用于增加截距项,也就是增加一个常数项。

sm.OLS()函数使用OLS(普通最小二乘法)建立线性回归模型est。

est.summary()用于输出模型评估结果。

相关推荐
网络研究院2 分钟前
企业急于采用人工智能,忽视了安全强化
网络·人工智能·安全·工具·风险·企业
jndingxin4 分钟前
OpenCV特征检测(3)计算图像中每个像素处的特征值和特征向量函数cornerEigenValsAndVecs()的使用
人工智能·opencv·计算机视觉
byxdaz11 分钟前
基于OpenCV的YOLOv5图片检测
人工智能·opencv·yolo
jndingxin12 分钟前
OpenCV特征检测(4)检测图像中的角点函数cornerHarris()的使用
人工智能·opencv·计算机视觉
B站计算机毕业设计超人13 分钟前
计算机毕业设计hadoop+spark知网文献论文推荐系统 知识图谱 知网爬虫 知网数据分析 知网大数据 知网可视化 预测系统 大数据毕业设计 机器学习
大数据·hadoop·爬虫·机器学习·spark·知识图谱·推荐算法
厚国兄15 分钟前
ESP32-S3百度文心一言大模型AI语音聊天助手(支持自定义唤醒词训练)【手把手非常详细】【万字教程】
人工智能·文心一言
智能汽车人18 分钟前
行业分析---自动驾驶行业的发展
人工智能·机器学习·自动驾驶
注册机18 分钟前
锐尔15注册机 锐尔文档扫描影像处理系统15功能介绍
人工智能·信息可视化·软件工程
##晴天小猪19 分钟前
ByteTrack多目标跟踪流程图
人工智能·算法·目标检测·机器学习·目标跟踪
小ᶻᶻᶻ38 分钟前
如何有效管理技术债务:IT项目中的长期隐患
人工智能