python机器学习——xgboost使用

xgboost使用

首先需要安装xgboost,详见安装

本文以“泰坦尼克号沉船事故”数据集为例,对比随机决策森林以及XGBoost 模型对泰坦尼克上的乘客是否生还的预测能力:

# 导入 pandas 用于数据分析
import pandas as pd
# 利用 pandas 的 read_csv 模块直接从互联网收集泰坦尼克号乘客数据(通过 URL 地址来下载 Titanic 数据)
titanic = pd.read_csv('http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt')
# 选取 sex, age, pclass 作为训练特征
X = titanic[['pclass', 'age', 'sex']]
y = titanic['survived']
# 对缺失的 age 信息,使用平均值方法进行补全,即以 age 列已知数据的平均数填充
X['age'].fillna(X['age'].mean(), inplace=True)
# 对原始数据进行分割,随机采样 25% 的数据作为测试集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state = 33)
# 从 sklearn.feature_extraction 导入 DictVectorizer
from sklearn.feature_extraction import DictVectorizer
vec = DictVectorizer(sparse=False)
# 对原始数据进行特征向量化处理
X_train = vec.fit_transform(X_train.to_dict(orient='record'))
X_test = vec.transform(X_test.to_dict(orient='record'))
# 采用默认配置的随机森林分类器对测试集进行预测
from sklearn.ensemble import RandomForestClassifier
rfc = RandomForestClassifier()
rfc.fit(X_train, y_train)
print ( "The accuracy of Random Forest Classifier on testing set:", rfc.score(X_test, y_test))

在这里插入图片描述

# 采用默认配置的 XGBoost 模型对相同的测试集进行预测
from xgboost import XGBClassifier
xgbc = XGBClassifier(learning_rate=0.1)
xgbc.fit(X_train, y_train)
print ('The accuracy of eXtreme Gradient Boosting Classifier on testing set:', xgbc.score(X_test, y_test))

在这里插入图片描述
由上面的结果可知,随机森林模型总体在测试集上预测的准确性为 78.11% ,而 XGBoost 模型总体在测试集上预测的准确性为 79.03% 。说明 XGBoost 分类模型的确可以发挥更好的预测能力。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XGBoost是一个开源的机器学习项目,它是陈天奇等人开发的,能够高效地实现梯度提升决策树算法,并在算法和工程方面进行了许多改进。XGBoost在Kaggle竞赛和其他机器学习竞赛中广泛应用,并取得了不错的成绩。它全名为极端梯度提升(eXtreme Gradient Boosting),是目前最快最好的开源boosted tree工具包之一。 XGBoost使用的算法是改进的梯度提升决策树(GBDT)。与传统的GBDT相比,XGBoost通过对目标函数进行二阶泰勒展开,求出下一步要拟合的树的叶子节点权重,从而根据损失函数的减小情况选择合适的属性进行分裂。这种改进使得XGBoost在训练效率和预测准确性方面表现出色。 对于机器学习中的XGBoost回归问题,它使用集成学习方法来构建预测模型。预测模型可以表示为XGBoost的形式,其中包含了多个弱分类器的组合。这些弱分类器通过迭代的方式不断优化,使得整个预测模型的性能得到提升。 总之,XGBoost是一个强大的机器学习工具,既可以用于分类问题,也可以用于回归问题。其采用了改进的梯度提升决策树算法,具有高效、准确的特点,并在许多机器学习竞赛中取得了优秀的成绩。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [机器学习算法(十五):XGBoost](https://blog.csdn.net/weixin_39910711/article/details/121210569)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值