一、实验目的

  1. 使用Python程序包sklearn.linear_model函数LinearRegression (),建立简单回归模型。
  2. 使用实验3 经R单位转换操作后的数据集women建立数据模型。
  3. 使用Python建立的线性回归模型与函数predict(),进行新数据预测。
  4. 数据导出操作包括导出数据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. 实验环境:

Win 10

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)数据单位转换

将实验三经R单位转换后的数据存放在Python工作目录下:
image.png

3)工作台代码展示

image.png

4)Python源代码运行结果展示

image.png

5)回归模型各项参数值

参数类型 参数值
Model slope 0.6092541234856225
Model intercept -38.63421398336008

6)注释拟合曲线

对拟合曲线加以标注并且保存,指令如下:
image.png

7)查看拟合曲线是否保存成功

运行步骤(6)指令,返回工作目录可查看所保存的拟合曲线,结果如下所示:
image.png

3. 出现的问题:

(1)程序运行后看不到拟合曲线

4. 解决方案:

(1)程序末尾键入:plt.show()即可展示出拟合曲线。