端到端的不平衡数据流水线
将各项修正整洁地组合起来
端到端的不平衡数据流水线 是 CoddyKit 上的免费 NLP Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 NLP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 NLP Academy 课程共包含 4 节课。
整合所有步骤
现在,您将把每项修复串联成一个整洁的流程。一个流水线可以依次完成向量化、重采样和建模。
始终先划分数据
请先进行分层划分,使训练集和测试集保持相同的少数类比例。这样可以保证评估真实可靠。
X_tr, X_te, y_tr, y_te = train_test_split(X, y, stratify=y)将文本向量化
使用TF-IDF将原始文本转换为数字,使分类器获得可以学习的特征。
tfidf = TfidfVectorizer()在流水线内部重采样
请使用 imblearn 的流水线,使 SMOTE 只在训练折上运行,绝不泄漏到验证集或测试集。
from imblearn.pipeline import Pipeline连接各个阶段
按顺序列出各个阶段:先是向量化器,然后是 SMOTE,最后是模型。流水线会将它们作为一个拟合后的对象运行。
pipe = Pipeline([('tf', tfidf), ('sm', SMOTE()), ('clf', LogisticRegression())])一次整洁地完成拟合
对整个流水线调用 fit。每个步骤都会按顺序运行,并且只使用您的训练数据进行训练。
pipe.fit(X_tr, y_tr)用正确的方式评估
不要只看原始准确率。分类报告会清晰展示少数类的精确率、召回率和 F1。
from sklearn.metrics import classification_report
print(classification_report(y_te, pipe.predict(X_te)))无泄漏地验证
将流水线与分层交叉验证结合,使重采样在每一折内部重新进行。
调整阈值
从流水线获取概率,并选择一个阈值,使验证数据上的召回率达到目标。
proba = pipe.predict_proba(X_te)[:, 1]保存整个流水线
使用 joblib 持久化整个拟合后的流水线,这样以后进行推理时,每个步骤都会自动重复。
import joblib
joblib.dump(pipe, 'model.joblib')一个对象,结果可复现
由于向量化、平衡处理和建模都集中在一起,您的结果会保持可复现,也不会出现隐蔽的数据泄漏。🚀
快速检查
再来一道关于安全流水线的题。
回顾
进行分层划分,在流水线内部完成向量化和重采样,根据 F1 和召回率进行评估,调整阈值,然后将全部内容保存下来。🚀
用 AI 导师学习 Python — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「端到端的不平衡数据流水线」课时是免费的吗?
是的 — 「端到端的不平衡数据流水线」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 NLP Academy 课程的其余内容,请升级到 CoddyKit PRO。 NLP Academy 课程共包含 4 节课。
「端到端的不平衡数据流水线」这节课中我会学到什么?
将各项修正整洁地组合起来 你通过在浏览器中直接运行的动手代码来练习 NLP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 NLP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 NLP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「端到端的不平衡数据流水线」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 NLP Academy 课中编写并运行代码吗?
能。每节 NLP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 罕见类别为何会被忽略
- 重采样与类别权重
- 选择阈值与指标
- 端到端的不平衡数据流水线