兩步幫你快速選擇SKlearn機(jī)器學(xué)習(xí)模型
Scikit-learn,簡稱Sklearn,是使用最廣泛的開源Python機(jī)器學(xué)習(xí)庫。它基于Numpy和Scipy,提供了大量用于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)分析、預(yù)測的工具,包括數(shù)據(jù)預(yù)處理、可視化、交叉驗(yàn)證和多種機(jī)器學(xué)習(xí)算法。其中提供的模型能夠?qū)崿F(xiàn)分類,回歸,聚類,數(shù)據(jù)降維等功能。
Sklearn是解決實(shí)際問題的一種工具,但面對機(jī)器學(xué)習(xí)問題時(shí),最難的部分其實(shí)并不是缺乏工具,而是如何為具體項(xiàng)目找到合適的模型。
此處舉2個(gè)案例。
案例1:老板丟給你20萬個(gè)客戶的淘寶網(wǎng)店購物記錄,讓你預(yù)測其中客戶未來的一年內(nèi)的生命周期價(jià)值LTV(Life TimeValue),用Scikit-learn中的哪個(gè)模型?
案例2:老板丟給你1000個(gè)客戶的下載、注冊、使用和卸載App的行為記錄,讓你預(yù)測其中一些客戶未來3個(gè)月內(nèi)流失的可能性,用Scikit-learn中的哪個(gè)模型?
Sklearn中的機(jī)器學(xué)習(xí)模型這么多,怎么知道哪個(gè)模型適合處理什么類型的數(shù)據(jù),解決什么樣的問題呢?
步驟1:找到Sklearn官網(wǎng)提供的“工具選擇流程圖”。只要帶著問題,跟著圖往下走,就能夠找到答案。
此處整理了中文版本,便于大家閱讀。

? ? ? ? ? ? ??
步驟2:跟著圖分解自己的案例。
以案例1為例:
從上圖的“開始”往下走,進(jìn)入“大于50個(gè)樣本”環(huán)節(jié);
然后判斷為“Yes”,進(jìn)入“預(yù)測類別”環(huán)節(jié);
這里是預(yù)測價(jià)值,明顯不是類別,跟著No進(jìn)入“預(yù)測數(shù)值”環(huán)節(jié);
然后進(jìn)入“小于10萬個(gè)樣本”環(huán)節(jié),
我們這里有20萬個(gè)樣本,因此跟著No進(jìn)入“SGD(小批量梯度下降)回歸”模型——找到合適的模型啦??!
如果你是程序員,有時(shí)候會希望用程序化的方法進(jìn)行模型的選擇,可以參考如下偽代碼:
IF數(shù)據(jù)量少于50個(gè)
??數(shù)據(jù)樣本太少了,先獲取更多數(shù)據(jù)吧??!
ELSE數(shù)據(jù)量多于過50個(gè)
? IF是分類問題
??? IF數(shù)據(jù)有標(biāo)簽
??????? IF數(shù)據(jù)量大于10萬,
?????????選擇SGD分類器
??????? ELSE數(shù)據(jù)量大于10萬,
????????? 先嘗試線性SVM分類器,如果不好用,再繼續(xù)嘗試其他算法
?????????IF特征為文本,
??????????? 選擇樸素貝葉斯SVM
?????????ELSE,
??????????? 先嘗試kNN,如果不好用,嘗試SVM加集成方法
??? ELSE數(shù)據(jù)沒有標(biāo)簽,
????? 選擇各種聚類算法
? ELSE不是分類問題,
???IF需要預(yù)測數(shù)量,就是回歸問題
????? IF數(shù)據(jù)量大于10萬,
???????就選擇SGD線性回歸
????? ELSE,
???????根據(jù)數(shù)據(jù)集特征的特點(diǎn),有Lasso回歸和Ridge回歸、集成方法、SVM等幾種選擇。
??? ELSE如果是要把數(shù)據(jù)可視化,
????? 則考慮等幾種降維方法
??? ELSE 如果是要輸出數(shù)據(jù)的結(jié)構(gòu)
????? 對不起,Sklearn幫不了你
——上面的內(nèi)容節(jié)選并整理自《零基礎(chǔ)學(xué)機(jī)器學(xué)習(xí)》
如果SKlearn中的模型都幫不到你的話,那么就需要考慮深度學(xué)習(xí)庫了,這一方法以后的文章會講到。
此外,選取多種算法模型去解決同一個(gè)問題,然后將各種算法的效率進(jìn)行比較,也不失為一個(gè)好的方案。
?
那么,最后的問題來了,對于案例2,應(yīng)該選擇哪個(gè)Sklearn模型呢?請你試一試,并在文末留言說明你的模型選擇流程,我們會抽一位答對的讀者贈送一本剛出版的熱門機(jī)器學(xué)習(xí)新書《零基礎(chǔ)學(xué)機(jī)器學(xué)習(xí)》呦。
?
《零基礎(chǔ)學(xué)機(jī)器學(xué)習(xí)》,通過AI“小白”小冰拜師程序員咖哥學(xué)習(xí)機(jī)器學(xué)習(xí)的對話展開,內(nèi)容輕松,實(shí)戰(zhàn)性強(qiáng),主要包括機(jī)器學(xué)習(xí)快速上手路徑、數(shù)學(xué)和Python基礎(chǔ)知識、機(jī)器學(xué)習(xí)基礎(chǔ)算法(線性回歸和邏輯回歸)、深度神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、經(jīng)典算法、集成學(xué)習(xí)、無監(jiān)督和半監(jiān)督等非監(jiān)督學(xué)習(xí)類型、強(qiáng)化學(xué)習(xí)實(shí)戰(zhàn)等內(nèi)容,以及相關(guān)實(shí)戰(zhàn)案例。本書所有案例均通過Python及Scikit-learn機(jī)器學(xué)習(xí)庫和Keras 深度學(xué)習(xí)框架實(shí)現(xiàn),同時(shí)還包含豐富的數(shù)據(jù)分析和數(shù)據(jù)可視化內(nèi)容。
本書適合對AI 感興趣的程序員、項(xiàng)目經(jīng)理、在校大學(xué)生以及任何想以零基礎(chǔ)學(xué)機(jī)器學(xué)習(xí)的人,用以入門機(jī)器學(xué)習(xí)領(lǐng)域,建立從理論到實(shí)戰(zhàn)的知識通道。
也可以加一下老胡的微信 圍觀朋友圈~~~
推薦閱讀
(點(diǎn)擊標(biāo)題可跳轉(zhuǎn)閱讀)
干掉 LaTeX !用BookDown寫本書 101道Numpy、Pandas練習(xí)題 【資源干貨】香港中文大學(xué)《深度學(xué)習(xí)導(dǎo)論》2021課件 機(jī)器學(xué)習(xí)深度研究:特征選擇中幾個(gè)重要的統(tǒng)計(jì)學(xué)概念 老鐵,三連支持一下,好嗎?↓↓↓
