天天看點

資料科學家:不可或缺的四種思維

作者:新語資料故事彙
資料科學家:不可或缺的四種思維

在現代資料驅動的世界中,資料科學家扮演着至關重要的角色。他們不僅需要精通機器學習、統計和資料可視化,還需要具備解決複雜問題的能力。然而,真正讓資料科學家脫穎而出的,是他們獨特的思維方式。正如軟體開發工程師不僅需要掌握程式設計語言和工具,更需要掌握解決問題的方法和思維模式,資料科學家也需要牢記一些原則性的方法。

資料思維、業務思維、疊代思維和工程思維,這四種核心思維模式是每個資料科學家必備的技能。本文将深入探讨這四種思維模式,幫助您在資料科學的道路上走得更遠,取得更大的成功。

資料思維:優先考慮資料和資料品質

資料科學家:不可或缺的四種思維

在資料科學領域,了解并優先考慮資料是至關重要的。資料科學新手和與資料科學家合作的非技術人員非常容易犯的一個大錯誤是過于關注模型方面,例如:

  • 選擇最複雜的模型
  • 過度調整超參數
  • 試圖用機器學習解決所有資料問題

資料科學和機器學習領域發展迅速,新的庫、更快的技術和更好的模型不斷湧現。然而,最複雜和最新的選擇并不總是最好的。在選擇模型時需要考慮許多因素,甚至包括是否真的需要機器學習。

一個常見的任務是異常值檢測。在進行異常值檢測時,選擇合适的方法非常重要。盡管複雜的機器學習方法可能看起來很有吸引力,但有時更簡單的方法更有效。例如,使用z-score進行異常值檢測,因為它能夠捕捉大部分相關異常,且具有高度可解釋性,易于向沒有技術背景的利益相關者解釋,同時計算簡單,幾乎不需要更多記憶體或計算資源。

如果決定采用機器學習方法,首先應該優先提高資料品質,包括資料清洗、特征選擇和特征工程。不要過度關注超參數調整,因為資料品質不佳,再多的調整也無濟于事。無論搜尋空間多大,花費多長時間進行優化,如果資料本身品質不佳,效果仍然有限。

優化資料品質的一些具體措施包括:

  • 使用z-score或IQR等方法移除異常值
  • 用之前的值或中位數填充缺失資料(插值),前提是缺失值不多
  • 為模型添加新特征,如時間序列資料中的不同時間特征組合,以及受意外事件影響的資料可以添加二進制訓示變量

資料思維的核心在于優先考慮資料品質和可解釋性,避免過度依賴複雜的模型和過度調整超參數。在確定資料品質的前提下,再進行模型優化,才能事半功倍。

業務思維:掌握領域知識

資料科學幾乎存在于任何領域,如能源、金融、市場營銷、社交媒體和食品等等。這意味着你的技能在無數領域都能産生深遠的影響。領域知識指的是對特定領域或主題的專業知識或了解。

以能源行業為例,假設你是一名行業内的資料科學家,想要建構一個預測建築電力消耗的模型。你如何知道哪些特征可以用來構模組化型?你需要了解哪些變量通常會影響電力使用,例如:

  • 溫度
  • 一天中的小時
  • 一周中的哪一天
  • 一年中的哪個月

這些是一個好的起點,但還需要更深入的了解。例如,了解建築的類型:是商業、工業/制造業,還是住宅?這将影響建築對上述變量的響應。

商業建築通常在典型工作時間(周一至周五的9點到5點)最繁忙,可以包含一個二進制變量如“工作時間”或“周末”。還需要考慮到節假日。制造工廠的工作時間和天數可能不同,住宅建築也有不同的作息時間,并且受到節假日的影響也不同。

領域知識不僅幫助你首次構模組化型,還能指導你最終傳遞的結果。例如,在檢測異常值時,通常情況下,z-score大于3或小于-3的值被視為異常值。然而,領域知識和與客戶的定期互動告知我們,隻需要關注電表讀數過高的情況,而不需要關注讀數過低的情況。是以,我們将初始z-score門檻值設定為3,僅将超過3的值視為異常值。

了解問題的背景是建構和訓練有效模型的前提。增加領域知識意味着培養在你的行業中解決問題的直覺。

疊代思維:資料科學的疊代循環過程

資料科學家:不可或缺的四種思維

資料科學家必須明白,他們的工作大多數是疊代和循環的。正因如此,這被稱為機器學習生命周期,而不是機器學習直線過程。通常,你會開發一個模型,進行測試,甚至部署它——但在生産環境運作幾周後,可能又會回到開發環境。這并不是失敗,而是資料科學項目的常态。

為了成功,你需要建立一個不僅允許疊代開發,還鼓勵這種開發方式的系統。資料科學家可以通過運作實驗來實作這一點。實驗的基本過程是給定不同的條件運作模型(例如測試不同的特征、以不同方式預處理資料、縮放資料等)并比較性能。目标是找到最佳的模型用于部署。

運作實驗可能很繁瑣,尤其是不斷重複運作Notebook、将結果複制粘貼到表格中逐一比較。這種方法記錄每個重要資訊需要大量時間和精力,不僅包括MSE、R2和MAPE等名額,還可能包括:

  • 訓練集和測試集的大小(對于時間序列資料,還需記錄起止日期)
  • 模型訓練的日期/時間
  • 特征重要性或系數
  • 模型檔案
  • 訓練和測試資料檔案
  • 其他可視化圖表,如殘差圖、資料的折線圖/散點圖

當然,你可以手動在不同位置存儲所有這些資訊,但誰願意這麼做呢?如果你要更改模型五次,這會變得非常混亂。

有許多專為資料科學實驗跟蹤而建構的平台,其中MLFlow是最流行的之一。SmartNotebook是一個基于notebook面向資料科學家的資料科學平台,它具有直覺的界面和出色的使用者體驗,SQL和Python內建,可以跟蹤檔案、圖表和許多其他形式的模型中繼資料和工件。可以看到每個實驗的運作順序,并進行比較。

工程思維:資料科學中的軟體工程原則

資料科學家:不可或缺的四種思維

資料科學不僅僅是資料分析和模組化,還涉及到将解決方案有效地部署到生産環境中。這需要工程思維的引入,即遵循軟體工程的最佳實踐,以確定解決方案的可擴充性、可維護性和可靠性。

可擴充性:在資料科學項目中,可擴充性是指系統能夠處理日益增加的資料量和使用者需求。為了實作可擴充性,資料科學家應考慮以下幾點:

  • 子產品化代碼:将代碼分成小的、可重用的子產品,以便在不同的項目中複用。
  • 分布式計算:利用分布式計算架構,如Apache Spark,以處理大規模資料集。
  • 雲服務:采用雲服務,以便動态調整計算資源以應對變化的需求。

可維護性:資料科學項目需要不斷更新和優化,是以可維護性至關重要。以下是一些實作可維護性的最佳實踐:

  • 代碼版本控制:使用Git等版本控制系統來管理代碼變化,確定團隊協作順暢。
  • 文檔編寫:為代碼和資料流程編寫詳細的文檔,使團隊成員能夠快速了解和接手項目。
  • 測試驅動開發:編寫單元測試和內建測試,以確定代碼的穩定性和可靠性。

可靠性:資料科學解決方案在生産環境中的可靠性直接影響業務的穩定性和使用者體驗。以下是一些提高可靠性的方法:

  • 監控和報警:設定監控系統和報警機制,及時發現和解決問題,確定系統的持續運作。
  • 錯誤處理:編寫健壯的錯誤處理代碼,以應對各種異常情況,防止系統崩潰。
  • 自動化部署:使用CI/CD(持續內建和持續部署)工具,如Jenkins或GitLab CI,将代碼自動化部署到生産環境中,減少人為錯誤。

工程思維在資料科學項目中的應用能夠顯著提高項目的成功率和影響力。通過遵循軟體工程的最佳實踐,資料科學家可以建構出高效、穩定和可擴充的解決方案,為企業創造更大的價值。掌握工程思維不僅有助于解決目前的問題,更能為未來的創新和發展奠定堅實的基礎。

探讨了資料科學家必備的四種思維模式:資料思維、業務思維、疊代思維和工程思維。從優先考慮資料品質、掌握領域知識、疊代開發到軟體工程原則的應用,逐漸揭示了如何有效解決複雜問題并部署高效解決方案。每個思維模式都強調了在資料驅動世界中的重要性和應用方法,幫助資料科學家在不同領域取得成功。

繼續閱讀