模塊7 集成技術(shù)《Python數(shù)據(jù)挖掘?qū)崙?zhàn)》教學(xué)課件_第1頁
模塊7 集成技術(shù)《Python數(shù)據(jù)挖掘?qū)崙?zhàn)》教學(xué)課件_第2頁
模塊7 集成技術(shù)《Python數(shù)據(jù)挖掘?qū)崙?zhàn)》教學(xué)課件_第3頁
模塊7 集成技術(shù)《Python數(shù)據(jù)挖掘?qū)崙?zhàn)》教學(xué)課件_第4頁
模塊7 集成技術(shù)《Python數(shù)據(jù)挖掘?qū)崙?zhàn)》教學(xué)課件_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《Python數(shù)據(jù)挖掘?qū)崙?zhàn)》?精品課件合集《Python數(shù)據(jù)挖掘?qū)崙?zhàn)》

第7章集成技術(shù)7.2隨機森林

7.1基本集成技術(shù)主要內(nèi)容

7.3提升樹

7.5類不平衡問題

7.4案例一、基本的集成技術(shù)

集成技術(shù)是數(shù)據(jù)挖掘中的一個重要研究領(lǐng)域。它的特點是,不采用單一的模型進行分類,而是通過構(gòu)造多個獨立模型的組合,來建立一個性能更優(yōu)的分類器或回歸器?;镜募杉夹g(shù)主要包含三種:裝袋(Bagging)、提升(Boosting)和堆疊(Stacking)。一、基本的集成技術(shù)

一、基本的集成技術(shù)

一、基本的集成技術(shù)Scikit-learn的sklearn.ensemble模塊實現(xiàn)了BaggingClassifier類能輕松創(chuàng)建一個裝袋模型,它的基本語法為:BaggingClassifier(base_estimator=None,

n_estimators=10,

max_samples=1.0,max_features=1.0,

bootstrap=True,

bootstrap_features=False)一、基本的集成技術(shù)

一、基本的集成技術(shù)

一、基本的集成技術(shù)一、基本的集成技術(shù)

一、基本的集成技術(shù)2.提升(Boosting)Scikit-learn的sklearn.ensemble模塊實現(xiàn)了Adaboost算法,它的基本語法如下:AdaboostClassifier(base_estimator=None,

n_estimators=50,

learning_rate=1.0,

algorithm='SAMME.R')一、基本的集成技術(shù)3.堆疊(Stacking)

堆疊(Stacking),也稱作元集成(metaensembling)。與裝袋、提升算法不同,堆疊是一種將多種不同類型的分類器組合在一起的集成技術(shù)。

一、基本的集成技術(shù)3.堆疊(Stacking)

堆疊(Stacking),也稱作元集成(metaensembling)。與裝袋、提升算法不同,堆疊是一種將多種不同類型的分類器組合在一起的集成技術(shù)。

它是一種兩層的集成模型,首先在訓(xùn)練數(shù)據(jù)集上采用不同的算法獨立地訓(xùn)練幾個基分類器(模型)作為第一層;再組合第一層模型的輸出生成新的數(shù)據(jù)集(原始的數(shù)據(jù)集中的標簽仍作為新數(shù)據(jù)集的標簽),并在新數(shù)據(jù)集上訓(xùn)練第二層的分類器(也稱為“元模型”)。一、基本的集成技術(shù)3.堆疊(Stacking)

一、基本的集成技術(shù)3.堆疊(Stacking)

生成元模型的訓(xùn)練集和測試集的過程如下:一、基本的集成技術(shù)3.堆疊(Stacking)

Scikit-learn的sklearn.ensemble模塊提供了StackingClassifier類來完成基于堆疊的集成分類模型,其基本語法為:StackingClassifier(estimators,

final_estimator=None,

cv=None,

stack_method='auto')二、隨機森林

二、隨機森林

隨機森林的算法步驟如下:二、隨機森林

在Scikit-learn的sklearn.ensemble模塊提供了RandomForestClassifier類實現(xiàn)一個隨機森林模型,它的基本語法為:RandomForestClassifier(n_estimators=100,

criterion='gini',

max_depth=None,

bootstrap=True)三、提升樹

提升樹(BoostedTree)又稱為梯度提升樹(GradientBoostedTree,GBT),梯度提升決策樹(GradientBoostedDecisionTree,GBDT),多重累加回歸樹(MutipleAdditiveRegressionTree,MART)等。

提升樹是一種回歸的集成模型,它的基模型是CART回歸樹。與隨機森林基于裝袋思想構(gòu)造集成模型的方式不同,提升樹采用提升的思想集成多棵樹。三、提升樹

以下面的一個回歸預(yù)測問題為例來說明提升樹的使用。假設(shè)我們希望對家庭成員喜好游戲的程度進行評分。如果已經(jīng)訓(xùn)練好了提升樹,它有兩棵CART回歸樹。

每個家庭成員的特征包括:{年齡,是否使用計算機}。三、提升樹

對于每條測試數(shù)據(jù),每棵回歸樹會在葉子節(jié)點產(chǎn)生一個預(yù)測評分,最終模型的預(yù)測結(jié)果是多棵樹的評分之和。

例如,如果新的測試數(shù)據(jù)是小明,他的特征是:{年齡<18,使用計算機},則模型會給出2.9的評分;如果新的測試數(shù)據(jù)是爸爸,他的特征是:{年齡>18,使用計算機},他會得到-0.1的評分。三、提升樹

三、提升樹

三、提升樹

提升樹的原理:

提升樹通過加入新樹,不斷減小損失函數(shù)的值,和梯度下降方法的目標是一致的。所以,提升樹也稱作梯度提升樹(GradientBoostingTree)。三、提升樹

sklearn.ensemble模塊中的GradientBoostingClassifier類能幫我們輕松創(chuàng)建一個提升樹分類模型,它的基本語法為:

GradientBoostingClassifier(loss=‘deviance’,、

learning_rate=0.1,n_estimators=100,subsample=1.0,

validation_fraction=0.1)四、案例:電信客戶流失預(yù)測目標:建立客戶流失預(yù)測模型。數(shù)據(jù)集:一共有7043條數(shù)據(jù)和21個特征。類分布的柱狀圖四、案例:電信客戶流失預(yù)測模型的性能比較:提升樹的準確度:0.7614663926499033,平衡準確度:0.7223020243731618隨機森林的準確度:0.7577742182462928,平衡準確度:0.7683200372943599Adaboost的準確度:0.7621746050934881,平衡準確度:0.6793865234032379五、類別不平衡問題有時數(shù)據(jù)集種存在嚴重的類不平衡問題,即訓(xùn)練集中某一個類別的樣本數(shù)遠遠多于另外一個類別。

許多分類模型往往在多數(shù)類樣本上表現(xiàn)良好,而在少數(shù)類樣本上表現(xiàn)很差。

解決類不平衡問題的方法主要包括:抽樣方法、代價敏感方法和集成學(xué)習(xí)的方法。五、類別不平衡問題

“抽樣方法”通過對原始數(shù)據(jù)集的不同類別進行抽樣,產(chǎn)生新的平衡數(shù)據(jù)集,它包括:過抽樣(over-sampling)、欠抽樣(under-sampling)、合成數(shù)據(jù)等多種方法。過抽樣通過對少數(shù)類上的樣本進行多次抽樣,以產(chǎn)生和多數(shù)類數(shù)量相等的樣本,顯然,過抽樣可能改變少數(shù)類的分布;欠抽樣是從多數(shù)類中抽取一定比例的樣本,數(shù)量和少數(shù)類相當,以便實現(xiàn)數(shù)據(jù)類別的平衡,顯然,欠抽樣方法將導(dǎo)致一部分數(shù)據(jù)信息的丟失。五、類別不平衡問題

“代價敏感的學(xué)習(xí)”(cost-sensitivelearning)的思想是對每一類樣本設(shè)置不同的錯分代價,其中,少數(shù)類樣本的代價更高,以減少其被錯分的概率。

前面介紹的許多模型都提供了設(shè)置樣本權(quán)重或者類別權(quán)重的方法,例如,決策樹(DecisionTreeClassifier類)、支持向量機(SVC類)、隨機森林(RandomForestClassifier類)和提升樹(GradientBoostingClassifier類),它們在創(chuàng)建模型時或者模型的訓(xùn)練函數(shù)fit()中,都可以設(shè)置類別權(quán)重或樣本權(quán)重。這實際上是使用代價敏感學(xué)習(xí)方法處理不平衡數(shù)據(jù)。五、類別不平衡問題

另外一種處理不平衡數(shù)據(jù)的方法是采用集成學(xué)習(xí)的思想。既然裝袋方法的每個基分類器只抽樣了部分數(shù)據(jù)集進行訓(xùn)練,那么,我們也可以從多數(shù)類中抽樣一定比例的樣本,將它和少數(shù)類樣本一起構(gòu)成平衡數(shù)據(jù)集,進而訓(xùn)練基分類器,最后組合多個基分類器構(gòu)成集成模型。

easyensemble和balancecascade就是兩種代表性的利用集成學(xué)習(xí)處理不平衡數(shù)據(jù)的模型。五、類別不平衡問題1.SMOTE(SyntheticMinorityOver-samplingTechnique)

它通過過抽樣少數(shù)類來生成平衡數(shù)據(jù)集的技術(shù)。它通過在少數(shù)類上使用過抽樣技術(shù)生成合成的新樣本,而不是簡單的重復(fù)抽樣。五、類別不平衡問題2.ADASYN(AdaptiveSyntheticSamplingApproachforImbalancedLearning)它自適應(yīng)地在少數(shù)類上合成樣本的方法。根據(jù)少數(shù)類的分布,從少數(shù)類中比較難被學(xué)習(xí)的樣本產(chǎn)生新的數(shù)據(jù)五、類別不平衡問題3.easyensemble

它采用集成學(xué)習(xí)的思想解決類不平衡問題。

easyensemble是2009年周志華教授提出的算法,它首先在多數(shù)類上使用欠抽樣技術(shù)獲得一個規(guī)模與少數(shù)類相當?shù)淖蛹?,然后和少?shù)類一起構(gòu)成平衡數(shù)據(jù)集,并在它上面訓(xùn)練一個Adaboost集成模型。然后重復(fù)多次這樣的操作,將訓(xùn)練的多個Adaboost模型再組合起來。五、類別不平衡問題3.easyensemble

五、類別不平衡問題不平衡數(shù)據(jù)處理的Python實現(xiàn)Python的imbalanced-learn模塊提供了多種不平衡數(shù)據(jù)的處理方法。該模塊需要在Anaconda命令行窗口中執(zhí)行pipinstallimbalanced-learn命令來安裝。下面我們簡要介紹基于其中的SMOTE、ADASYN和easyEnsemble類的使用。五、類別不平衡問題1.SMOTE類SMOTE(sampling_strategy='auto',

random_state=None,k_neighbors=5)2.ADASYN類ADASYN(sampling_strategy='auto',

random_state=None,n_neighbors=5)五、類別不平衡問題3.

EasyEnsembleClassifier類imbalanced-learn的over_sampling模塊中EasyEnsem

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論