一、实验目的
- 使用Python程序包sklearn.linear_model函数LinearRegression (),建立简单回归模型。
- 使用实验3 经R单位转换操作后的数据集women建立数据模型。
- 使用Python建立的线性回归模型与函数predict(),进行新数据预测。
- 数据导出操作包括导出数据csv文件、保存Python绘图图片。
二、实验内容
说明 1: 已知R原始数据集women有15名妇女的数据,如下表所示。
序号 | 身高(英寸) | 体重(磅) | 序号 | 身高(英寸) | 体重(磅) |
---|---|---|---|---|---|
1 | 58 | 9 | 9 | 66 | 139 |
2 | 59 | 10 | 10 | 67 | 142 |
3 | 60 | 11 | 11 | 68 | 146 |
4 | 61 | 12 | 12 | 69 | 150 |
5 | 62 | 13 | 13 | 70 | 154 |
6 | 63 | 14 | 14 | 71 | 159 |
7 | 64 | 15 | 15 | 72 | 164 |
8 | 65 | 16 |
说明3: 使用实验3 经R将身高与体重变量的单位,由英制转为公制单位转换操作后的数据集women,建立数据模 型。
说明4: 将说明3的数据,使用Python建立的线性回归模型与函数predict(),进行新数据预测。
说明5: 保存图片: 保存为PNG格式。
说明6: 使用Python建立的线性回归模型与函数predict(),使用身高height=172新数据进行体重weight预测。
三、实验报告
1. 实验环境:
2. 实验内容与完成情况:
1)实验源代码
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
urlf=”你的工作目录/women.txt”
women=pd.readcsv(urlf, sep=’\s+’)
from sklearn.linear_model import LinearRegression
model=LinearRegression(fit_intercept=True)
x=women[‘height’];y=women[‘weight’]
model.fit(x[:, np.newaxis], y)
xfit = np.linspace(140, 190, 100)
yfit = model.predict(xfit[:, np.newaxis])
plt.plot(xfit, yfit);
plt.scatter(x, y);
print(“Model slope: “, model.coef[0])
print(“Model intercept:”, model.intercept_)
print(‘預測 height=172, weight為:’,
model.predict(np.array([[172,]])))
2)数据单位转换
3)工作台代码展示
4)Python源代码运行结果展示
5)回归模型各项参数值
参数类型 | 参数值 |
---|---|
Model slope | 0.6092541234856225 |
Model intercept | -38.63421398336008 |
6)注释拟合曲线
7)查看拟合曲线是否保存成功
运行步骤(6)指令,返回工作目录可查看所保存的拟合曲线,结果如下所示:
3. 出现的问题:
4. 解决方案:
(1)程序末尾键入:plt.show()即可展示出拟合曲线。