任務目標
用深度學習做一個回歸任務,通過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上面~
最后推薦一下我正在用的一個,蠻不錯的深度學習平台
