Menu
CoddyTech

初步了解

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

每个模型都从有人仔细查看它的数据开始。本章以这样一幅图收尾:用两个测量值按类别划分肿瘤。

乳腺组织样本以点表示,平均凹点数沿横轴,平均周长沿纵轴:良性样本集中在左下方,恶性样本分布在右上方

先检查四项:大小、缺失值、范围和类别。对于葡萄酒数据集:

wine = load_wine(as_frame=True)
df = wine.frame
print(df.shape)
print(df.isna().sum().sum())

输出如下:

(178, 14)
0

13 个特征,加上 target,而且 .sum().sum() 检查后发现没有任何缺失值。df.describe() 可以显示每个特征的取值范围。

最后,来看各个类别。normalize=True 会将计数转换为占比:

shares = df["target"].value_counts(normalize=True)

三个葡萄酒类别的柱状图:class_0 占 33%,class_1 占 40%,class_2 占 27%,并用虚线标出始终预测为 class_1 时的正确率:40%

始终回答 class_1,正确率为 40%:这是实际模型必须超越的基准。

challenge icon

挑战

中等

先检查 load_breast_cancer,不要让任何模型先从中学习。起始代码会将它加载到 df 中,并读取一个特征的名称。打印以下内容:

  1. 数据集大小和缺失单元格数量。
  2. 使用 describe() 得到该特征的最小值、最大值和中位数。
  3. 按类别顺序打印每个类别所占的百分比,取整为整数。
  4. 基线:占比最高的类别及其占比。

对于鸢尾花数据集和输入 petal length (cm),输出如下:

Size: 150 samples, 4 features
Missing cells: 0
petal length (cm): 1.0 to 6.9, median 4.35
setosa: 33%
versicolor: 33%
virginica: 33%
Baseline: 33% by always answering setosa

鸢尾花数据集的类别分布完全均衡。组织数据也是这样吗?

亲手试试

from sklearn.datasets import load_breast_cancer

feature = input()
cancer = load_breast_cancer(as_frame=True)
df = cancer.frame

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

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

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

自己练习: Python 在线编译器