Menu
CoddyTech

按类别探索

本课属于 Coddy Machine Learning 学习旅程的“数据与图表”单元。第 54 课,共 60 课。

哪种测量值能区分物种?按花瓣长度把每朵花排成一行,每个物种一行:

鸢尾花按花瓣长度排列,每个物种一行:setosa 聚集在 1.5 cm 附近,versicolor 聚集在 4.3 cm 附近,virginica 聚集在 5.6 cm 附近,每个类别的均值都用黑色条形标出

对标签使用 groupby 可以计算这些均值:

df = iris.frame
means = df.groupby("target")["petal length (cm)"].mean()
print(means)

这会打印:

target
0    1.462
1    4.260
2    5.552
Name: petal length (cm), dtype: float64

类别表示彼此相距较远,因此花瓣长度区分这些类别:模型会依赖它。

比值表示差距有多大:means[2] / means[1] 约为 1.3。这个比值离 1 越远,说明该特征越能区分这两个类。

challenge icon

挑战

中等

哪个细胞测量值能表明样本是恶性的?在 load_breast_cancer 中,类 0 表示恶性,类 1 表示良性。起始代码会将一些特征名称读入 features。

  1. 对于每个特征,输出其恶性样本均值除以良性样本均值的结果,并用 round 四舍五入到小数点后 2 位。
  2. 循环结束后,指出比值最大的特征。

对于特征 worst radius 和 worst texture:

worst radius: malignant is 1.58 times benign
worst texture: malignant is 1.25 times benign
Best separator: worst radius

亲手试试

from sklearn.datasets import load_breast_cancer

cancer = load_breast_cancer(as_frame=True)

# 要比较的特征
n = int(input())
features = []
for i in range(n):
    features.append(input())

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

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

数据与图表中的所有课

自己练习: Python 在线编译器