开始使用免费开始使用

最优在哪里?

您用来获取回归参数的函数 np.polyfit() 会找到"最优"的斜率和截距。它优化的是残差平方和(residual sum of squares,RSS)。在本练习中,您将绘制被优化的函数:RSS 与斜率参数 a 的关系。具体做法是将截距固定为优化得到的值,然后绘制 RSS 随斜率变化的曲线。它的最小值出现在何处?

本练习是课程的一部分

Python 统计思维(第 2 部分)

查看课程

练习说明

  • 指定用于计算 RSS 的斜率取值。使用 np.linspace()00.1 的范围内获取 200 个点。例如,若要在 00.5 范围内获取 100 个点,可以这样使用 np.linspace()np.linspace(0, 0.5, 100)
  • 使用 np.empty_like() 和您上一步创建的数组来初始化用于存放 RSS 的数组 rssempty_like() 会返回与给定数组(本题中为 a_vals)形状和类型相同的新数组。
  • 编写 for 循环来计算不同斜率下的 RSS 之和。提示:RSS 的计算为 np.sum((y_data - a * x_data - b)**2)。您在上一个练习中计算的变量 b 已经在当前命名空间中。此处,fertilityy_datailliteracyx_data
  • 绘制 RSS(rss)与斜率(a_vals)的关系图。
  • 点击 提交答案 查看图形!

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Specify slopes to consider: a_vals
a_vals = ____

# Initialize sum of square of residuals: rss
rss = ____

# Compute sum of square of residuals for each value of a_vals
for i, a in enumerate(a_vals):
    rss[i] = ____((____ - a*____ - b)**2)

# Plot the RSS
plt.plot(____, ____, '-')
plt.xlabel('slope (children per woman / percent illiterate)')
plt.ylabel('sum of square of residuals')

plt.show()
编辑并运行代码