最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

用Python 開(kāi)發(fā)您的第一個(gè) XGBoost 模型

2021-08-24 10:58 作者:python風(fēng)控模型  | 我要投稿

XGBoost是梯度提升決策樹(shù)的一種實(shí)現(xiàn),專為速度和性能而設(shè)計(jì),是流行的機(jī)器學(xué)習(xí)競(jìng)賽的算法。

之前介紹了

機(jī)器學(xué)習(xí)的 XGBoost 算法簡(jiǎn)介

XGBoost feature importance特征重要性-實(shí)戰(zhàn)印第安人糖尿病數(shù)據(jù)集

在這篇文章中,您將了解如何在 Python 中安裝和創(chuàng)建您的第一個(gè) XGBoost 模型。

看完這篇文章你會(huì)知道:

  • 如何在您的系統(tǒng)上安裝 XGBoost 以在 Python 中使用。

  • 如何準(zhǔn)備數(shù)據(jù)并訓(xùn)練您的第一個(gè) XGBoost 模型。

  • 如何使用 XGBoost 模型進(jìn)行預(yù)測(cè)。

如何使用 scikit-learn 在 Python 中開(kāi)發(fā)您的第一個(gè) XGBoost 模型

圖片


教程概述

本教程分為以下 6 個(gè)部分:

  1. 按裝 XGBoost 的 Python包。

  2. 問(wèn)題定義和下載數(shù)據(jù)集。

  3. 加載和準(zhǔn)備數(shù)據(jù)。

  4. 訓(xùn)練 XGBoost 模型。

  5. 預(yù)測(cè)并評(píng)估模型。

  6. 將所有內(nèi)容聯(lián)系在一起并運(yùn)行示例。


1. 安裝 XGBoost 以在 Python 中使用

假設(shè)您有一個(gè)可用的 SciPy 環(huán)境,可以使用 pip 輕松安裝 XGBoost。

例如:


要更新您的 XGBoost 安裝,您可以鍵入:


如果您無(wú)法使用 pip 或想要從 GitHub 運(yùn)行最新代碼,則另一種安裝 XGBoost 的方法要求您克隆 XGBoost 項(xiàng)目并執(zhí)行手動(dòng)構(gòu)建和安裝。

作為參考,您可以查看XGBoost Python API 參考。
您可以在XGBoost 安裝指南 中了解有關(guān)如何為不同平臺(tái)安裝 XGBoost 的更多信息。有關(guān)安裝 XGBoost for Python 的最新說(shuō)明,請(qǐng)參閱XGBoost Python 包。


2. 問(wèn)題描述:預(yù)測(cè)糖尿病的發(fā)作

在本教程中,我們將使用皮馬印第安人糖尿病發(fā)病數(shù)據(jù)集。

該數(shù)據(jù)集由 8 個(gè)描述患者醫(yī)療細(xì)節(jié)的輸入變量和一個(gè)用于指示患者是否會(huì)在 5 年內(nèi)患上糖尿病的輸出變量組成。

您可以在 UCI 機(jī)器學(xué)習(xí)存儲(chǔ)庫(kù)網(wǎng)站上了解有關(guān)此數(shù)據(jù)集的更多信息。

這是第一個(gè) XGBoost 模型的一個(gè)很好的數(shù)據(jù)集,因?yàn)樗休斎胱兞慷际菙?shù)字,并且問(wèn)題是一個(gè)簡(jiǎn)單的二元分類(lèi)問(wèn)題。對(duì)于 XGBoost 算法來(lái)說(shuō),它不一定是一個(gè)好問(wèn)題,因?yàn)樗且粋€(gè)相對(duì)較小的數(shù)據(jù)集,并且是一個(gè)易于建模的問(wèn)題。

下載此數(shù)據(jù)集并將其放入您當(dāng)前的工作目錄,文件名為“?pima-indians-diabetes.csv?”(更新:從此處下載)。


3. 加載和準(zhǔn)備數(shù)據(jù)

在本節(jié)中,我們將從文件中加載數(shù)據(jù)并準(zhǔn)備用于訓(xùn)練和評(píng)估 XGBoost 模型。

我們將首先導(dǎo)入我們打算在本教程中使用的類(lèi)和函數(shù)。

接下來(lái),我們可以使用 NumPy 函數(shù)loadtext()將 CSV 文件加載為 NumPy 數(shù)組。

我們必須將數(shù)據(jù)集的列(屬性或特征)分成輸入模式(X)和輸出模式(Y)。我們可以通過(guò)以 NumPy 數(shù)組格式指定列索引來(lái)輕松完成此操作。

最后,我們必須將 X 和 Y 數(shù)據(jù)拆分為訓(xùn)練和測(cè)試數(shù)據(jù)集。訓(xùn)練集將用于準(zhǔn)備 XGBoost 模型,測(cè)試集將用于進(jìn)行新的預(yù)測(cè),我們可以從中評(píng)估模型的性能。

為此,我們將使用scikit-learn 庫(kù)中的train_test_split()函數(shù)劃分?jǐn)?shù)據(jù)為訓(xùn)練集和測(cè)試集。我們還為隨機(jī)數(shù)生成器指定了一個(gè)種子,這樣每次執(zhí)行這個(gè)例子時(shí)我們總是得到相同的數(shù)據(jù)分割。


我們現(xiàn)在準(zhǔn)備訓(xùn)練我們的模型。

4. 訓(xùn)練 XGBoost 模型

XGBoost 提供了一個(gè)包裝類(lèi),允許將模型視為 scikit-learn 框架中的分類(lèi)器或回歸器。

這意味著我們可以將完整的 scikit-learn 庫(kù)與 XGBoost 模型一起使用。

用于分類(lèi)的 XGBoost 模型稱為XGBClassifier。我們可以創(chuàng)建并將其擬合到我們的訓(xùn)練數(shù)據(jù)集。使用 scikit-learn API 和model.fit()函數(shù)擬合或訓(xùn)練模型。

模型訓(xùn)練和人腦訓(xùn)練有很多相似原理,機(jī)器不是天才,機(jī)器也是需要喂養(yǎng)數(shù)據(jù)學(xué)習(xí)的喲!

可以在構(gòu)造函數(shù)中將用于訓(xùn)練模型的參數(shù)傳遞給模型。在這里,我們使用合理的默認(rèn)值。

您可以通過(guò)打印模型來(lái)查看訓(xùn)練模型中使用的參數(shù),例如:


您可以在XGBoost Python scikit-learn API 中了解有關(guān)XGBClassifierXGBRegressor類(lèi)默認(rèn)值的更多信息。

您可以在XGBoost 參數(shù)頁(yè)面上詳細(xì)了解每個(gè)參數(shù)的含義以及如何配置它們。

我們現(xiàn)在準(zhǔn)備使用經(jīng)過(guò)訓(xùn)練的模型進(jìn)行預(yù)測(cè)。


5. 使用 XGBoost 模型進(jìn)行預(yù)測(cè)

我們可以使用測(cè)試數(shù)據(jù)集上的擬合模型進(jìn)行預(yù)測(cè)。

為了進(jìn)行預(yù)測(cè),我們使用 scikit-learn 函數(shù)model.predict()。

默認(rèn)情況下,XGBoost 所做的預(yù)測(cè)是概率。因?yàn)檫@是一個(gè)二元分類(lèi)問(wèn)題,每個(gè)預(yù)測(cè)都是輸入模式屬于第一類(lèi)的概率。我們可以通過(guò)將它們四舍五入為 0 或 1 來(lái)輕松地將它們轉(zhuǎn)換為二進(jìn)制類(lèi)值。

現(xiàn)在我們已經(jīng)使用擬合模型對(duì)新數(shù)據(jù)進(jìn)行了預(yù)測(cè),我們可以通過(guò)將它們與預(yù)期值進(jìn)行比較來(lái)評(píng)估預(yù)測(cè)的性能。為此,我們將使用scikit-learn 中內(nèi)置的accuracy_score()函數(shù)。


6. 把代碼整合在一起

我們可以將所有這些部分結(jié)合在一起,下面是完整的代碼清單。



注意:您的結(jié)果可能會(huì)因算法或評(píng)估程序的隨機(jī)性或數(shù)值精度的差異而有所不同??紤]多次運(yùn)行該示例并比較平均結(jié)果。

運(yùn)行此示例會(huì)產(chǎn)生以下輸出。


考慮到模型的功能和問(wèn)題的適度復(fù)雜性,這是這個(gè)問(wèn)題的一個(gè)很好的準(zhǔn)確度分?jǐn)?shù),這是我們所期望的。


總結(jié)

在這篇文章中,您學(xué)習(xí)了如何用 Python 建立您的第一個(gè) XGBoost 模型。

具體來(lái)說(shuō),你學(xué)到了:

  • 如何在您的系統(tǒng)上安裝 XGBoost,以便與 Python 一起使用。

  • 如何準(zhǔn)備數(shù)據(jù)并在標(biāo)準(zhǔn)機(jī)器學(xué)習(xí)數(shù)據(jù)集上訓(xùn)練您的第一個(gè) XGBoost 模型。

  • 如何使用 scikit-learn 進(jìn)行預(yù)測(cè)并評(píng)估經(jīng)過(guò)訓(xùn)練的 XGBoost 模型的性能。


用Python 開(kāi)發(fā)您的第一個(gè) XGBoost 模型就為大家介紹到這里了,歡迎各位同學(xué)報(bào)名<python機(jī)器學(xué)-生物信息學(xué)>,學(xué)習(xí)更多建模相關(guān)知識(shí)


版權(quán)聲明:文章來(lái)自公眾號(hào)(python風(fēng)控模型),未經(jīng)許可,不得抄襲。遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

用Python 開(kāi)發(fā)您的第一個(gè) XGBoost 模型的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
彭山县| 宣化县| 察哈| 襄城县| 云林县| 五峰| 稻城县| 海淀区| 南康市| 阿瓦提县| 巴彦县| 安陆市| 林芝县| 股票| 嫩江县| 宁津县| 临澧县| 广河县| 青川县| 云南省| 盐津县| 楚雄市| 疏附县| 罗山县| 齐齐哈尔市| 科技| 平罗县| 武城县| 大渡口区| 保靖县| 兰考县| 肥东县| 新巴尔虎右旗| 宜春市| 罗源县| 同江市| 长阳| 盐池县| 兴城市| 合水县| 武川县|