資料依附元件

對機器學習開發人員來說,資料對傳統程式設計人員來說至關重要。本課程的重點是您應詢問資料的問題類型。

資料依附元件

  • 輸入資料 (特徵) 會決定機器學習系統的行為。
    • 我們撰寫軟體程式庫的單元測試,但資料會怎麼樣?
  • 選擇輸入訊號時,請務必謹慎。
    • 在決定要採用哪些軟體程式庫時,
  • 可靠性
    • 如果無法使用訊號,會發生什麼事?你知道嗎?
  • 可靠性
    • 如果無法使用訊號,會發生什麼事?你知道嗎?
  • 版本管理
    • 計算這個信號的系統是否有異動?頻率為何?這樣會發生什麼情況?
  • 可靠性
    • 如果無法使用訊號,會發生什麼事?你知道嗎?
  • 版本管理
    • 計算這個信號的系統是否有異動?頻率為何?這樣會發生什麼情況?
  • 必要性
    • 信號的實用性是否合理?
  • 關聯性
    • 我所有的輸入信號是否都相互連結,而我們需要其他策略來區隔成效嗎?
  • 關聯性
    • 我所有的輸入信號是否都相互連結,而我們需要其他策略來區隔成效嗎?
  • 意見回饋循環功能
    • 哪些輸入信號可能會受到模型輸出結果的影響?

視訊講座摘要

機器學習系統的行為取決於其輸入功能的行為和特性。隨著這些功能的輸入資料改變,您的模型也是如此。這種變更有時是理想的,但有時不會這麼做。

在傳統軟體開發作業中,您著重於程式碼,而非資料。在機器學習開發作業中,雖然程式碼仍是工作的一部分,但您的重點必須擴展到包含資料。例如,在傳統軟體開發專案中,最佳做法是撰寫單元測試來驗證程式碼。在機器學習專案中,您還必須持續測試、驗證及監控輸入資料。

例如,您應該持續監控模型,移除未使用的 (或很少使用) 的功能。請想像一下,某些功能對模型幾乎沒有或完全沒有作用。如果該特徵的輸入資料突然發生變化,模型的行為也可能會意外地改變。

可靠性

對於輸入資料的可靠度,請提出一些問題:

  • 訊號是否隨時都可用,或者是來自不可靠的來源?例如:
    • 信號是否來自伺服器負載量過高的伺服器。
    • 這個信號是否來自每年 8 月度假的人?

版本管理

關於版本管理:

  • 計算這項資料的系統是否有異動?如果是這樣的話:
    • 頻率為何?
    • 如何得知系統何時變更?

有時資料來自上游程序,假如該程序突然變更,則模型可能會受到影響。

建議您針對從上游程序收到的資料建立自己的副本。然後,只有當您確定資料可以安全的情況下,再進入上游資料的下一個版本。

必要性

以下問題可能提醒您正規化

  • 相關功能的實用性是否合理?

持續在模型中加入更多功能。舉例來說,假設您發現一項新功能會使模型看起來更準確。精確度越高,精確度就越低。然而,您的營運負擔現在已經增加。額外的功能可能會意外降級,因此您必須自行監控。因此,請您在仔細思考以下要素後,再考慮如何提高短期成效。

關聯性

某些特徵和其他 (正或負) 相關,請思考以下問題:

  • 這些功能是否相互連結?如果需要更多策略,才能把這些功能分離出來?

意見回饋循環功能

有時候,模型可能會影響其訓練資料。例如,某些模型的結果是直接或間接輸入該模型的特徵。

有時某個模型可能會影響其他模型。例如,請考慮使用兩種模型來預測股價:

  • 模型 A 是預測模型錯誤。
  • 模式 B:

由於模式 A 有錯誤,因此誤用在 X 股票中買股票。 這類交易可提高股票 X 的售價。模式 B 使用「股票 X」的價格做為輸入特徵,因此模型 B 可以輕鬆針對股票 X 股票的價值做出一些錯誤結論。因此,模型 B 可以根據模型 A 的不良行為,購買或出售股票 X 的股份。而模式 B 的行為可能影響模型 A,可能觸發 Tulip 熱潮或 X 公司股票的投影片