ML预测半导体良品率——样本缺失值模式分析(Python+Pandas+Matplotlib)

📅 2026/7/6 3:47:26 👁️ 阅读次数 📝 编程学习
ML预测半导体良品率——样本缺失值模式分析(Python+Pandas+Matplotlib)

学习过程中的有疑问:plt.什么意思?EDA什么意思


一、plt是什么意思?

很多初学者看到:

plt.show() plt.plot() plt.savefig() plt.subplots()

都会问:

为什么都是 plt?

其实:

plt

不是 Python 关键字,也不是固定语法。

它只是一个变量名(别名,alias)


它来自哪里?

一般在代码最前面都会有:

import matplotlib.pyplot as plt

把它拆开来看:

import

表示:

导入一个库。


matplotlib

表示:

Python 最经典的画图库。


pyplot

表示:

matplotlib 里面专门负责画图的模块(module)。

可以理解成:

matplotlib(一本书) ├── pyplot(画图) ├── animation(动画) ├── colors(颜色) ├── patches(图形) ...

最后:

as plt

表示:

matplotlib.pyplot起一个更短的名字。

就像:

你的名字:

张三

别人平时叫:

小张

所以:

import matplotlib.pyplot as plt

实际上就是:

以后别叫 matplotlib.pyplot 这么长了, 直接叫 plt 就行。

举个例子

原本应该写:

matplotlib.pyplot.show()

太长。

于是:

import matplotlib.pyplot as plt

以后就可以写:

plt.show()

简单很多。


所以:

plt.show()

真正完整写法其实是:

matplotlib.pyplot.show()

plt.后面的点(.)是什么意思?

很多初学者都会问:

plt.show()

为什么有个:

.

这个点叫:

成员访问符(dot operator)

意思是:

调用这个对象里面的东西。

例如:

plt.show()

意思就是:

调用 pyplot 模块里的 show() 函数。

同样:

plt.savefig()

就是:

调用 pyplot 模块里的 savefig() 函数。

所以:

plt 就像一个工具箱。 show() savefig() plot() hist() 都是工具箱里的工具。

为什么叫 pyplot?

因为它最早就是模仿 MATLAB 的画图方式。

所以:

plt.plot()

非常像 MATLAB。


常见的 plt 函数

代码作用
plt.plot()折线图
plt.scatter()散点图
plt.hist()直方图
plt.bar()柱状图
plt.boxplot()箱线图
plt.subplots()创建画布
plt.show()显示图片
plt.savefig()保存图片
plt.tight_layout()自动调整布局

二、EDA 是什么意思?

EDA 是:

Exploratory Data Analysis

中文:

探索性数据分析


为什么叫探索?

因为:

刚拿到数据的时候,

你什么都不知道。

例如:

半导体数据:

590个传感器 1567片晶圆

你不知道:

哪些传感器坏了? 哪些数据缺失? 哪些特征最重要? 数据是不是平衡? 有没有异常值? 是不是重复数据?

所以:

第一步不是训练模型。

而是:

探索(Explore)数据。

这就是:

EDA。


为什么要做 EDA?

举个例子。

假设老板给你:

100万条数据

你直接:

RandomForest.fit()

可能:

准确率:

99%

结果:

后来发现:

90%的数据都是空值。

模型:

根本不可信。

所以:

EDA 就像:

医生看病:

先检查 ↓ 再开药

而不是:

直接吃药。

EDA 一般做什么?

通常包括下面几项。


① 数据长什么样?

例如:

features.shape

输出:

1567 × 590

说明:

1567个样本 590个特征

② 缺失值分析

例如:

features.isna().sum()

看:

哪些传感器缺失最多?

③ 类别比例

例如:

labels.value_counts()

看:

Pass 1463 Fail 104

是不是:

类别不平衡。


④ 特征分布

例如:

hist() boxplot()

看:

数据是不是: 正态? 偏态?

⑤ 异常值

例如:

100 101 99 100 10000

最后:

10000

就是:

异常值。


⑥ 特征之间关系

例如:

相关性:

Feature A Feature B 0.99

说明:

高度相关。

可能:

后面:

做:

PCA SelectKBest

⑦ 数据质量

例如:

重复数据:

有没有? 空数据? 重复样本?

EDA 的最终目的

很多人以为:

EDA:

就是:

画图。

其实:

不是。

真正目的只有一句话:

了解数据,发现问题,为后续的数据清洗、特征工程和模型训练提供依据。


在你的 SECOM 项目里

EDA 就是:

读取数据 ↓ 统计样本数量 ↓ 统计Pass/Fail比例 ↓ 统计缺失值 ↓ 画缺失值图 ↓ 画类别分布 ↓ 分析异常值 ↓ 分析相关性 ↓ 决定下一步怎么清洗数据

所以:

你现在做的:

01_data_exploration.ipynb

就是:

整个项目的:

EDA(探索性数据分析)阶段。


最后送你一个 AI 项目通用流程(以后所有 GitHub 项目几乎都遵循)

数据集 │ ▼ EDA(探索数据) │ ├── 数据规模 ├── 缺失值 ├── 类别比例 ├── 特征分布 ├── 异常值 └── 相关性 │ ▼ 数据清洗(Cleaning) │ ▼ 特征工程(Feature Engineering) │ ▼ 模型训练(Model Training) │ ▼ 模型评估(Evaluation) │ ▼ 模型解释(SHAP / LIME) │ ▼ 部署(Deployment)

你现在正处在第一步EDA。这一步看似没有训练模型,但它决定了后面所有步骤是否建立在可靠的数据基础上。在工业场景(半导体、材料、新能源)中,很多项目花在 EDA 和数据清洗上的时间往往比训练模型还要多。