相关矩阵
本课属于 Coddy Machine Learning 学习旅程的“机器学习统计学”单元。第 31 课,共 64 课。
选择特征意味着要同时将每一列与目标进行比较。df.corr(numeric_only=True)会生成相关矩阵,并跳过文本列:
laptops = pd.DataFrame({
"model": ["Arc", "Bolt", "Cove", "Dune", "Echo", "Flux", "Gale"],
"ram_gb": [8, 16, 8, 32, 16, 16, 32],
"weight_kg": [2.3, 1.4, 2.0, 1.1, 1.8, 1.2, 1.6],
"battery_h": [7, 9, 10, 13, 6, 11, 8],
"price": [650, 1100, 700, 1600, 900, 1350, 1200],
})
corr = laptops.corr(numeric_only=True)每个单元格表示其所在行和列的 r。要找出最强的特征,请按大小对价格列进行排序,并忽略正负号:
ranked = np.abs(corr["price"]).sort_values(ascending=False)
print(ranked.index[1])这会输出:
weight_kg索引 0 对应的就是 price 本身,值为 1。笔记本电脑越轻,价格越高:-0.95 是最强的关联。
挑战
中等一家能源公司在冬季调查了 24 户家庭。homes.csv 中包含一个 home 编号列,以及数值列 area_m2、insulation_cm、residents、outside_temp_c 和 heating_kwh。程序会读取一个目标列。
- 输出相关矩阵中目标列的内容,并四舍五入到小数点后 2 位。
- 按照下方示例,输出
Strongest:、与目标列关系最密切的其他列,以及它的r值。
对于另一项调查,目标列为 heating_kwh:
windows 0.72
floors 0.68
age_years 0.23
heating_kwh 1.00
Name: heating_kwh, dtype: float64
Strongest: windows (r = 0.72)亲手试试
import numpy as np
import pandas as pd
homes = pd.read_csv("homes.csv")
target = input()
# 在下方编写你的代码
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
机器学习统计学中的所有课
自己练习: Python 在线编译器