Menu
CoddyTech

相关性

本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 30 课,共 64 课。

随目标一起变化的特征有助于模型预测目标。相关系数 r 用于衡量两列数据沿直线变化的紧密程度,取值范围为 -1 到 1:

六个小型散点图及其 r 值:-0.9 和 -0.5 表示下降,0.0 表示没有明显形状的云状分布,0.5 和 0.9 表示上升,1.0 表示一条完美的上升直线

一家商店 6 周的广告和销售额:np.corrcoef 返回一个 2×2 的表,列出每个数组与另一个数组的相关性,其中 r 位于 [0, 1]。列的 .corr 方法会直接返回相关系数:

ads = np.array([100, 200, 150, 300, 250, 50])
sales = np.array([430, 520, 560, 760, 610, 410])
print(np.round(np.corrcoef(ads, sales), 2))
shop = pd.DataFrame({"ads": ads, "sales": sales})
print(np.round(shop["ads"].corr(shop["sales"]), 2))

这会打印:

[[1.   0.94]
 [0.94 1.  ]]
0.94

在 0.94 时,广告更多的周显然销量也更高。

challenge icon

挑战

中等

一家健身房用 gym.csv 记录了 20 位会员三个月的数据,列包括 visits、classes、minutes_per_visit、age 和 weight_change_kg。程序会读取两个列名。

  1. 按如下格式输出这两个名称及其 r,四舍五入到 2 位小数。
  2. 当 r 大于 0.3 时,输出 Direction: positive;小于 -0.3 时,输出 negative;其他情况输出 none。

对于一家游泳俱乐部的 laps 和 minutes:

laps and minutes: r = 0.95
Direction: positive

亲手试试

import numpy as np
import pandas as pd

gym = pd.read_csv("gym.csv")
first = input()
second = input()

# 在下方编写你的代码
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

机器学习统计学中的所有课

自己练习: Python 在线编译器