Final Project - Predict Calorie Expenditure
題目敘述
請參加此競賽:Predict Calorie Expenditure (Playground Series - Season 5, Episode 5)。
作業資訊
- Deadline:
- 預測與程式:05/31 (六) 08:00
- 報告:06/08 (日) 15:00
- 繳交方式: eeclass 作業上傳區,「預測成績與程式」和「報告」會分別開設繳交區,細節規定如下
- 預測成績:檔名應為 lb_result.txt,內容只有一行,該行僅含有一個浮點數,為你在排行榜上所取得的最佳評估結果。
- 若 eeclass 系統提示檔案太小無法上傳,請從第二行起任意增加半形的英文、數字、符號、空白或空行等內容。
- 程式
- 只須執行一個 *.py 檔案時,該 *.py 檔案名稱須名為 run.py,或以 run_ 開頭,餘下的部分原則上比照 Python 變數命名規則。
- 須執行超過一個 *.py 檔案時,這些 *.py 檔案名稱須依照執行順序,命名為 run1.py、run2.py、... ,或以 run1_、run2_、... 為開頭,且最多只能編號至 4。餘下的部分一樣原則上比照 Python 變數命名規則。
- 若要撰寫被用來 import 的檔案,則檔名除了不能以 run 或長相類似的單字(num, rum, ...)開頭以外,不受限制。
- 若有嘗試多種方法,應繳交你取得最佳結果的方法。
- 報告:檔名為 report.txt 或 report.pdf。
- 前述的內容請直接上傳繳交,不要壓縮。
- 前述之外的內容(包含但不限於競賽資料),不應在繳交之列。
- Demo 時間地點: 06/05 原上課時段於原教室,視情況使用 R6 或 Ra 時段。有可能只選 15 至 20 人來口頭回答問題,具體時段與名單預計最遲於當天 08:00 前公布,各位有義務注意信箱。
- 評分方式
- 預測準確度(30%)
- 依班級整體排名給予。
- 程式繳交項目不合規定,或者你交了多餘的東西時,除了成績抽驗結果的差距過大以外,折扣會算在這一項上面。
- Pylint (10%):
- 每個 *.py 檔案的評分指令皆為「pylint --disable=C0114,C0116,C0209,R1719,W0621,W0632,W0702,W1514 your_file.py」。評分結果以教師安裝的版本(3.3.0)為準。
- 每個 *.py 檔案的給分方式為 max(pylint-score, 0),本項評分取所有檔案的最小值。
- 若在任一檔案的程式碼中,有試圖關閉或避開評分指令未列出的評比項目等行為時,本項不給分。
- 報告(60%):依教師主觀喜好排序給分,合於基本規定者只保障本項及格(即本項之 60%)。
程式撰寫說明
- 請以右列項目請直接存放在同一個目錄下的狀況來撰寫程式:題目給定之 train.csv、題目給定之 test.csv、所有程式碼、程式產生的最後的 submission file。
- 程式的中間產物可以直接存放在同一個目錄下,亦可建立子資料夾存放,唯子資料夾應能由程式判斷是否需建立。
- 於程式中讀寫資料時,應使用盡可能短的相對路徑。
- 任何「run」開頭的程式碼,必須能以不帶參數的方式在 command line 執行,並且在執行過程中,不必接受使用者的輸入。
- 請盡可能避免使用隨機程度過大的模型來進行預測。前述「隨機程度過大」之參考標準,為你所宣稱的成績,跟教師抽驗結果的成績,其差距在全班預測成績的 1 個標準差以上,即 1 * np.std(whole_class_claimed_scores) 以上。
報告說明
提示與注意事項
- 預測或程式未準時繳交者,本專案只給予報告分數,並且會打八折。
- 報告是否繳交不影響是否及格時,不接受遲交。
- 使用 AI 輔助完成者,有義務將相關對話紀錄保留,以供查閱。
- 本專案允許 import numpy、scikit-learn、xgboost、lightgbm、catboost,以及任何 Python 內建之函式庫。若有預計在報告內放入實驗結果的相關圖片,可 import matplotlib。注意:pandas、PyTorch、Tensorflow、seaborn 等函式庫不允許使用。若有其他需求者,請找教師討論。
- 使用 optuna 等工具搜尋超參數者,相關規則如下
- 必須以「將找到的超參數複製到 run*.py 內」的方式使用,且不能讓搜尋工具在執行 run*.py 時被呼叫到。
- 搜尋超參數的程式碼可以不必隨「預測與程式」繳交,但建議在報告中提及,並附上部分或全部的相關程式碼。