Appearance
淘天 Problem 6:蘑菇毒性分类
- 来源:
noai-mis/淘天/Problem 4 + 6 - 类型:Tabular ML
- 原始资料:
lesson.ipynb、NOAI竞赛实战课程大纲最终版.pdf - 题面完整性:教学 notebook 提及,缺少独立题面
- 解法资料完整性:教学材料中作为数据质量案例
题面大意
判断蘑菇是否有毒。课程大纲将其与信用卡欺诈检测放在“不平衡分类与数据质量”一课中,用来讲解数据泄露、特征重要性和“完美指标是否可信”。题目重点不在复杂模型,而在验证数据是否存在泄漏、重复、过于简单的规则或数据质量问题。
数据特点
蘑菇数据通常是类别特征为主,如颜色、气味、形态等。有些字段可能几乎直接决定毒性,导致模型很容易达到接近完美指标。教学材料强调即使指标完美,也要检查其可信度。
考点
核心考点是数据质量审计。高分不一定意味着模型强,可能是任务本身有强规则、数据泄漏、重复样本或训练测试分布过于相似。课程大纲要求在蘑菇数据集上训练模型后检查 feature_importances 是否存在异常,并有意引入数据泄露,观察 AUC 的人为抬升。
涉及知识点
- 类别特征编码。
- 决策树/随机森林。
- 数据泄漏与重复检测。
- Accuracy、Precision、Recall、F1。
- 可解释规则。
- Feature importance 异常检测。
- 人为泄露实验与 AUC 抬升。
解法思路
按课程大纲,先对类别特征做 one-hot,训练决策树/随机森林/逻辑回归,记录 accuracy、precision、recall、F1 和 AUC。若指标接近 100%,不要立即结束,而要进入数据质量审计:检查是否有单个特征能完全区分类别,训练测试是否有重复,特征是否包含标签后验信息,类别编码后是否意外保留了目标变量。
然后查看模型内置的 feature_importances_ 或单特征 AUC/互信息,定位异常强的字段。用浅决策树提取规则,判断规则是否符合蘑菇毒性领域常识;如果一个字段几乎单独决定标签,要进一步判断它是合法强特征还是泄露字段。课程还建议做一个有意引入泄露的实验,例如把标签或标签变体混入特征,观察 AUC 如何被人为抬高,从而训练识别泄露的能力。
可选/多种解法
浅决策树:解释性强,适合找关键规则。
随机森林:稳健 baseline。
特征审计:单特征 AUC/互信息、重复样本检查。
人为泄露实验:教学用对照,帮助理解异常高分为什么危险。
特殊技巧
完美或近完美指标要反向警惕。可逐个删除最强特征观察性能变化,判断模型是否依赖单一泄漏字段。类别特征 one-hot 后要保证训练测试列一致。feature importance 不只是解释模型,也可以作为泄露检测工具。
调参优化
蘑菇可食性分类通常类别特征强,调参重点在编码、模型复杂度和可解释性,而不是盲目追求更高 accuracy。建议比较 one-hot、ordinal 编码、CatBoost 原生类别处理,以及树模型深度、叶子数、最小叶样本数和正则强度。若存在缺失值或 ? 类别,应把“未知”作为单独类别并测试是否合并。安全场景下阈值应偏向减少有毒误判为可食,需在验证集上按召回或加权 F-score 选阈值;若某组参数得到完美分数,还要检查是否由泄露或重复样本造成。
注意事项
该题在目录中与 Problem 4 合并于教学 notebook,独立数据和评分文件未在当前范围中明确出现;本文按教学内容整理。若实际竞赛使用,应补充正式数据路径和提交格式。
推广意义
它提醒竞赛选手:模型评估不只是追分,还要判断数据是否可信。这个意识对任何高准确率任务都重要。