李宏毅ML2021Spring HW1
任务目标
用深度学习做一个回归任务,通过CMU的一组问卷调查数据来预测新冠病毒阳性案例数。
数据特征
-
States(40个州,编码为one-hot向量)
- AL,AK,AZ
-
COVID-like illness(4个疑似COVID的症状)
- cli,ili
-
Behavior Indicators(8个行为指标)
- wearing_mask, travel_out_state
-
Mental Health Indicators(5个精神情况)
-
Tested Positive Cases(检验为阳性的概率)
上面的数据都为数值型的百分数(除了States之外)
模型评估指标为:RMSE
Simple baseline
只需要运行一遍
https://colab.research.google.com/github/ga642381/ML2021-Spring/blob/main/HW01/HW01.ipynb
Medium baseline
只需要提取40个州的信息和2天阳性检测的结果(减少特征来提高模型识别率)
# TODO: Using 40 states & 2 tested_positive features (indices = 57 & 75)
feats = list(range(40)) + [57] + [75]
Hard baseline
没跑进hard baseline =-= 尝试了许多调参方法最好的结果是1.02左右
学习了一下讨论区的一位大佬的解法https://www.kaggle.com/c/ml2021spring-hw1/discussion/264579
我个人在使用他的代码后成功跑进了一次Hard Baseline,感觉最重要的点是
-
使用sklearn特征选取求出的14个特征
-
网络结构挺关键的, 输入层 → Linear → BatchNorm1d → Dropout → LeakyReLU → Linear → 输出层
-
batch_size 和 正则化
调参蛮玄学的,即使代码一模一样,最后train_loss也不一样。当然score也会不一样,所以我建议各位和我一样的新手尝试十几次就够了,与其浪费时间,不如多读下代码加深对DNN的理解。
代码解释
之后有空会更新到GitHub上面~
最后推荐一下我正在用的一个,蛮不错的深度学习平台