在工作中,許多上層管理者或老闆常常對具體要做什麼並不清楚,只是聽說機器學習能帶來巨大效益,便急於要求團隊開始進行機器學習專案。同時,初學者常常直接跳到模型訓練階段,忽視了前期的關鍵步驟,這樣的情況容易導致專案後期面臨諸多挑戰。明確定義問題有助於避免「為了機器學習而機器學習、為了 AI 而 AI」的陷阱。唯有團隊聚焦真正重要的問題,才能節省資源,防止浪費時間及金錢在無意義的事情上。此外,即使問題定義清晰,如果數據不夠豐富或質量不高,模型的效果也無法保證會很好。
[source]
問題定義是機器學習的第一步,它的關鍵在於明確我們想要解決什麼問題。例如是要進行分類還是回歸?是要預測未來的趨勢還是識別特定的模式?這些問題必須在專案開始之前就要明確,否則整個專案會變得沒有方向。有效定義問題的關鍵在於與利益相關者深入溝通,理解業務痛點和目標,將業務問題轉化為機器學習任務(如「提高客戶留下率」轉化為「預測客戶流失風險」的分類問題),並設立具體可衡量的目標(如「將客戶流失率降低5%」而非模糊的「提高留下率」)。同時也要清楚專案可能面臨的局限性和挑戰。
我們可以通過以下幾個步驟來進行有效的問題定義:
目標明確化:目標應該是具體且可衡量的,我們需要明確預測的對象和範圍。例如,預測未來一年的銷售量,我們需要知道是預測哪種產品的銷售量,以及在什麼地區和時間範圍內進行預測。如果我們的目標是進行分類,那麼我們需要明確分類的對象和類別。例如,識別手機簡訊是詐騙還是非詐騙,我們需要具體確定詐騙訊息的標準和範疇 (如:詐騙訊息的定義是什麼?標準是誰制定的?要確定這個標準不會因人而異或要讓同一個人標註,以避免主觀因素的偏差)
了解業務背景:這通常需要與對應領域的專業人士合作。例如,如果我們要進行建築成本預測,我們應該尋求建築師、營建工程專家、成本估算師等人的意見。通過與這些專家交流,我們可以確認所定義的問題是否真的能解決實際業務需求,是否能帶來實質性的效益。他們可以幫助我們理解問題的複雜性,例如在建築成本預測中可能需要考慮的材料價格波動、勞動力成本、項目規模、地理位置等多個因素。同時,專家們也可以幫助我們確定問題的邊界,明確什麼是在我們的控制範圍內,什麼是需要假設或簡化的。
問題分解:通過將大問題分解為更小、更具體的子問題,不僅有助於更好地理解每個子問題的特徵和挑戰,還能使團隊能夠更有效地應對和解決這些問題。例如,在智慧醫療中,如果我們想要預測病人的治療方案,可以將這個大問題分解為不同類型的治療方式分類,每種治療方式可能涉及不同的病情分類、病人特徵、以及治療效果的預測等具體問題。這樣的分解不僅使得問題更具可管理性,同時也更有助於確保最終的機器學習模型能夠準確地滿足醫療實踐中的實際需求和預期效果。
假設驗證:在定義問題時,我們通常會做出一些假設。重要的是要明確這些假設,並在可能的情況下進行初步驗證。例如,在預測銷售量時,我們可能假設過去的銷售模式對未來仍然適用。在識別垃圾郵件時,我們可能假設垃圾郵件的特徵是相對穩定的。我們需要與業務專家討論這些假設是否合理,是否需要考慮其他因素。這個過程可以幫助我們避免基於錯誤假設而做出不恰當的問題定義,從而確保我們的分析方向是正確的。通過仔細驗證我們的假設,我們可以更好地理解問題的本質,並為後續的數據收集和分析工作奠定更加堅實的基礎。
[source:image_creators]
沒有高質量的數據,即使問題定義得再好,也難以得到有價值的結果。想必大家都聽過「垃圾進垃圾出」的道理,主要就是在說數據品質決定了結果的質量。模型的性能上限也是取決於數據的質量,高質量的數據可以彌補算法的不足,但再好的算法也無法彌補糟糕的數據。盡可能完整地收集數據是重要的一環。即使後續的數據處理可以解決一些缺失或不完整的數據,但在收集階段保持數據的完整性可以減少後續的工作量,並提高最終模型的準確性。
數據收集的來源包含:
在收集數據時,保持數據的完整性和標註的準確性很重要。這些步驟確保我們所使用的數據是可靠、高效且有價值的。至於要如何確保數據質量呢?最主要是去看數據的相關性、完整性、準確性、代表性及多元性。
Note: 代表性強調數據樣本反映整體特徵分佈,而多樣性則強調數據集的覆蓋廣泛性和應用靈活性。
在開始機器學習專案之前,投入更多時間和精力在問題定義和數據收集上是非常值得的。雖然這階段可能很耗時,但在機器學習領域,這些前期的工作是不可少的。在接下來的文章中,我們將進一步探討數據處理、特徵工程、模型選擇和評估等後續步驟。