这才是数据挖掘领域常用的机器学习算法!
“2021-08-05,全體人民,原地失業(yè)。”
最近,這條字節(jié)員工發(fā)布的朋友圈一夜刷爆網(wǎng)絡(luò),字節(jié)跳動(dòng)教育板塊大裁員的消息,引起了行業(yè)內(nèi)的巨大震蕩。
圖片來源:網(wǎng)絡(luò)
雖然字節(jié)最終并沒有把教育板塊的員工全部裁掉,但也大批量裁了教輔、運(yùn)營、市場、產(chǎn)品等基礎(chǔ)崗員工,保留了部分技術(shù)型崗位和中高層管理人員。
對(duì),就是你想看到的結(jié)果!技術(shù)人員被留!下!來!了!
因?yàn)槭裁?#xff1f;只因程序猿小哥哥具有深厚的功力和無人可以替代的重要性!所以在二十一世紀(jì)是人類新的紀(jì)元,是經(jīng)濟(jì)、產(chǎn)業(yè)和技術(shù)飛速發(fā)展的時(shí)代,是云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、移動(dòng)互聯(lián)、人工智能和區(qū)塊鏈等新一代信息技術(shù)改變?nèi)祟惿罘绞降男聲r(shí)代,程序員小哥哥更要讓自己的優(yōu)勢(shì)變的更明顯,更不可替代才是王道!
所以,在當(dāng)下行業(yè)大地震的環(huán)境中,如何不讓自己陷入被替代或被裁員的危機(jī)?學(xué)好人工智能領(lǐng)域的機(jī)器學(xué)習(xí)非常重要!其中數(shù)據(jù)挖掘的機(jī)智學(xué)習(xí)更會(huì)讓你受用終身!
繼續(xù)看下去,你就已經(jīng)領(lǐng)先90%的程序猿小哥哥們了!
N1
機(jī)器學(xué)習(xí)領(lǐng)域的“常青樹”
當(dāng)今社會(huì)已經(jīng)不再歌頌個(gè)人英雄主義,不再傳唱“一夫當(dāng)關(guān),萬夫莫敵”這類流芳百世的傳世之奇。
這個(gè)時(shí)代更加傳頌的是“團(tuán)結(jié)就是力量”、“眾人拾柴火焰高”等凝聚力量干大事的顯著優(yōu)勢(shì)。
來源:谷歌圖片
“團(tuán)隊(duì)”這一概念和意識(shí)已經(jīng)深刻融入于工作、生活和學(xué)習(xí)的方方面面,往往由于實(shí)際問題的復(fù)雜性遠(yuǎn)高于一個(gè)人或者一個(gè)方法的處理能力,所以在解決實(shí)際問題的過程中基本都是由團(tuán)隊(duì)高效率、高質(zhì)量的完成。
在數(shù)據(jù)挖掘領(lǐng)域常用的機(jī)器學(xué)習(xí)方法中,我們經(jīng)常聽說各種算法,例如線性判別分析、支持向量機(jī)、決策樹等。今天我們將介紹被譽(yù)為機(jī)器學(xué)習(xí)的先進(jìn)算法的“集成學(xué)習(xí)”算法。因?yàn)樗谩吧眢w力行”的證明著“團(tuán)結(jié)就是力量”,集成學(xué)習(xí)方法訓(xùn)練多個(gè)學(xué)習(xí)器并將它們結(jié)合起來解決一個(gè)問題,并且在實(shí)踐中獲得了巨大成功,成為機(jī)器學(xué)習(xí)領(lǐng)域的“常青樹”,受到學(xué)術(shù)界和產(chǎn)業(yè)界的廣泛關(guān)注。
N2
集成學(xué)習(xí):解決問題的“大管家”
集成學(xué)習(xí)可能是你第一次聽說,但是你知道嗎?算法來源于生活,你在生活中可能不止一次用過這個(gè)思想。當(dāng)你為了實(shí)現(xiàn)某一目標(biāo)而合理協(xié)調(diào)每一個(gè)個(gè)體(人或事)解決問題時(shí),你已經(jīng)初步認(rèn)識(shí)了集成學(xué)習(xí)算法,并且和它打交道不止一次了。
集成學(xué)習(xí)技術(shù)已被證明可以在機(jī)器學(xué)習(xí)問題上產(chǎn)生更好的性能。我們可以將這些技術(shù)用于回歸和分類問題,這些集成技術(shù)的最終預(yù)測是通過組合幾個(gè)基本模型的結(jié)果獲得的,平均、投票和堆疊是將結(jié)果組合起來以獲得最終預(yù)測的一些方式。在本文中,我們將探討如何使用集成學(xué)習(xí)來提出最佳機(jī)器學(xué)習(xí)模型。
1
什么是集成學(xué)習(xí)?
集成學(xué)習(xí)是將多個(gè)機(jī)器學(xué)習(xí)模型組合到一個(gè)問題中。這些模型被稱為弱學(xué)習(xí)器。直覺是,當(dāng)你將幾個(gè)弱學(xué)習(xí)器組合在一起時(shí),它們可以成為強(qiáng)學(xué)習(xí)器。每個(gè)弱學(xué)習(xí)器都適合訓(xùn)練集并提供獲得的預(yù)測。最終的預(yù)測結(jié)果是通過組合所有弱學(xué)習(xí)器的結(jié)果來計(jì)算的。
2
基本的集成學(xué)習(xí)方法
01
最大投票數(shù)(Max voting)
在分類中,每個(gè)模型的預(yù)測都是一次投票。在最大投票中,最終預(yù)測來自得票最多的預(yù)測。讓我們舉一個(gè)例子,你有三個(gè)分類器,預(yù)測如下:
分類器 1 – A 類
分類器 2 – C 類
分類器 3 – C 類
這里的最終預(yù)測將是C 類,因?yàn)樗鼡碛凶疃嗟倪x票。?
02
平均(Averaging)
在求平均值時(shí),最終輸出是所有預(yù)測的平均值。這適用于回歸問題。例如,在隨機(jī)森林回歸中,最終結(jié)果是來自各個(gè)決策樹的預(yù)測的平均值。我們以預(yù)測商品價(jià)格的三個(gè)回歸模型為例,如下所示:
回歸量 1 – 100
回歸量 2 – 300?
回歸量 3 – 400
最終預(yù)測將是 100、300 和 400 的平均值。?
03
加權(quán)平均(Weighted average)
在加權(quán)平均中,具有更高預(yù)測能力的基礎(chǔ)模型更為重要。在價(jià)格預(yù)測示例中,將為每個(gè)回歸量分配一個(gè)權(quán)重。權(quán)重之和等于一。假設(shè)回歸變量的權(quán)重分別為 0.15、0.45 和 0.4。最終的模型預(yù)測可以計(jì)算如下:
0.15 * 100 + 0.45*300 + 0.4*400 = 310
3
高級(jí)集成學(xué)習(xí)方法
01
堆疊(Stacking)
堆疊是組合各種估計(jì)量以減少它們的偏差的過程。來自每個(gè)估計(jì)器的預(yù)測堆疊在一起,并用作計(jì)算最終預(yù)測的最終估計(jì)器(通常稱為元模型)的輸入。最終估計(jì)器的訓(xùn)練通過交叉驗(yàn)證進(jìn)行。堆疊可以用于回歸和分類問題。
可以認(rèn)為堆疊發(fā)生在以下步驟中:
1. 將數(shù)據(jù)拆分為訓(xùn)練集和驗(yàn)證集
2. 將訓(xùn)練集分成K個(gè)折疊,例如10個(gè)
3. 在第 9 次訓(xùn)練基礎(chǔ)模型(比如 SVM)并在第 10 次進(jìn)行預(yù)測
4. 重復(fù)直到你對(duì)每一次折疊都有一個(gè)預(yù)測
5. 在整個(gè)訓(xùn)練集上擬合基礎(chǔ)模型
6. 使用模型對(duì)測試集進(jìn)行預(yù)測
7. 對(duì)其他基本模型(例如決策樹)重復(fù)步驟 3-6
8. 使用來自測試集的預(yù)測作為新模型(元模型)的特征
9. 使用元模型對(duì)測試集進(jìn)行最終預(yù)測
對(duì)于回歸問題,傳遞給元模型的值是數(shù)字。對(duì)于分類問題,它們是概率或類標(biāo)簽。
02
混合(Blending)
混合類似于堆疊,但使用訓(xùn)練集中的一個(gè)保持集來進(jìn)行預(yù)測。因此,僅在保留集上進(jìn)行預(yù)測。預(yù)測和保持集用于構(gòu)建對(duì)測試集進(jìn)行預(yù)測的最終模型。你可以將混合視為一種堆疊,其中元模型根據(jù)基本模型在保留驗(yàn)證集上所做的預(yù)測進(jìn)行訓(xùn)練。
可以將混合過程視為:
1、將數(shù)據(jù)拆分為測試和驗(yàn)證集
2、在驗(yàn)證集上擬合基本模型
3、對(duì)驗(yàn)證集和測試集進(jìn)行預(yù)測
4、使用驗(yàn)證集及其預(yù)測來構(gòu)建最終模型
5、使用此模型進(jìn)行最終預(yù)測
混合的概念在Kaggle獎(jiǎng)競賽中流行起來,根據(jù)Kaggle集成指南:“混合是 Netflix 獲獎(jiǎng)?wù)咭氲囊粋€(gè)詞。它非常接近于堆疊泛化,但更簡單一點(diǎn),信息泄漏的風(fēng)險(xiǎn)也更小。一些研究人員交替使用“堆疊集成”和“混合”。通過混合,你不是為訓(xùn)練集創(chuàng)建折疊預(yù)測,而是創(chuàng)建一個(gè)小的保持集,比如訓(xùn)練集的 10%。然后 stacker 模型只在這個(gè)保持集上訓(xùn)練。”
03
混合與堆疊(Blending vs stacking)
混合比堆疊更簡單,可以防止模型中的信息泄漏。泛化器和堆棧器使用不同的數(shù)據(jù)集。但是,混合使用較少的數(shù)據(jù)并可能導(dǎo)致過度擬合。交叉驗(yàn)證在堆疊上比混合更可靠。與在混合中使用小的保留數(shù)據(jù)集相比,它計(jì)算了更多的折疊。
04
裝袋(Bagging)
Bagging 隨機(jī)抽取數(shù)據(jù)樣本,構(gòu)建學(xué)習(xí)算法,并使用均值來尋找 Bagging 概率。它也稱為bootstrap 聚合。Bagging 聚合了來自多個(gè)模型的結(jié)果,以獲得一個(gè)概括的結(jié)果。
該方法包括:
1、從原始數(shù)據(jù)集創(chuàng)建多個(gè)帶有替換的子集
2、為每個(gè)子集建立一個(gè)基本模型
3、并行運(yùn)行所有模型
4、結(jié)合所有模型的預(yù)測以獲得最終預(yù)測
05
增強(qiáng)(Boosting)
Boosting是一種機(jī)器學(xué)習(xí)集成技術(shù),通過將弱學(xué)習(xí)器轉(zhuǎn)換為強(qiáng)學(xué)習(xí)器來減少偏差和方差。弱學(xué)習(xí)器以順序方式應(yīng)用于數(shù)據(jù)集。第一步是構(gòu)建初始模型并將其擬合到訓(xùn)練集中。然后擬合試圖修復(fù)第一個(gè)模型產(chǎn)生的錯(cuò)誤的第二個(gè)模型。
下面是整個(gè)過程的樣子:
1、從原始數(shù)據(jù)創(chuàng)建一個(gè)子集
2、用這些數(shù)據(jù)建立一個(gè)初始模型
3、對(duì)整個(gè)數(shù)據(jù)集運(yùn)行預(yù)測
4、使用預(yù)測值和實(shí)際值計(jì)算誤差
5、為錯(cuò)誤的預(yù)測分配更多的權(quán)重
6、創(chuàng)建另一個(gè)模型,嘗試修復(fù)上一個(gè)模型中的錯(cuò)誤
7、使用新模型對(duì)整個(gè)數(shù)據(jù)集運(yùn)行預(yù)測
8、用每個(gè)模型創(chuàng)建多個(gè)模型,旨在糾正前一個(gè)模型產(chǎn)生的錯(cuò)誤
9、通過對(duì)所有模型的均值進(jìn)行加權(quán)得到最終模型
4
集成學(xué)習(xí)常用庫
集成學(xué)習(xí)常用庫廣義可以分為有兩類:Bagging算法和Boosting算法。
01
Bagging算法
Bagging算法基于上述Bagging技術(shù)。讓我們來看看其中的幾個(gè)。?
02
Bagging meta估計(jì)器
Scikit-learn讓我們實(shí)現(xiàn)了一個(gè)“BaggingClassifier”和一個(gè)“BaggingRegressor”。Bagging meta估計(jì)器將每個(gè)基本模型擬合到原始數(shù)據(jù)集的隨機(jī)子集上。然后它通過聚合各個(gè)基本模型預(yù)測來計(jì)算最終預(yù)測。聚合是通過投票或平均來完成的。該方法通過在其構(gòu)建過程中引入隨機(jī)化來減少估計(jì)量的方差。
Bagging有幾種:
1、將數(shù)據(jù)的隨機(jī)子集繪制為樣本的隨機(jī)子集稱為粘貼。
2、當(dāng)樣本被替換抽取時(shí),該算法被稱為Bagging。
3、如果將隨機(jī)數(shù)據(jù)子集作為特征的隨機(jī)子集,則該算法稱為Random Subspaces。?
4、當(dāng)從樣本和特征的子集創(chuàng)建基本估計(jì)量時(shí),它是Random Patches。
讓我們來看看如何使用 Scikit-learn 創(chuàng)建Bagging估計(jì)器。這需要幾個(gè)步驟:
1、導(dǎo)入“BaggingClassifier”
2、導(dǎo)入一個(gè)基本估計(jì)器——一個(gè)決策樹分類器
3、創(chuàng)建一個(gè)“BaggingClassifier”的實(shí)例
Bagging分類器有幾個(gè)參數(shù):
1、基本估計(jì)器——這里是一個(gè)決策樹分類器,
2、集成中的估計(jì)器數(shù)量
3、“max_samples”定義將從每個(gè)基估計(jì)器的訓(xùn)練集中抽取的樣本數(shù),
4、“max_features”指定將用于訓(xùn)練每個(gè)基本估計(jì)器的特征數(shù)量。
接下來,可以在訓(xùn)練集上擬合這個(gè)分類器并對(duì)其進(jìn)行評(píng)分。
回歸問題的過程將相同,唯一的區(qū)別是使用回歸估計(jì)器。
03
隨機(jī)森林(Forests of randomized trees)
一個(gè)隨機(jī)森林是隨機(jī)的決策樹的集合。每個(gè)決策樹都是從數(shù)據(jù)集的不同樣本創(chuàng)建的。樣本是替換抽取的。每棵樹都會(huì)產(chǎn)生自己的預(yù)測。在回歸中,將這些結(jié)果平均以獲得最終結(jié)果。在分類中,最終結(jié)果可以作為得票最多的類。平均和投票通過防止過度擬合來提高模型的準(zhǔn)確性。在Scikit-learn中,可以通過“RandomForestClassifier”和“ExtraTreesClassifier”來實(shí)現(xiàn)隨機(jī)樹的森林。類似的估計(jì)量可用于回歸問題。
04
Boosting算法
?這些算法基于前面描述的 boosting 框架。讓我們來看看其中的幾個(gè)。
05
AdaBoost
AdaBoost 通過擬合一系列弱學(xué)習(xí)器來工作。它在后續(xù)迭代中為不正確的預(yù)測提供更多的權(quán)重,而糾正預(yù)測的權(quán)重較小。這迫使算法專注于更難預(yù)測的觀察。最終預(yù)測來自權(quán)衡多數(shù)票或總和。AdaBoost 可用于回歸和分類問題。讓我們花點(diǎn)時(shí)間看看如何使用 Scikit-learn 將算法應(yīng)用于分類問題。
我們使用“AdaBoostClassifier”,“n_estimators”決定了集成中弱學(xué)習(xí)器的數(shù)量。每個(gè)弱學(xué)習(xí)器對(duì)最終組合的貢獻(xiàn)由“l(fā)earning_rate”控制。默認(rèn)情況下,決策樹用作基礎(chǔ)估計(jì)量。為了獲得更好的結(jié)果,可以調(diào)整決策樹的參數(shù)。你還可以調(diào)整基本估計(jì)量的數(shù)量。
06
梯度樹Boosting(Gradient tree boosting)
梯度樹Boosting也將一組弱學(xué)習(xí)器組合成一個(gè)強(qiáng)學(xué)習(xí)器。就梯度Boosting而言,需要注意三個(gè)主要事項(xiàng):
1、必須使用微分損失函數(shù)
2、決策樹被用作弱學(xué)習(xí)器
3、它是一個(gè)加法模型,所以樹是一個(gè)接一個(gè)地添加的。梯度下降用于在添加后續(xù)樹時(shí)最小化損失。
可以使用 Scikit-learn 構(gòu)建基于梯度樹Boosting的模型。
07
XGBoosting
eXtreme Gradient Boosting,俗稱XGBoost,是一個(gè)極限梯度Boosting框架。它基于一組弱決策樹。它可以在單臺(tái)計(jì)算機(jī)上進(jìn)行并行計(jì)算。該算法使用回歸樹作為基礎(chǔ)學(xué)習(xí)器。它還內(nèi)置了交叉驗(yàn)證。開發(fā)人員喜歡它的準(zhǔn)確性、效率和可行性。
08
LightGBM
LightGBM是一種基于樹學(xué)習(xí)的梯度Boosting算法。與其他使用深度增長的基于樹的算法不同,LightGBM 使用葉方向的樹增長。Leaf-wise 增長算法往往比基于 dep-wise 的算法收斂得更快。
通過設(shè)置適當(dāng)?shù)哪繕?biāo),LightGBM 可用于回歸和分類問題。以下是如何將 LightGBM 應(yīng)用于二元分類問題。
5
何時(shí)使用集成學(xué)習(xí)?
當(dāng)你想提高機(jī)器學(xué)習(xí)模型的性能時(shí),你可以使用集成學(xué)習(xí)技術(shù)。例如,提高分類模型的準(zhǔn)確性或降低回歸模型的平均絕對(duì)誤差。集成還可以產(chǎn)生更穩(wěn)定的模型。當(dāng)你的模型在訓(xùn)練集上過度擬合時(shí),你還可以使用集成學(xué)習(xí)方法來創(chuàng)建更復(fù)雜的模型。然后,集成中的模型將通過組合它們的預(yù)測來提高數(shù)據(jù)集的性能。?
6
什么時(shí)候集成學(xué)習(xí)效果最好?
當(dāng)基本模型不相關(guān)時(shí),集成學(xué)習(xí)效果最好。例如,你可以在不同的數(shù)據(jù)集或特征上訓(xùn)練不同的模型,例如線性模型、決策樹和神經(jīng)網(wǎng)絡(luò)。基礎(chǔ)模型的相關(guān)性越小越好。使用不相關(guān)模型背后的想法是,每個(gè)模型可能都在解決另一個(gè)模型的弱點(diǎn)。它們還具有不同的優(yōu)勢(shì),將它們結(jié)合起來將產(chǎn)生性能良好的估算器。例如,創(chuàng)建一個(gè)僅包含基于樹的模型的集成可能不如將樹型算法與其他類型的算法相結(jié)合那樣有效。
由此可見,在職場中,我們一定要提高自己,讓自己可以閑下來做有意義的事,不能忙得要死干無意義的活。擁有人工智能思維,會(huì)數(shù)據(jù)分析,利用好數(shù)據(jù)價(jià)值,使用好機(jī)器學(xué)習(xí)算法,能夠深入業(yè)務(wù)幫企業(yè)創(chuàng)造價(jià)值,才是職場晉升的關(guān)鍵!
作為見證了這次行業(yè)動(dòng)蕩的互聯(lián)網(wǎng)從業(yè)者,如果不想被危機(jī)感緊緊壓迫著,我們必須跟上科技的快車,要成為坐在車廂里的人。
否則,就別抱怨車輪從臉上壓過去。
上面說了這么多,你想要掌握更多的機(jī)器學(xué)習(xí)入門的知識(shí)以及實(shí)踐能力,搭建更加有價(jià)值的機(jī)器學(xué)習(xí)模型嗎?想要年薪40萬嗎?機(jī)會(huì)來了!11月2日20點(diǎn)特邀多年實(shí)戰(zhàn)講師劉老師將通過2天時(shí)間帶你入門數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí),結(jié)合理論知識(shí)與實(shí)際操作讓你零基礎(chǔ)入門數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí),學(xué)完即可用于工作!
為了讓大家學(xué)好機(jī)器學(xué)習(xí),并具備向上發(fā)展的能力,今天特別給大家申請(qǐng)的優(yōu)惠,限時(shí)0元給到你!
本次課程,今天在本公眾號(hào)內(nèi),前300名學(xué)習(xí)名額限時(shí)免費(fèi)!報(bào)名后福利多多,你將有機(jī)會(huì)獲得:西部數(shù)據(jù)移動(dòng)硬盤1個(gè)+異步社區(qū)15天VIP會(huì)員卡+抽3本異步社區(qū)紙書!(福利詳情繼續(xù)往下看)更多福利先到先得!
?
大廠CV研發(fā)
多年實(shí)戰(zhàn)講師親自帶隊(duì)
2天數(shù)據(jù)挖掘/機(jī)器學(xué)習(xí)實(shí)戰(zhàn)案例分析
6大能力掌握和提升
還在等什么?
掃描二維碼0元名聽課!
領(lǐng)取密碼回復(fù)"DM01"
▼
領(lǐng)取密碼回復(fù)"DM01"
領(lǐng)取參與抽獎(jiǎng)名額及開通VIP權(quán)限
哇哦!學(xué)習(xí)+福利兩不誤!
掃描碼添加助教老師
領(lǐng)取密碼回復(fù)"DM01"
免費(fèi)領(lǐng)取課程
《SVM與xgboost特訓(xùn)》
點(diǎn)擊“閱讀原文”,0元搶限量大神課!
總結(jié)
以上是生活随笔為你收集整理的这才是数据挖掘领域常用的机器学习算法!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小猪买桔子
- 下一篇: 400 bad request的原因意思