1 of 26

Machine Learning HW1

MLTAs

ntueemlta2022@gmail.com

2 of 26

Outline

  • HW1 Intro - PM2.5 Prediction
    • Tasks/Data Description
    • Training/Testing Data
    • Sample Submission
  • Kaggle
    • Kaggle Info
    • Kaggle Submission
    • Special Regulation
  • Grading / Assignment Regulation
    • Deadline
    • Grading Criteria
    • Hand-in Format
  • Other Policy
    • TA hour, Hint, etc

3 of 26

HW1 Intro - PM 2.5 Prediction

4 of 26

Task Description

  • 本次作業的資料是從行政院環境環保署空氣品質監測網所下載的觀測資料。
  • 希望大家能在本作業實作 linear regression 預測出PM2.5的數值。

5 of 26

Data Description

  • 本次作業使用的觀測記錄為某一年某地區的觀測資料,
    • training data: 同一年某地區的資料當中取樣出數天,以連續的24小時為一組數據,第k~k+7小時的觀測數據當作 train_X,第 k+8 小時的 PM2.5 當作 train_y。
    • testing data : 同一年某地區的資料當中取樣出數天,以連續的9小時為一組數據,前8小時的觀測數據當作 test_X,請預測第九小時的 PM2.5 當作 train_y
    • 一共預測 90 筆第九小時的 PM2.5。
  • Data含有 15 項數據可作為特徵:

AMB_TEMP, CO, NO, NO2, NOx, O3, PM10, WS_HR, RAINFALL, RH, SO2, WD_HR, WIND_DIREC, WIND_SPEED, PM2.5

### 到網站上爬出正確資料拿來做參考也將視為作弊,請務必注意!!!

Input shape: (n, feat, 8)

n: batch size

feat: number of features

8: number of days

6 of 26

Training Data

train_y1

某天觀測的

第 8 小時之

pm2.5

train_x1

某天觀測的

第 0~7 小時

每一筆資料都是相鄰的

以0~7筆去預測第8筆

示意圖(數字僅供參考)

7 of 26

Training Data

train_y2

某天觀測的

第 9 小時之

pm2.5

每一筆資料都是相鄰的

以0~7筆去預測第8筆

以1~8筆去預測第9筆

train_x2

某天觀測的

第 1~8 小時

示意圖(數字僅供參考)

8 of 26

Training Data

train_y3

某天觀測的

第 10 小時之

pm2.5

每一筆資料都是相鄰的

以0~7筆去預測第8筆

以1~8筆去預測第9筆,

以2~9筆去預測第10筆, 依此類推

train_x3

某天觀測的

第 2~9 小時

示意圖(數字僅供參考)

9 of 26

Testing Data

格式和 training data一樣

但請以0~7筆去預測 test_y1

以8~15筆去預測 test_y2

…..

總共產生90個預測結果

test_x1

第n天測資的

第 0~8 小時

test_x2

第n+1天測資的

第 0~8 小時

示意圖(數字僅供參考)

10 of 26

Sample Submission

  • 預測 90 筆testing data中的PM2.5值,將預測結果上傳至kaggle
    • Upload format : csv file
    • 第一行必須是 Id, Predicted
    • 第二行開始,每行分別為id值及預測PM2.5數值 (string, double)
  • 範例格式:

示意圖(數字僅供參考)

11 of 26

Kaggle

12 of 26

Kaggle Info

  • 請自行到kaggle創建帳號(務必使用ntu信箱
  • sample code : code
  • Link: https://www.kaggle.com/t/b404886ab374405ba8302aa1add3dab1
  • 個人進行、不須組隊
  • Team Name:
    • 修課學生:學號_任意名稱(ex: b09901666_只會tune參數)
    • 旁聽:旁聽_任意名稱

13 of 26

Kaggle Submission

  • Maximum Daily Submission: 5 times
  • test_data.csv的90筆資料分為:45筆public、45筆private
  • Leaderboard上所顯示為public score,在Kaggle Deadline前可以選擇2份submission作為最後的評分依據(public score & private score)
  • 計分排名:會考慮到public以及private的成績

14 of 26

Special Regulation

  • 限定開放使用套件
    • All python standard library
    • numpy
    • pandas
    • No other packages can be used!!
      • pytorch, sklearn, numpy.linalg.lstsq 是不可以用的,否則該程式不予計分。
      • 若對可使用套件有疑問,請聯絡助教。

15 of 26

Grading / Assignment Regulations

16 of 26

Deadline

  • Kaggle Deadline: 10/14/2022 23:59:59 (GMT+8)
  • Cool Deadline: 10/16/2022 23:59:59 (GMT+8) (晚 Kaggle 兩天)
  • 以 kaggle 的上傳時間為準,請勿壓線上傳!

17 of 26

Grading Criteria - kaggle (4% + Bonus 1%)

  • Kaggle Deadline : 10/14/2022 23:59:59 (GMT+8)
  • Private Score Point - 4%
    • 以 10/14/2022 23:59:59 於 public/private scoreboard 之分數為準 :
      • 超過public leaderboard的simple baseline分數 : 1%
      • 超過public leaderboard的strong baseline分數 : 1%
      • 超過private leaderboard的simple baseline分數 : 1%
      • 超過private leaderboard的strong baseline分數 : 1%
    • 以上皆須通過 Reproduce 才給分
  • Bonus(Optional)- 1%
    • 修課生 private leaderboard 排名前五名可繳交。
    • 繳交投影片描述實作方法,另外需錄製一份講解影片(少於三分鐘)作一個簡單的presentation,助教將公布給同學們參考

18 of 26

Grading Criteria - report (6%)

  • Programming Report - 2%
    • 解釋什麼樣的data preprocessing可以improve你的training/testing accuracy。請提供數據(例如 kaggle public score RMSE)以佐證你的想法。(1%)
    • 請實作 2nd-order polynomial regression model (不用考慮交互項)。(1%)
  • 貼上 polynomial regression 版本的 Gradient descent code 內容
  • 在只使用 NO 數值作為 feature 的情況下,紀錄該 model 所訓練出的 parameter 數值(w2, w1, b)以及 kaggle public score.

19 of 26

Grading Criteria - report (6%)

20 of 26

Hand-in Format

  • 一個 zip 檔案,檔案名稱為 學號_hw1.zip,需包含
    • 程式碼(任意名稱.ipynb
    • 程式報告+數學題(report.pdf

21 of 26

Hand-in Format:Report

  • 限制
    • 檔名必須為 report.pdf
    • 請在檔案中標明系級、學號、姓名
    • 按照report模板回答問題,勿更動題號順序
    • 若有和其他修課同學討論,請務必於題號前標明collaborator(含姓名、學號)
    • 若有其他參考資料也必須一併附上資料來源、出處

  • Cool Deadline: 10/16/2022 23:59:59 (GMT+8) (晚 Kaggle 兩天)

22 of 26

請把作業拍攝清楚(不要興奮到模糊)

23 of 26

其他規定 Other Policy

  • Lateness
    • Cool 遲交
      • 一天: 以小時為單位線性遞減至七折
      • 兩天: 從七折線性遞減零分
    • 不接受程式 or 報告單獨遲交
    • 若有特殊原因請儘速聯絡助教

  • Reproduce
    • 請同學確保你上傳的程式所產生的結果,會跟你在kaggle上的結果一致,基本上誤差在±0.5之間都屬於一致,若超過以上範圍,kaggle將不予計分

24 of 26

其他規定 Other Policy

  • Cheating
    • 抄code、抄report (含之前修課同學)
    • 開設kaggle多重分身帳號註冊competition
    • 於訓練過程以任何不限定形式接觸到testing data的正確答案
    • 不得上傳之前的kaggle競賽
    • 教授與助教群保留請同學到辦公室解釋coding作業的權利,請同學務必自愛

25 of 26

TA Hour

  • @ 博理530 Tue 13:20-15:20

26 of 26

Hint for HW1 programming

  • We provide some suggestion (but not necessary) to pass the baseline.
    • Simple baseline: You might not need so much feature (why?)
    • Strong baseline: Data preprocessing, Training config tuning, Feature selection. (How to define a good feature?)
    • Of course, you can pass the baselines without following the hints. But make sure you don’t use the packages which are not allowed!