使用XGBOOST進行機器學習實驗報告_第1頁
使用XGBOOST進行機器學習實驗報告_第2頁
使用XGBOOST進行機器學習實驗報告_第3頁
使用XGBOOST進行機器學習實驗報告_第4頁
使用XGBOOST進行機器學習實驗報告_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、使用 XGBOOST 進行大數(shù)據(jù)機器學習 OUTLINE:1.BOOSTING方法的起源,背景與當前發(fā)展狀況。2.XGBOOST的介紹3.在WINDOWS下安裝與配置XGBOOST。4.設計實驗,并使用XGBOOST進行實驗。5.實驗核心代碼。6.總結與分析。杜帥劍郭振強于海濤1.BOOSTING方法的起源,背景與當前發(fā)展狀況。Boosting方法來源于兩位科學家對強可學習和弱可學習的研究(弱分類器是指分類結果僅僅比隨機猜測略好的方法),之后有人證明兩種分類器是等價的,也就是說弱可學習算法可以被提升為強可學習算法。Boosting就是一種提升任意給定學習算法分類準確度的方法,大多提升方法都是改

2、變訓練數(shù)據(jù)的概率分布,針對不同分布來調(diào)用弱學習算法學習一系列弱分類器,組合成為 一個強分類器,這種思想被稱為ensemble。Adaboost是Boosting方法的第一種實用的實現(xiàn),在實踐中也得到了廣泛的使用,它在訓練過程中生成成百上千個分類性能較弱的樹在,生成每一棵樹的時候采用梯度下降的思想,以之前生成的所有樹為基礎,向著最小化給定目標函數(shù)的方向多走一步。在合理的參數(shù) 設置下,我們往往要生成一定數(shù)量的樹才能達到令人滿意的準確率。在數(shù)據(jù)集較大較復雜的時候,我們可能需要幾千次迭代運算,耗時比較高。2.XGBOOST的介紹XGBoost 算法可以有效的解決這個問題,相對于 Adaboost,XG

3、Boost 采用了二階泰勒展開以使算法可以更快的收斂到全局最優(yōu)。同時,XGBoost 采用 C+進行實現(xiàn),運算速度 和精度都得到了大大的提升,在實踐中,XGBoost 贏得了多次機器學習競賽的冠軍,在 Kaggle 也是最火的工具包之一。3.安裝與配置(WINDOWS): (1)首先從github下載源代碼:https:/ (2)下載成功后,打開xgboost-master源文件夾下的windows文件夾,打開里面的VS工程。 編譯生成Python使用的xgboost_wrapper.dll。(3)打開命令行輸入:cd到之前build的目錄下;(4)之后執(zhí)行 “python setup.py

4、install”進行安裝。使用時,只需要在Python 環(huán)境下輸入 “import xgboost as xgb” 即可。4.設計實驗,并使用XGBOOST進行實驗。 我們使用 XGBoost 對 Kaggle 上的數(shù)據(jù)競賽”Santander Customer Satisfaction”進行了預測。 該項目的目的是通過銀行客戶的歷史數(shù)據(jù)訓練一個模型來預測客戶對銀行的滿意度,數(shù)據(jù)集上包含超過 300 個屬性,經(jīng)過仔細分析,我們認為其中的屬性包含了存款,貸款,國籍,年齡等等。所有的屬性都是匿名的并且包含了許多空值。我們的處理思路如下:1. 讀取數(shù)據(jù),觀察數(shù)據(jù)特征,發(fā)現(xiàn)可能有常量列和重復列。 2.

5、 消除常量列,29 列數(shù)據(jù)被刪除,這些屬性值可能是永遠為 0,或者永遠為 1。 3. 消除重復列,數(shù)據(jù)中只有兩列重復。 4. 首先使用隨機森林進行訓練,訓練的目標不是得到最終結果,而是期望得到每個屬性 特征的重要性,為我們后面進行特征選擇做準備。 5. 將重要性1e-5 的列選擇出來,最終剩余 193 列數(shù)據(jù)。 6. 我們在 193 維度下進行預測,構建 xgboost 分類器,設置基本分類器數(shù)目為 110,使 用 auc 度量指標為了直觀的觀察各個特征,我們畫出了特征的重要性分布圖,可以發(fā)現(xiàn),大部分特征的 重要性是很低的,只有少數(shù)特征在決策中起到了重要的作用: 圖上大部分屬性的重要性集中在很

6、小的一個范圍內(nèi),我們將這個范圍展開畫出圖形:5.實驗核心代碼(#后面是注釋)。# split data into train and test# 將數(shù)據(jù)分成訓練集合測試集test_id = test.IDtest = test.drop(ID,axis=1)X = train.drop(TARGET,ID,axis=1)y = train.TARGET.valuesX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,random_state=1729)print(X_train.shape, X_tes

7、t.shape, test.shape)# 我們采用默認的閾值 1e-5 進行特征選擇,那么將從 306 個特征中選出 193 個。# 下面進行特征選擇clf = RandomForestClassifier(random_state=1729)selector = clf.fit(X_train, y_train)print(there are %d feature have a importance value more than 1e-5 % (np.count_nonzero(clf.feature_importances_ 1e-5)# 根據(jù)以上的輸出結果,如果我們采用默認的閾值 1

8、e-5 進行特征選擇,那么將從 306# 個特征中選出 193 個。# 下面進行特征選擇fs = SelectFromModel(selector, prefit=True)# 按選擇到的特征分別處理訓練集和測試集X_train = fs.transform(X_train)X_test = fs.transform(X_test)test = fs.transform(test)print(X_train.shape, X_test.shape, test.shape)6.總結與分析。通過以上的實驗,我們在 Kaggle 上得到了一個 0.83 的分數(shù),意味著我們在測試集上的 準確率達到了 83.9%。這個結果距離榜單上最高分數(shù) 84.3%尚有一些差距。想要更好的結果需要我們對特征和模型進行更加細致的分析與調(diào)優(yōu)。本次實驗主要使用

溫馨提示

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

評論

0/150

提交評論