對機器學習開發人員來說,資料對傳統程式設計人員來說至關重要。本課程的重點是您應詢問資料的問題類型。
視訊講座摘要
機器學習系統的行為取決於其輸入功能的行為和特性。隨著這些功能的輸入資料改變,您的模型也是如此。這種變更有時是理想的,但有時不會這麼做。
在傳統軟體開發作業中,您著重於程式碼,而非資料。在機器學習開發作業中,雖然程式碼仍是工作的一部分,但您的重點必須擴展到包含資料。例如,在傳統軟體開發專案中,最佳做法是撰寫單元測試來驗證程式碼。在機器學習專案中,您還必須持續測試、驗證及監控輸入資料。
例如,您應該持續監控模型,移除未使用的 (或很少使用) 的功能。請想像一下,某些功能對模型幾乎沒有或完全沒有作用。如果該特徵的輸入資料突然發生變化,模型的行為也可能會意外地改變。
可靠性
對於輸入資料的可靠度,請提出一些問題:
- 訊號是否隨時都可用,或者是來自不可靠的來源?例如:
- 信號是否來自伺服器負載量過高的伺服器。
- 這個信號是否來自每年 8 月度假的人?
版本管理
關於版本管理:
- 計算這項資料的系統是否有異動?如果是這樣的話:
- 頻率為何?
- 如何得知系統何時變更?
有時資料來自上游程序,假如該程序突然變更,則模型可能會受到影響。
建議您針對從上游程序收到的資料建立自己的副本。然後,只有當您確定資料可以安全的情況下,再進入上游資料的下一個版本。
必要性
以下問題可能提醒您正規化:
- 相關功能的實用性是否合理?
持續在模型中加入更多功能。舉例來說,假設您發現一項新功能會使模型看起來更準確。精確度越高,精確度就越低。然而,您的營運負擔現在已經增加。額外的功能可能會意外降級,因此您必須自行監控。因此,請您在仔細思考以下要素後,再考慮如何提高短期成效。
關聯性
某些特徵和其他 (正或負) 相關,請思考以下問題:
- 這些功能是否相互連結?如果需要更多策略,才能把這些功能分離出來?
意見回饋循環功能
有時候,模型可能會影響其訓練資料。例如,某些模型的結果是直接或間接輸入該模型的特徵。
有時某個模型可能會影響其他模型。例如,請考慮使用兩種模型來預測股價:
- 模型 A 是預測模型錯誤。
- 模式 B:
由於模式 A 有錯誤,因此誤用在 X 股票中買股票。 這類交易可提高股票 X 的售價。模式 B 使用「股票 X」的價格做為輸入特徵,因此模型 B 可以輕鬆針對股票 X 股票的價值做出一些錯誤結論。因此,模型 B 可以根據模型 A 的不良行為,購買或出售股票 X 的股份。而模式 B 的行為可能影響模型 A,可能觸發 Tulip 熱潮或 X 公司股票的投影片