機器學習基本流程整理

2022-06-09 17:42:08 字數 3515 閱讀 8499

流程圖鏈結

眾所周知,ml是乙個流程性很強的工作(所以很多人後面會用pipeline),資料採集、資料清洗、資料預處理、特徵工程、模型調優、模型融合、模型驗證、模型持久化;

而在這些基本的步驟內,又存在很多種方式,比如資料採集可以是爬蟲,可以是資料庫拉取,可以是通過api獲取等等,資料清洗要注意缺失值處理,異常值處理,特徵工程更是複雜多樣,因此根據kaggle上的一些大佬們的分享,整理了一張基本流程以及對應細分的步驟操作圖給大家,算是對各個步驟做了比較詳細的分析,應付kaggle上的入門專案是完全夠的了,希望能夠對大家有一點幫助;

所有的機器學習演算法在應用場景、優勢劣勢、對資料要求、執行速度上都各有優劣,但有一點不變的是都是資料貪婪的,也就是說任何乙個演算法,都可以通過增加資料來達到更好的結果,因此第一步資料採集也是最基礎,最終的一步;

幾種方式介紹:

更多是針對類似爬蟲這種方式獲取的資料,這種資料通常沒有乙個非常固定規範的格式,資料非常不穩定,因此需要進行前期的清洗工作,工作量巨大。。。。

幾種清洗方向:

即便資料都在手上,但是因為人為軟體業務導致的異常資料還是比較多的,比如性別資料的缺失、年齡資料的異常(負數或者超大的數),而大多數模型對資料都有基本要求,比如不能缺失,而異常資料對模型是有影響的,因此通常都需要進行預處理;

預處理問題型別:

異常處理:

特徵工程決定了機器學習的上限,模型只是逼近這個上限;

這絕對不是一句空話,以目前在kaggle上看到的各個比賽的情況,基本勝負都是出在特徵工程上,這一點也是我認為機器學習中最重要,也最難的部分,它難並不是技術上的,而是經驗上的,乙個經驗豐富的kaggler在看到專案、資料的同時,腦子裡已經有了特徵工程的雛形,這可以幫助他很快的得到乙個不錯的分數,而後續的優化上,經驗也是最重要的參考;

基本步驟:

特徵選擇:

同乙個模型不同引數下的表現依然是天差地別,通常在特徵工程部分結束後就進入到模型引數調優的步驟,這一步也是最無聊最耗時間的(反正我家電腦經常跑一晚上),由於kaggle上個人專案一般都是在家做,因此個人電腦的效能大家都懂的,因此乙個好的技巧還是比較實用的;

調參方式與工具:

一般來講,任何乙個模型在**上都無法達到乙個很好的結果,這是因為通常來說單個模型無法擬合所有資料,及不具備對所有未知資料的泛化能力,因此需要對多個模型進行融合,這一點在kaggle上體現的也很明顯,好的排名中基本都用了模型融合;

融合方式:

加權融合:基本同上,區別是考慮每個模型自身得分,得分高的權重大;

使用模型進行融合:即將多個單模型的輸出作為輸入送入到某個模型中,讓模型去做融合,通常可以達到最好的效果,但是由於用到了模型,因此要注意過擬合問題;

通過交叉驗證對模型效能進行檢驗,這裡通常都是一致的做法,需要注意的是在時間序列資料**上,不能直接隨機的劃分資料,而是要考慮時間屬性,因為很多特徵都依賴於時間的前後關係,利用了趨勢;

最後,最好將得到的模型持久化到磁碟,方便後續使用、優化時,不需要從頭開始;

機器學習任務是非常重流程的,一步一步非常嚴謹和固定,因此可以做一些總結、歸納,提取出適合自己的基本框架,基本可以套用到所有相關專案中,後面會分享乙個最簡單機器學習入門專案,也展示乙個最簡單的流程下,機器學習是如何工作,如何達到目的的,大家敬請期待;

流程圖鏈結

眾所周知,ml是乙個流程性很強的工作(所以很多人後面會用pipeline),資料採集、資料清洗、資料預處理、特徵工程、模型調優、模型融合、模型驗證、模型持久化;

而在這些基本的步驟內,又存在很多種方式,比如資料採集可以是爬蟲,可以是資料庫拉取,可以是通過api獲取等等,資料清洗要注意缺失值處理,異常值處理,特徵工程更是複雜多樣,因此根據kaggle上的一些大佬們的分享,整理了一張基本流程以及對應細分的步驟操作圖給大家,算是對各個步驟做了比較詳細的分析,應付kaggle上的入門專案是完全夠的了,希望能夠對大家有一點幫助;

所有的機器學習演算法在應用場景、優勢劣勢、對資料要求、執行速度上都各有優劣,但有一點不變的是都是資料貪婪的,也就是說任何乙個演算法,都可以通過增加資料來達到更好的結果,因此第一步資料採集也是最基礎,最終的一步;

幾種方式介紹:

更多是針對類似爬蟲這種方式獲取的資料,這種資料通常沒有乙個非常固定規範的格式,資料非常不穩定,因此需要進行前期的清洗工作,工作量巨大。。。。

幾種清洗方向:

即便資料都在手上,但是因為人為軟體業務導致的異常資料還是比較多的,比如性別資料的缺失、年齡資料的異常(負數或者超大的數),而大多數模型對資料都有基本要求,比如不能缺失,而異常資料對模型是有影響的,因此通常都需要進行預處理;

預處理問題型別:

異常處理:

特徵工程決定了機器學習的上限,模型只是逼近這個上限;

這絕對不是一句空話,以目前在kaggle上看到的各個比賽的情況,基本勝負都是出在特徵工程上,這一點也是我認為機器學習中最重要,也最難的部分,它難並不是技術上的,而是經驗上的,乙個經驗豐富的kaggler在看到專案、資料的同時,腦子裡已經有了特徵工程的雛形,這可以幫助他很快的得到乙個不錯的分數,而後續的優化上,經驗也是最重要的參考;

基本步驟:

特徵選擇:

同乙個模型不同引數下的表現依然是天差地別,通常在特徵工程部分結束後就進入到模型引數調優的步驟,這一步也是最無聊最耗時間的(反正我家電腦經常跑一晚上),由於kaggle上個人專案一般都是在家做,因此個人電腦的效能大家都懂的,因此乙個好的技巧還是比較實用的;

調參方式與工具:

一般來講,任何乙個模型在**上都無法達到乙個很好的結果,這是因為通常來說單個模型無法擬合所有資料,及不具備對所有未知資料的泛化能力,因此需要對多個模型進行融合,這一點在kaggle上體現的也很明顯,好的排名中基本都用了模型融合;

融合方式:

加權融合:基本同上,區別是考慮每個模型自身得分,得分高的權重大;

使用模型進行融合:即將多個單模型的輸出作為輸入送入到某個模型中,讓模型去做融合,通常可以達到最好的效果,但是由於用到了模型,因此要注意過擬合問題;

通過交叉驗證對模型效能進行檢驗,這裡通常都是一致的做法,需要注意的是在時間序列資料**上,不能直接隨機的劃分資料,而是要考慮時間屬性,因為很多特徵都依賴於時間的前後關係,利用了趨勢;

最後,最好將得到的模型持久化到磁碟,方便後續使用、優化時,不需要從頭開始;

機器學習任務是非常重流程的,一步一步非常嚴謹和固定,因此可以做一些總結、歸納,提取出適合自己的基本框架,基本可以套用到所有相關專案中,後面會分享乙個最簡單機器學習入門專案,也展示乙個最簡單的流程下,機器學習是如何工作,如何達到目的的,大家敬請期待;

機器學習流程

機器學習其實就是利用現有資料,設計出演算法模型的過程。其流程如下 1 獲取資料 2 資料分析 3 設計演算法 4 測試演算法 5 驗證評估 6 提交演算法 對資料的處理分為四種情況 分類 聚類 回歸 降維。其中又以分類為主。分類思想主要分為兩種 1 利用歐式距離判定樣本屬於哪一類。2 利用概率大小進...

機器學習資料整理

這兩天看到李航老師的 統計學習方法 感覺寫的非常好,適合入門,機器學習的基本概念都有,但是不太深入,中文書寫,所有專業名詞給出英文翻譯。適合給初學者建立概念,可以系統的了解機器學習。原答案 強烈推薦這個 ufldl教程 ufldl 這是andrew ng寫的關於非監督特徵學習與深度學習的教程,關鍵是...

機器學習流程介紹

本文只是對機器學習的流程做乙個簡單的描述,每個環節涉及的東西很多,不是本文介紹的範圍,對其中比較重要的知識點稍微提及一下,具體的可以參考其他文章學習。先上一張流程圖。機器學習從資料準備到上線流程 接下來根據流程圖,逐步分析機器學習的流程。1.資料來源 機器學習的第乙個步驟就是收集資料,這一步非常重要...