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

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