Menu
CoddyTech

特征太多

本课属于 Coddy Machine Learning 学习旅程的“无监督学习”单元。第 24 课,共 51 课。

这一章用很少的课时涵盖了许多功能。学完后,13 项葡萄酒测量数据将汇总成一张地图:

一张地图上有 178 种葡萄酒,横轴和纵轴是两个新特征:分为三组,栽培品种 1 在右侧,栽培品种 2 在中间偏下,栽培品种 3 在左侧

为什么要压缩?很多特征难以绘制图表,拟合速度慢,而且常常彼此重复,比如下面这两个特征:

178 种葡萄酒的总酚含量和黄酮含量:数据点从左下方向右上方一起攀升,r = 0.86

双胞胎会将同一个概念重复两次。相关矩阵会找出它们,r 接近 1 或 -1:

wine = load_wine(as_frame=True).frame
corr = wine.corr()
print(round(corr.loc["flavanoids", "total_phenols"], 2))

这会打印 0.86。每对保留一个,或者将它们合并:合并就是本章要讲的内容。

challenge icon

挑战

中等

一家肥皂作坊会测量每批肥皂的 10 项指标,报告也越来越长。找出配对项。程序会读取一个限制值,起始代码会构建 corr。

  1. 遍历每一对不同的列,每对只遍历一次。
  2. 打印绝对值至少达到限制值的每一对,不论正负,并将 r 保留 2 位小数。
  3. 打印找到的配对项数量。

对于另一家作坊,限制值为 0.85:

lye_g and oil_g: 0.91
cure_days and water_left_pct: -0.88
Twin pairs: 2

亲手试试

import pandas as pd

# 一家肥皂作坊:60 批肥皂,每批有 10 项测量数据
batches = pd.read_csv("soaps.csv")
limit = float(input())
corr = batches.corr()
cols = corr.columns

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

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

无监督学习中的所有课

自己练习: Python 在线编译器