Reflection: Deep Learning with R-Ch4.2
ch4.2
### 4.2. EVALUATING MACHINE-LEARNING MODELS
#### 4.2.1. Training, validation, and test sets
* 資料分成三個部分 training, validation, test
* 用 training data 訓練,並用 validation data 驗證,當模型準備好時,最後用 test data 做最後的測試。
* 建立模型始終涉及超參數的微調,如每層的大小或是層數。(參數是指網路的權重)
* information leaks: 每次根據模型在驗證集上的性能調整模型的超參數時,一些有關驗證數據的信息都會洩漏到模型中
* 如果重複多次(運行一個實驗,對驗證集進行評估並最終修改模型),那麼您將把與驗證集有關的越來越多的信息洩漏到模型中。
* 模型不應收集任何有關測試集的信息,即使是間接訪問也不行。如果已根據測試集性能對模型進行了任何調整,那麼generalization度量將存在缺陷。
* 三個經典的評估方法:
- Simple hold-out validation split
- k-fold validation
- iterated k-fold validation
* 它包括多次應用K-fold驗證,在將數據拆分為K方式之前,每次都要對數據進行混洗。最終分數是在每次K-fold驗證中獲得的分數的平均值。請注意,最終需要訓練和評估P×K模型(其中P是使用的迭代次數),這可能會非常昂貴。
#### 4.2.2. Things to keep in mind
* Data representativeness: 訓練集和測試集都要可以代表手頭的數據。在將數據分為訓練集和測試集之前,應先隨機洗亂數據(randomly suffle)。
* The arrow of time: 如果要根據過去預測未來(例如,明天的天氣,股票變動等),則在分割數據之前,請勿隨意洗牌
* Redundancy in your data: 確保 training data 和 validation data 沒有重疊的部分