Menu
CoddyTech

葡萄酒化学

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

一位葡萄酒进口商测试了来自 3 种葡萄品种的 178 种葡萄酒,每种酒都测了 13 项化学指标:load_wine。在模型学习这些葡萄品种之前,实验室会先查找仪器测量误差。

同一坐标轴上的 3 项原始葡萄酒指标箱线图:镁的范围约为 70 到 162,而含量接近 13 的酒精和接近 1 的色调都被压缩成底部的平线

这些读数所处的量尺差异很大,因此没有一种离群值规则适用于所有读数。标准化后,每个读数都表示为距离其均值多少个标准差。

在这条标尺上,任一侧距离超过 3 的值都值得再看一眼。然后,每个栽培品种对应的箱线图会显示它通常所处的位置。

challenge icon

挑战

困难

程序会读取一个特征的名称。

  1. 使用 pandas 的 .std(),将它的 z 分数存入 df["z"]。
  2. 打印超出 3 个标准差的葡萄酒数量(包括两侧),然后按表格顺序打印每个结果:索引、读数和 z 值。
  3. 打印每个品种的平均 z 值。
  4. 为每个品种绘制一个 z 分数箱线图,使用 wine.target_names 作为名称,以特征名作为标题,并将 z-score 作为 y 轴标签。

四舍五入到小数点后 2 位。对于 color_intensity,程序会打印:

Outliers in color_intensity: 1
Wine 158: 13.0 (z = 3.43)
class_0: 0.2
class_1: -0.85
class_2: 1.01

并绘制:

color_intensity 的 z 分数箱线图,共 3 个,标题为 color_intensity:class_0 约为 0.15,class_1 较低,约为 -0.9,上方有几个点;class_2 较高,约为 1.1,须线延伸到 3.43

然后 Coddy 会描述你的箱线图。

亲手试试

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine

feature = input()
wine = load_wine(as_frame=True)
df = wine.frame

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

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

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

自己练习: Python 在线编译器