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