Scikit-learn,簡稱Sklearn,是使用最廣泛的開源Python機器學習庫。它基於Numpy和Scipy,提供了大量用於數據挖掘和機器學習分析、預測的工具,包括數據預處理、可視化、交叉驗證和多種機器學習算法。其中提供的模型能夠實現分類,迴歸,聚類,數據降維等功能。
Sklearn是解決實際問題的一種工具,但面對機器學習問題時,最難的部分其實並不是缺乏工具,而是如何爲具體項目找到合適的模型。
此處舉2個案例。
案例1:老闆丟給你20萬個客戶的淘寶網店購物記錄,讓你預測其中客戶未來的一年內的生命週期價值LTV(Life TimeValue),用Scikit-learn中的哪個模型?
案例2:老闆丟給你1000個客戶的下載、註冊、使用和卸載App的行爲記錄,讓你預測其中一些客戶未來3個月內流失的可能性,用Scikit-learn中的哪個模型?
Sklearn中的機器學習模型這麼多,怎麼知道哪個模型適合處理什麼類型的數據,解決什麼樣的問題呢?
步驟1:找到Sklearn官網提供的“工具選擇流程圖”。只要帶着問題,跟着圖往下走,就能夠找到答案。
此處整理了中文版本,便於大家閱讀。
步驟2:跟着圖分解自己的案例。
以案例1爲例:
從上圖的“開始”往下走,進入“大於50個樣本”環節;
然後判斷爲“Yes”,進入“預測類別”環節;
這裏是預測價值,明顯不是類別,跟着No進入“預測數值”環節;
然後進入“小於10萬個樣本”環節,
我們這裏有20萬個樣本,因此跟着No進入“SGD(小批量梯度下降)迴歸”模型——找到合適的模型啦!!
如果你是程序員,有時候會希望用程序化的方法進行模型的選擇,可以參考如下僞代碼:
IF數據量少於50個
數據樣本太少了,先獲取更多數據吧!!
ELSE數據量多於過50個
IF是分類問題
IF數據有標籤
IF數據量大於10萬,
選擇SGD分類器
ELSE數據量大於10萬,
先嚐試線性SVM分類器,如果不好用,再繼續嘗試其他算法
IF特徵爲文本,
選擇樸素貝葉斯SVM
ELSE,
先嚐試kNN,如果不好用,嘗試SVM加集成方法
ELSE數據沒有標籤,
選擇各種聚類算法
ELSE不是分類問題,
IF需要預測數量,就是迴歸問題
IF數據量大於10萬,
就選擇SGD線性迴歸
ELSE,
根據數據集特徵的特點,有Lasso迴歸和Ridge迴歸、集成方法、SVM等幾種選擇。
ELSE如果是要把數據可視化,
則考慮等幾種降維方法
ELSE 如果是要輸出數據的結構
對不起,Sklearn幫不了你
——上面的內容節選並整理自《零基礎學機器學習》
如果SKlearn中的模型都幫不到你的話,那麼就需要考慮深度學習庫了,這一方法以後的文章會講到。
此外,選取多種算法模型去解決同一個問題,然後將各種算法的效率進行比較,也不失爲一個好的方案。
那麼,最後的問題來了,對於案例2,應該選擇哪個Sklearn模型呢?請你試一試,並在文末留言說明你的模型選擇流程,我們會抽一位答對的讀者贈送一本剛出版的熱門機器學習新書《零基礎學機器學習》呦。
《零基礎學機器學習》,通過AI“小白”小冰拜師程序員咖哥學習機器學習的對話展開,內容輕鬆,實戰性強,主要包括機器學習快速上手路徑、數學和Python基礎知識、機器學習基礎算法(線性迴歸和邏輯迴歸)、深度神經網絡、卷積神經網絡、循環神經網絡、經典算法、集成學習、無監督和半監督等非監督學習類型、強化學習實戰等內容,以及相關實戰案例。本書所有案例均通過Python及Scikit-learn機器學習庫和Keras 深度學習框架實現,同時還包含豐富的數據分析和數據可視化內容。
本書適合對AI 感興趣的程序員、項目經理、在校大學生以及任何想以零基礎學機器學習的人,用以入門機器學習領域,建立從理論到實戰的知識通道。
也可以加一下老胡的微信
圍觀朋友圈~~~
推薦閱讀
(點擊標題可跳轉閱讀)
幹掉 LaTeX !用BookDown寫本書
101道Numpy、Pandas練習題
【資源乾貨】香港中文大學《深度學習導論》2021課件
機器學習深度研究:特徵選擇中幾個重要的統計學概念
老鐵,三連支持一下,好嗎?↓↓↓
本文分享自微信公衆號 - 機器學習算法與Python實戰(tjxj666)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。