用直线进行预测
本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 38 课,共 64 课。
拟合线是一个小型预测工具:输入一个新的 x,就能得到一个 y。一只小狗从第 8 周到第 20 周的体重记录如下:
weeks = np.array([8, 10, 12, 14, 16, 18, 20])
kg = np.array([3.1, 4.0, 5.2, 6.1, 7.0, 8.2, 9.1])
slope, intercept = np.polyfit(weeks, kg, 1)
new_weeks = np.array([15, 52])
print(np.round(slope * new_weeks + intercept, 1))这会打印 [ 6.6 25.2]。第 15 周在数据范围内。第 52 周不在,狗停止生长很久后,这条线还在不断上升:
在数据范围之外进行预测称为外推,这很冒险:只有对于类似于模型训练数据的输入,模型的预测才可靠。先检查:
week = 52
print(week >= weeks.min() and week <= weeks.max())这会打印 False。
挑战
中等蜡烛燃烧时,每小时测量一次,从第 0 小时到第 6 小时:hours 和 height(单位为 cm)。程序会读取 new_hours。
- 拟合一条根据
hours预测height的直线。 - 输出对
new_hours的预测值,四舍五入到小数点后 2 位。 - 输出
new_hours是否在数据的小时范围内,包括两端。
输入 4.5 时:
Predicted height: 13.07 cm
Inside the data: yes亲手试试
import numpy as np
hours = np.array([0, 1, 2, 3, 4, 5, 6])
height = np.array([20.0, 18.4, 17.1, 15.3, 13.9, 12.2, 10.8])
new_hours = float(input())
# 在下方编写你的代码
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
机器学习统计学中的所有课
自己练习: Python 在线编译器