筆者邀請您,先思考:
1 如何做敏捷資料科學專案?
幾天前,我讀了Shay Palachy和Ori Cohen關於敏捷資料科學專案管理的兩篇很棒的文章。這些文章討論了資料科學專案的不同階段,以及它們與常規軟體專案有何不同。這些文章啟發我寫下自己對敏捷資料科學的看法,這些看法關註研究方法,而不是整個專案階段。
敏捷資料科學研究非常困難,當您不確定您的問題是否可以解決時,如何進行時間評估呢?在檢視資料之前,您如何計劃您的輸出?您可能做不到。敏捷資料科學需要很多調整,在這篇文章中,我將分享一些最適合我的敏捷資料科學研究的最佳實踐。
設定專案標的
每個機器學習專案都應該從定義專案的標的開始。我們必須定義什麼是一個好的結果,以便知道什麼時候停止研究和繼續下一個問題。此階段通常由業務利益相關者完成。
標的由3個問題定義:
-
我們正在最佳化的KPI是什麼? 這可能是專案中最重要的問題,KPI必須可以透過測試集來衡量,但也要與業務KPI盡可能相關。
-
評估方法是什麼? 測試集的大小是多少? 我們需要時間序列分組/組拆分嗎? 我們需要線上測試嗎?
-
有價值KPI的最小值是什麼? 有時機器學習模型將取代一些簡單的啟髮式演演算法,即使65%的準確率對業務也是非常有價值的。 我們需要定義什麼是成功。
總是與基線模型進行比較
什麼是好的表現是一個非常難的問題,它很大程度上取決於問題的困難程度和業務需求。我的建議是透過構建一個簡單的基線模型來開始建模,它可以是一個簡單的機器學習模型,使用基本特徵,甚至是一個業務規則(啟髮式),就像重要類別中的平均標簽一樣。 透過這種方式,我們可以比較基線來衡量我們的效能,並監控我們在任務中的改進。
從簡單的模型開始
迭代是敏捷開發的核心特徵之一。 在資料科學專案中,我們不會像工程團隊那樣迭代特徵,我們會迭代模型。從具有少量特徵的簡單模型開始並使其迭代地變得越來越複雜以具有許多優點。當模型足夠好並且節省時間和複雜性時,您可以隨時停止。 您確切知道您所做的每項更改如何影響模型效能,這為您的下一次實驗提供了直覺,也許最重要的是,透過迭代增加複雜性,您可以更輕鬆,更快地除錯模型中的錯誤和資料洩漏。
計划子標的
計劃研究專案很難,因為它們有很大的不確定性。 根據我的經驗,最好使用子標的來規劃您的專案,例如,資料探索,資料清理,資料集構建,特徵工程和建模是研究的一小部分,您可以至少在幾周內製定計劃。 這些子標的可以在沒有最終模型的情況下自行創造價值。 例如,在資料探索之後,資料科學家可以為業務人員提供可操作的見解,資料集清理和構建可以幫助其他資料科學家和分析師立即做自己的專案。
快速失敗
快速失敗可能是我最重要的一點,可能是最難做到的。 在每次迭代中,您必須問自己,模型效能達到最低有價值KPI的機率是多少? 我認為迭代地使模型更複雜真的有助於這一部分。 新增更多功能並嘗試更多模型通常會帶來漸進式改進。 如果您的模型效能為70%且您的最低有價值KPI為90%,那麼您可能無法實現這一標的,因此,您需要停止專案並轉向下一個問題或更改一些極端的內容,例如更改標簽或標記更多的資料。 我並不是說你不應該試圖解決非常困難的問題,只要確保你沒有浪費時間在可能無法實現專案標的的方法上。
儘快轉向生產
我的最後建議是盡可能早地將模型部署到生產環境中,或者在模型有價值之後稍微部署一下。 我知道也許你的最終模型會有完全不同的特徵,很多工作都會被浪費掉。 但是,首先,你的模型給出了價值,為什麼要等待? 其次,更重要的是,在很多情況下,生產有自己的限制,一些特徵在生產系統上不可用,有些特徵有不同的格式,可能你的模型是減速或使用大量的RAM等,及早解決這些問題,可以節省大量不切實際的建模時間。
作者:yonatan hadar
原文連結:
https://towardsdatascience.com/my-best-tips-for-agile-data-science-research-b40365cc979d