欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python機(jī)器學(xué)習(xí)XGBoost梯度提升決策樹(shù)的高效且可擴(kuò)展實(shí)現(xiàn)

 更新時(shí)間:2024年01月26日 10:30:45   作者:程序員小寒  
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)XGBoost梯度提升決策樹(shù)的高效且可擴(kuò)展實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

python庫(kù)XGBoost

今天給大家分享一個(gè)神奇的 python 庫(kù),XGBoost

https://github.com/dmlc/xgboost

XGBoost 是 eXtreme Gradient Boosting 的縮寫(xiě),是一個(gè)開(kāi)源的 python 庫(kù),它提供了梯度提升決策樹(shù)的高效且可擴(kuò)展的實(shí)現(xiàn)。XGBoost 專(zhuān)為速度和性能而設(shè)計(jì),廣泛應(yīng)用于機(jī)器學(xué)習(xí)競(jìng)賽和實(shí)際應(yīng)用中。它支持各種目標(biāo)函數(shù),包括回歸、分類(lèi)和排名任務(wù)。

為什么選擇 XGBoost?

  • 效率,XGBoost 以其計(jì)算速度而聞名,這使得它比梯度提升的其他實(shí)現(xiàn)更快。

  • 可擴(kuò)展性,它可以跨多個(gè) CPU 甚至 GPU 無(wú)縫擴(kuò)展,使其適合大型數(shù)據(jù)集。

  • 性能,XGBoost 的性能往往優(yōu)于其他算法,尤其是在涉及結(jié)構(gòu)化數(shù)據(jù)的場(chǎng)景中。

  • 靈活性,它支持各種損失函數(shù)和定制,使其適用于廣泛的應(yīng)用。

  • 正則化,XGBoost 包括 L1 和 L2 正則化,有助于防止過(guò)度擬合并提高模型泛化能力。

XGBoost 的工作原理

XGBoost 是梯度提升的一種形式,是一種強(qiáng)大的機(jī)器學(xué)習(xí)技術(shù),用于回歸和分類(lèi)任務(wù)。梯度提升涉及通過(guò)添加弱學(xué)習(xí)器(通常是決策樹(shù))來(lái)增量構(gòu)建模型,以糾正現(xiàn)有模型的錯(cuò)誤。該過(guò)程通過(guò)將新模型擬合先前模型的殘差來(lái)迭代地改進(jìn)預(yù)測(cè)。

XGBoost 涉及三個(gè)主要組件:要最小化的損失函數(shù)、進(jìn)行預(yù)測(cè)的弱學(xué)習(xí)器以及添加弱學(xué)習(xí)器以最小化損失函數(shù)的加性模型。

  • 損失函數(shù):XGBoost 需要一個(gè)可微的損失函數(shù),它衡量預(yù)測(cè)結(jié)果和實(shí)際結(jié)果之間的差異。

  • 弱學(xué)習(xí)器:XGBoost 使用決策樹(shù)作為弱學(xué)習(xí)器。

  • 加法模型:添加新樹(shù)來(lái)糾正現(xiàn)有樹(shù)產(chǎn)生的殘差。隨著更多樹(shù)木的添加,模型變得更加強(qiáng)大。

XGBoost 還實(shí)現(xiàn)了樹(shù)的修剪、正則化和處理缺失值等各種技術(shù),使其成為一種強(qiáng)大的算法。

何時(shí)使用 XGBoost

以下是一些需要考慮的準(zhǔn)則。

  • 結(jié)構(gòu)化或表格數(shù)據(jù):XGBoost 在結(jié)構(gòu)化或表格數(shù)據(jù)上表現(xiàn)異常出色,例如 CSV 文件。

  • 大型數(shù)據(jù)集:XGBoost 憑借其可擴(kuò)展性和并行處理能力,可以有效地處理大量數(shù)據(jù)。

  • 高維空間:XGBoost 可以處理大量特征,無(wú)需進(jìn)行特征約簡(jiǎn),非常適合所有特征都攜帶重要信息的場(chǎng)景。

  • 分類(lèi)和回歸任務(wù):XGBoost 非常適合分類(lèi)(二元和多類(lèi))和回歸任務(wù),使其適用于各種類(lèi)型的預(yù)測(cè)建模。

代碼示例

以下是在 Python 中使用 XGBoost 進(jìn)行分類(lèi)的基本示例。

在此示例中,我們使用 Iris 數(shù)據(jù)集,這是機(jī)器學(xué)習(xí)中流行的數(shù)據(jù)集。我們將數(shù)據(jù)分為訓(xùn)練集和測(cè)試集,創(chuàng)建 XGBoost 分類(lèi)器,在訓(xùn)練數(shù)據(jù)上對(duì)其進(jìn)行訓(xùn)練,然后在測(cè)試數(shù)據(jù)上評(píng)估其性能。

import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
# Load dataset
iris = load_iris()
X, y = iris.data, iris.target
print('X shape:', X.shape)
print('y shape:', y.shape)
# Split dataset into train and test sets
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42)
# Instantiate an XGBoost classifier
model = xgb.XGBClassifier()
# Train the model
model.fit(X_train, y_train)
# Make predictions
predictions = model.predict(X_test)
# Evaluate the model
accuracy = accuracy_score(y_test, predictions)
print('y_test:', y_test)
print('predictions:', predictions)
print(f"Accuracy: {accuracy * 100:.2f}%")
# Feature importance
feature_importance = model.feature_importances_
# Plotting feature importance
plt.barh(iris.feature_names, feature_importance)
plt.xlabel('Feature Importance Score')
plt.ylabel('Features')
plt.title('Visualizing Important Features with XGBoost')
plt.show()

以上就是python機(jī)器學(xué)習(xí)XGBoost梯度提升決策樹(shù)的高效且可擴(kuò)展實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于python XGBoost機(jī)器學(xué)習(xí)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python3自動(dòng)生成MySQL數(shù)據(jù)字典的markdown文本的實(shí)現(xiàn)

    Python3自動(dòng)生成MySQL數(shù)據(jù)字典的markdown文本的實(shí)現(xiàn)

    這篇文章主要介紹了Python3自動(dòng)生成MySQL數(shù)據(jù)字典的markdown文本的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • python區(qū)塊鏈基本原型簡(jiǎn)版實(shí)現(xiàn)示例

    python區(qū)塊鏈基本原型簡(jiǎn)版實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了python區(qū)塊鏈基本原型簡(jiǎn)版實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python中優(yōu)雅使用assert斷言的方法實(shí)例

    Python中優(yōu)雅使用assert斷言的方法實(shí)例

    我們?cè)陂_(kāi)發(fā)一個(gè)程序時(shí)候,與其讓它運(yùn)行時(shí)崩潰,不如在它出現(xiàn)錯(cuò)誤條件時(shí)就崩潰(返回錯(cuò)誤),這時(shí)候斷言assert就顯得非常有用,這篇文章主要給大家介紹了關(guān)于Python中優(yōu)雅使用assert斷言的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • pytorch基礎(chǔ)之損失函數(shù)與反向傳播詳解

    pytorch基礎(chǔ)之損失函數(shù)與反向傳播詳解

    損失函數(shù)(Loss?Function)用于衡量神經(jīng)網(wǎng)絡(luò)輸出與目標(biāo)值之間的誤差,指導(dǎo)網(wǎng)絡(luò)通過(guò)反向傳播優(yōu)化參數(shù),常見(jiàn)的損失函數(shù)包括均方誤差和交叉熵誤差,在訓(xùn)練過(guò)程中,通過(guò)不斷最小化損失函數(shù)值來(lái)調(diào)整網(wǎng)絡(luò)權(quán)重,以期達(dá)到輸出接近目標(biāo)值的效果
    2024-09-09
  • 詳解?PyTorch?Lightning模型部署到生產(chǎn)服務(wù)中

    詳解?PyTorch?Lightning模型部署到生產(chǎn)服務(wù)中

    這篇文章主要為大家介紹了如何將PyTorch?Lightning模型部署到生產(chǎn)服務(wù)中的詳細(xì)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Python中的random()方法的使用介紹

    Python中的random()方法的使用介紹

    這篇文章主要介紹了Python中的random()方法的使用,是Python入門(mén)的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python如何讀取相對(duì)路徑文件

    Python如何讀取相對(duì)路徑文件

    這篇文章主要介紹了Python如何讀取相對(duì)路徑文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Python學(xué)習(xí)之字符串函數(shù)使用詳解

    Python學(xué)習(xí)之字符串函數(shù)使用詳解

    Python的友好在于提供了非常好強(qiáng)大的功能函數(shù)模塊,對(duì)于字符串的使用,同樣提供許多簡(jiǎn)單便捷的字符串函數(shù)。Python 字符串自帶了很多有用的函數(shù),快來(lái)跟隨小編學(xué)習(xí)一下這些函數(shù)的應(yīng)用詳解吧
    2021-12-12
  • Python的Flask框架路由實(shí)現(xiàn)詳解

    Python的Flask框架路由實(shí)現(xiàn)詳解

    這篇文章主要介紹了Python的Flask框架路由實(shí)現(xiàn)詳解,在啟動(dòng)程序時(shí),python解釋器會(huì)從上到下對(duì)代碼進(jìn)行解釋?zhuān)?dāng)遇到裝飾器時(shí),會(huì)執(zhí)行,并把函數(shù)對(duì)應(yīng)的路由以字典的形式進(jìn)行存儲(chǔ),當(dāng)請(qǐng)求到來(lái)時(shí),即可根據(jù)路由查找對(duì)應(yīng)要執(zhí)行的函數(shù)方法,需要的朋友可以參考下
    2023-08-08
  • Python的Flask框架標(biāo)配模板引擎Jinja2的使用教程

    Python的Flask框架標(biāo)配模板引擎Jinja2的使用教程

    Jinja2是Python世界的一款高人氣template engine,是許多開(kāi)源Web框架的選擇,包括Flask這樣的明星級(jí)項(xiàng)目,這里我們就來(lái)共同學(xué)習(xí)Python的Flask框架標(biāo)配模板引擎Jinja2的使用教程
    2016-07-07

最新評(píng)論