做ML項目,任務繁多瑣碎怎麼辦?這份自查清單幫你理清思路

2021-01-07 澎湃新聞

選自Towardsdatascience

作者:Harshit Tyagi

機器之心編譯

參與:小舟、杜偉

機器學習項目中含有眾多因素,包括數據處理、模型優化等。開發者經常會陷入混亂,或者遺漏一些重要的東西。這裡有一份備忘清單,請查收。

任何科研項目都是系統性的,機器學習項目也不例外,它包含一系列大大小小、或繁或簡的要素和組件,如討論、準備工作、提出問題、模型構建和優化調整等。在這種情況下,開發者很容易漏掉一些重要的東西。

這時就需要對項目中經涉及到的任務做一份詳盡的清單。有時開發者絞盡腦汁也無法找到一個好的起始點,那麼任務清單則有助於他們在正確的信息源中提取有用的數據並建立聯繫,從而發掘出深刻見解。

此外,還需要對項目中的每項任務進行規劃的檢查,確保任務的完成度。

正如 Atul Gawande 在其著作《清單宣言:如何把事情做對》(Checklist Manifesto)中說到的:

我們所了解事物的數量和複雜度已經超出了自身從它們中正確、安全或可靠地獲益的能力。

在本文中,網頁和數據科學講師 Harshit Tyagi 以端到端機器學習項目為例,對經常涉及的任務做了一份清單。

本文作者 Harshit Tyagi。

接下來,我們就來看 Harshit Tyagi 是如何一步步創建屬於自己的機器學習項目任務清單的。

八步完成 ML 項目檢查清單

幾乎每個機器學習項目中都至少要執行 8-10 個步驟,其中一些步驟的執行順序也可以互換。

步驟 1:從一個高水平的視角定義問題

執行此步驟是為了弄清楚問題的業務邏輯。你應該了解到:

問題的本質(有監督的 / 無監督的,分類問題 / 回歸問題)。

你可以開發的方案類型。

應該用什麼指標來度量性能?

機器學習是解決這個問題的正確方法嗎?

解決該問題的手動方法。

該問題固有的假設。

步驟 2:確定數據源並獲取數據

在大多數情況下,如果你已經準備一些數據並想要定義關於這些數據的問題以更好地利用輸入的數據,那麼你可以先於步驟 1 執行這個步驟。

基於問題的定義,你需要確定數據源中哪些可以作為資料庫或傳感器等。對於生產中某個應用的部署,這一步應該通過開發數據 pipeline 來實現自動化,以保證輸入的數據能夠進入系統。

具體步驟如下:

列出你需要的數據源及數據量;

檢查存儲空間是否會成為問題;

檢查你是否有權限應用這些數據來達到你的目的;

獲取數據並將其轉換為可利用的格式;

檢查數據類型,通常包括文本、分類、數值、時序、圖像數據;

保留樣本以進行最終的測試。

步驟 3:初步探索數據

在這一步中,你需要對所有影響項目結果 / 預測 / 目標的特徵進行研究。如果數據量很大,請對數據進行採樣使得分析更易管理。具體步驟如下:

使用 jupyter notebook,因為它為研究數據提供了簡單直觀的界面;

確定目標變量;

確定特徵的類型(分類、數值、文本等);

分析特徵之間的關係;

添加一些可視化數據,使每個特徵對目標變量的影響更易於解釋;

記錄你的發現。

步驟 4:探索性數據分析以準備數據

在這一步中,通過定義數據轉換、數據清理、特徵選擇 / 工程和擴展的函數來處理之前步驟中的發現。具體如下:

編寫數據轉換函數,並自動處理將輸入的下一批數據;

編寫數據清理函數(估算缺失值並處理異常值);

編寫函數以選擇和工程化特徵,包括刪除冗餘特徵、特徵格式化以及其他數學變換;

特徵擴展——標準化特徵。

步驟 5:開發一個基線模型,然後探索其他模型以選出最佳模型

創建一個能夠為所有其他複雜機器學習模型提供基線的基礎模型。具體步驟如下:

使用默認參數訓練一些常用的機器學習模型,如樸素貝葉斯、線性回歸、支持向量機(SVM)等;

度量並比較每種模型的性能;

對每個模型採用 N 倍交叉驗證並在 N 倍的基礎上計算性能指標的均值和標準差;

研究對目標影響最大的特徵;

分析模型在預測過程中存在的錯誤類型;

用不同的方式工程化特徵;

重複上述步驟幾次,以確保使用正確的特徵,且其形式也無誤;

選出基於性能指標的最佳模型。

步驟 6:優化你選出的模型並檢查相關方法

這是你更加接近最終解決方案的關鍵步驟之一,具體步驟如下:

用交叉驗證優化超參數;

用隨機搜索或網格搜索等自動調整方法來找出最佳模型的最佳配置;

測試相關方法,比如集成學習等;

用儘可能多的數據測試模型;

最終確定後,使用在開始保留的未見過測試樣例來檢查模型是否存在過擬合或欠擬合。

步驟 7:保存代碼並交流你的方案

交流的過程也是性能加倍的過程。你需要記得所有已有或潛在的利益相關者。主要步驟包括如下:

保存代碼並記錄整個項目的過程及用到的方法;

創建儀錶板,如 voila 或帶有接近自我解釋可視化的有效 presentation;

撰寫一篇描述你如何進行特徵分析、測試數據轉換等的文章 / 報告。記錄你的學習過程,包括失敗的經驗和有效的技術方法;

總結主要結果並規劃未來設想(如果有的話)。

步驟 8:將模型投入生產並監測模型

如果你的項目需要在實時數據上進行測試,你應該創建一個可以在所有平臺(web、android、iOS)上使用的網頁版應用或 REST API。主要步驟包括:

在 h5 或 pickle 文件中保存你最終的訓練模型;

提供網頁版模型應用,你可以使用 Flask 來開發這些網頁服務;

關聯輸入數據源並設置 ETL 路徑;

基於擴展需求,用 pipenv、docker/Kubernetes 管理依賴關係;

你可以使用亞馬遜、Azure 或者谷歌雲平臺來部署你的服務;

在實時數據上監測性能或讓人們在你的模型上方便地使用他們的數據。

最後,創建任務清單時需要注意的一點是:你可以根據項目的難易程度來對清單進行實時調整。

原文連結:https://towardsdatascience.com/task-cheatsheet-for-almost-every-machine-learning-project-d0946861c6d0

今天下午,開發者日主論壇將於13:00-18:15進行,圖靈獎得主、院士與技術專家將帶來9場主題演講,WAIC雲帆獎、人工智慧開源開放報告將重磅發布,我們也將送出150本專業書籍,添加機器之心小助手(syncedai6),入群一起看直播、拿贈書。

原標題:《做ML項目,任務繁多瑣碎怎麼辦?這份自查清單幫你理清思路》

閱讀原文

相關焦點

  • PapersWithCode發布代碼完整性自查清單:想獲得更多星,你需要注意...
    加拿大麥吉爾大學副教授、Facebook 蒙特婁 FAIR 實驗室負責人 Joelle Pineau 多次探討該領域的可復現問題,並在去年底發布了可復現性檢查清單。但是這份清單中的大部分內容與論文本身的構成有關,對於代碼開源提供的指導較少。
  • 理清遊戲思路,幫你走出歡樂堡勸退期──《神界:原罪2》入門
    理清遊戲思路,幫你走出歡樂堡勸退期──《神界:原罪2》入門 自從我推薦《神界:原罪2》以來就有不少朋友在評論區反映過遊戲太複雜
  • 教你學會做自己的任務清單
    這也不是做計劃,這只是你的待辦任務列表……那什麼是計劃計劃,是實現目標的路徑。比如月底想要買個最新款的iPhone,但是口袋裡的錢不夠怎麼辦?但是,這裡面有一個前提:就是得有時間,這些事雖然都沒什麼難度,但是花時間啊,如果以上這些事,要求你在一天內完成,你可能就會手忙腳亂了。到底先做哪個呢?結果,你顧此失彼,做了這個,忘了那個……怎麼辦?
  • 考研複試英語自我介紹範文,幫你理清思路!
    考研複試英語自我介紹範文,幫你理清思路!考研複試英語自我介紹範文奉上,請速速查收!在上一篇文章中我們講解了英文自我介紹的寫作思路,想要了解的同學可以關注小編查看!今天給大家提供一篇範文僅供參考,大家可以按照上一篇文章中的思路來仿寫!
  • 高中歷史知識結構圖,理清思路,抓住重點!人手必備
    敲黑板~原因在這裡:歷史需要背沒錯,但你不知道要背哪些,無法梳理重難點,關鍵詞找不到,大事件記不住,小事件無法串聯,知識網格癱瘓。這就是學弟學妹們歷史低分的原因。要想學好高中歷史,一定要有下面這份知識結構圖!
  • 幫你理清懟人思路:讓對方啞口無言,簡短一句話的智慧
    喂,小夥子,你剛剛怎麼取錢的,我現在這個機器不好使了,來幫我看看啊」,「大爺,不好意思哈,我忙,您慢慢琢磨吧,很簡單的。」面對這樣膚淺的言論,直接懟回去,顯得自己太小家子氣了些。他可以無知無畏,你不可無禮無品。可以學學吳淡如的做法。吳淡如是臺灣知名作家,節目主持人。有一次她參加一個婚宴。旁邊是一位白手起家的商人。
  • 高效任務清單的秘密
    看完這張從凌晨4點開始的行程表,不由得讓人想起一句話,「比你聰明的人,還比你更努力!」感慨之餘,我們仔細觀察一下,這其實是一張典型的待辦任務清單。不只是王健林,其他頂級富豪像馬雲、馬斯克以及許多500強高管都是利用任務清單的高手。我們都知道到時間就是金錢,對超級富豪來說,那更是可以用「惜秒如金」來形容。時間是最寶貴的,但也是被浪費最嚴重的財富。
  • 315之前,送你一份超細緻的餐廳食安隱患自查清單!
    內參君採訪了多位一線品牌負責品控、運營管理的專業人士,為大家梳理出在餐飲經營中,防範食安問題要注意的細節清單。來看看,你的餐廳做到了嗎?餐飲老闆內參 內參君 出事的餐飲品牌,都踩了哪些坑?2017年,上海一籠小確幸68名顧客發生食物中毒事件,被罰百萬,並被吊銷了食品經營許可證。
  • 高三化學「思維導圖」:幫你理清思路,讓知識掌握得更牢固
    然而對於很多同學來說,背是一個痛苦的過程,於是,今天和大家分享一份《高中化學思維導圖》,共140頁,幫你理清思路,再去記憶,讓知識掌握更牢固!快來看看吧~由於篇幅限制,學姐只上傳了部分資料。想要資料完整電子版的小夥伴可以私信學姐。
  • 3·15之前,送你一份超細緻的餐廳食安隱患自查清單!
    內參君採訪了多位一線品牌負責品控、運營管理的專業人士,為大家梳理出在餐飲經營中,防範食安問題要注意的細節清單。   來看看,你的餐廳做到了嗎?而海底撈也曾出現過「老鼠門」事件;   2016年,韓寒開設的「很高興遇見你」餐廳,有一家門店因為鼠患嚴重被相關部門關停……
  • 藉助思維導圖,幫孩子打開寫作思路
    原因很多,但與平時缺乏觀察,寫作時沒有思路有很大關係。那怎麼辦呢?全書針對小學生寫作的訓練內容,分了寫事、寫人、寫動物、寫靜物、寫景、想像作文六大類型,37幅場景式思維導圖、24篇作文點評,12個思考清單,全方位地講解了幾種習作常見的問題及應對方法。在書中,丁丁老師把思維導圖引入教學,啟發學生在寫作之前,先要理清思路,然後按序寫作。相比打腹稿、寫提綱,思維導圖有顯而易見的優勢。對於小學生來說,這種簡單直觀的繪圖形式,更是一種思維方式。
  • 清單式工作,或許這產品經理最好的工作方式
    理清先後或者重點,化複雜為簡單在列清單的過程中,其實就是理清先後或者重點,化複雜為簡單的過程。比如說一臺車,你要檢查這臺車的安全性:如果沒有清單,你東看看,西看看,顧了這頭,又忘記那頭。會造成很多項目的重複檢測,也會造成某些項目沒有檢查到。
  • 寫作無頭緒無思路怎麼辦?三招輕鬆破解
    所謂「思考」,就是理清頭緒,找出規律,形成邏輯的一個過程。 我們寫作沒有思路,多半也是陷入了同樣的思想泥潭。注意力往往被局限在日常具體任務上、常規性思維上、領導具體要求上。此時,自我迷茫會導致我們感到「無話可寫」「無從下手」。 跳出材料看全局,是解決寫作無思路的有效辦法之一。
  • 這份GitHub 2.3k星的ML論文清單拿好,工作用得上
    在工作中動手實施自己的ML項目之前,了解領域裡的前沿進展,吸收前人的經驗,是很有必要的。不過,現在arXiv上每天都有成百篇新論文冒頭,哪些值得看?為此,亞馬遜工程師Eugene Yan等人打造了一個論文合集,在這個GitHub項目中,持續共享Google、亞馬遜、Facebook等等大公司在數據科學和機器學習方面的論文和博客文章。
  • 清單革命:簡單的清單就能幫你提升自己
    有的場合,並沒有筆和紙那怎麼辦,其實也是有類似清單的步驟。比如說,我們考駕照時,考科目二,教練給我們一個順口溜口訣「一踩二掛三打四松五抬」,只要是新手,認真按照這個口訣執行,一般都可以順利上路,最後順利通過考試,甚至比老手還要快。
  • 論文寫作沒有思路怎麼辦?
    可是有童鞋已經開始發愁,論文沒有思路怎麼辦?我泡了圖書館還琢磨了好久但還是一團漿糊怎麼辦?嗯……所以說從現在開始就著手理順思路是很有必要噠!比如說,你論文的研究方向和主題是什麼?應該主要查閱哪些文獻?不同的理論如何相互聯繫?你的主要觀點怎樣圍繞研究主題展開?
  • 英語語法入門:3句話幫大家理清思路
    怎麼辦?今天就用3句話幫大家理清思路!   01   第一句話:原始起源   英語是一門逐漸發展演變的語言,早在遠古時期,英語的結構其實只有以下這兩種,即簡單句的原始結構。   主+謂+賓 ;主+系+表   1.主語:主語是一個句子所敘述的主體,一般位於句首。在原始的簡單句中,主語可由名詞、代詞、數詞、名詞化的形容詞表示。
  • 解密清北學霸學習秘籍之十二如何讓合理安排學習任務
    我們通過後天閱讀、記憶記憶、做數學題來理清思路,其實是在訓練強化我們的大腦神經元之間的連結,直到形成新的肌肉記憶和神經本能反應。清單式的學習魅力正是在此。 比如你今天的狀態特別好,用半個小時的時間就做了十幾道數學題,明天還想繼續。那你就在計劃清單上寫下用半個小時的時間做十道數學題。比如,今天沒有寫作文,你覺得明天應該寫一篇作文練練筆,也可以記在清單裡不用去判斷任務到底多不多,題會不會太難,明天是否能完成。 因為給計劃清單做減法,這是行動清單,才應該做的事。 列計劃的時候,也要分清楚,學習任務的輕重緩急,排好先後順序。
  • 別怕,一張清單幫你搞定
    比如突然遇到客戶投訴、同事幫忙、老闆安排的臨時工作,每個人跟你聯繫時,都說這個事情非常緊急非常重要,讓你趕緊操辦,你還能依舊掌控全局、有條不紊的去處理嗎?有時候繁多的意料之外的事情讓我們手足無措,情緒波動非常大,忍不住的會抱怨事情怎麼這麼多,怎麼什麼事情都來找我?
  • 領導給你布置任務不想接怎麼辦?低情商直接說,高情商這樣做
    領導給你布置任務不想接怎麼辦?低情商直接說,高情商這樣做當我們處在職場上的時候,有時候可以按照自己的想法來辦事,但更多的時候,還是要遵循領導的安排來辦事的,畢竟在公司裡面,領導所說的話,還是有一定分量的。