高级机器学习:二分类
Comment任务:
- 读描述,下载数据集
数据集:客户id,名字,信用点,位置,性别,年龄,年限,存款,产品数量,有信用卡,活跃,月薪
预测:客户是不是跑路了
实现:任何算法,任何语言。
网络设计:根据问题的具体需求设计神经网络的结构。对于简单的二分类问题,一个两到三个隐藏层的小型 MLP 通常就足够。
激活函数:对于隐藏层可以使用 ReLU 激活函数,因为它有助于解决梯度消失问题,并且计算上比较高效。输出层因为是二分类问题,所以建议使用 sigmoid 激活函数。
损失函数:使用交叉熵损失函数(binary cross-entropy),这是处理二分类问题的标准选择。
优化器:可以使用 Adam 或 SGD(带动量),这些优化器能帮助快速收敛且通常表现良好。
正则化:为了避免过拟合,可以在训练过程中加入 Dropout 层或使用 L2 权重正则化。
**可以作一些仔细的分析。
输出:$yourId.txt,1000 lines,没有文件头的结果。
- 实现算法,输出预测
- 写报告
1)你的理解和分析
2)算法的动机,介绍算法的背景
3)算法的技术细节,特别是要包括伪代码
4)描述或分析算法的表现
5)总结和(可选的)讨论
使用 LaTeX 模板撰写含有英文摘要的中文报告。命名为 report.pdf
- 提交
1)$yourId.txt
2)report.pdf
3)源代码
打包zip,命名为 $Id_v$version.zip。e.g. 1912xxx_v1.zip
使用南大表格提交
Baselines:
经典算法包括随机森林,逻辑回归,XGBoost GBST,SVM,MLP,GBDT 等等。可以参考这些算法的表现。
alg | f1 |
---|---|
RF | 0.583 |
LR | 0.487 |
SVM | 0.568 |
MLP | 0.586 |
GBDT | 0.603 |
RFE (n=9) | 0.609 |
算法选择
CatBoost 是一种流行的梯度提升决策树(Gradient Boosting Decision Tree, GBDT)算法,由 Yandex 开发。它是专门为处理分类特征而优化的机器学习算法,同时也适用于回归问题。CatBoost 有几个显著的优点:
- 对分类特征的原生支持:CatBoost 可以直接处理分类特征,无需进行预处理(如独热编码)。这简化了数据预处理步骤,并通常能提高模型的性能。
- 避免过拟合:CatBoost 实现了几种机制来减少过拟合的风险,例如具有有序提升的默认树学习策略。这种技术在训练每棵树时使用不同的数据子集,从而提高了模型的泛化能力。
性能 | baseline | smoothing + binning | |
---|---|---|---|
f1 | 0.598446 | 0.630029 | |
acc | 0.827778 | 0.846667 | |
recall | 0.641667 | 0.652778 | |
precision | 0.560680 | 0.608808 | |
auprc | 0.691654 | 0.693995 | |
auc | 0.856181 | 0.862392 | |
macro f1 | 0.744414 | 0.766660 |
数据预处理
观察训练集上属性值的数量可知,Surname 是 High-catdinality categorial variables. 做 polynomial smoothing
提高泛化能力,对Balance和Salary 做等频分箱
调参
depth, score_function,list of cat features