任务:

  • 读描述,下载数据集

数据集:客户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 有几个显著的优点:

  1. 对分类特征的原生支持:CatBoost 可以直接处理分类特征,无需进行预处理(如独热编码)。这简化了数据预处理步骤,并通常能提高模型的性能。
  2. 避免过拟合: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