我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本文还是以鸢尾花数据集为例,演示XGBClassifier分类器模型的预测功能。值得特别说明的是:XGBClassifier并不存在于sklearn包内,是个单独的包。需要单独pip install。目前来说,这是个单独发行的预测模型个案。

苏南大叔:xgboost的XGBClassifier,如何对鸢尾花数据集进行预测? - xgb分类器预测鸢尾花数据集
xgboost的XGBClassifier,如何对鸢尾花数据集进行预测?(图2-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码故事。本文测试环境:win10python@3.12.0pandas@2.1.3scikit-learn@1.3.2xgboost@2.0.2

xgboost分类器

GBoost是2016年由华盛顿大学陈天奇老师带领开发的一个可扩展机器学习系统。严格意义上讲XGBoost并不是一种模型,而是一个可供用户轻松解决分类、回归或排序问题的软件包。它内部实现了梯度提升树(GBDT)模型,并对模型中的算法进行了诸多优化,在取得高精度的同时又保持了极快的速度,在一段时间内成为了国内外数据挖掘、机器学习领域中的大规模杀伤性武器。

使用XGBClassifier的话,需要先pip安装xgboost库。

pip install xgboost

加载鸢尾花数据【老生常谈】

这里也不说客套话,鸢尾花数据集已经反复说了无数次了,加载方法也说了无数次了。这里直接放代码:

from sklearn.model_selection import train_test_split
import pandas as pd
data_url = "http://download.tensorflow.org/data/iris_training.csv"
column_names = ["萼长", "萼宽", "瓣长", "瓣宽", "种类"]
data = pd.read_csv(data_url, header=0, names=column_names)
X = data.iloc[:, :-1].values
y = data.iloc[:, -1:].values.flatten()
X_train, X_true, y_train, y_true = train_test_split(X, y, test_size=0.2, random_state=8)

不明白的读者,可以参考下面的文章:

模型预测

这个XGBClassifier的使用方式,除了model的初始化,其它的.fit().predict()方法,都和其它的模型一样。

import xgboost as xgb
model = xgb.XGBClassifier()
model.fit(X_train, y_train)
y_pred = model.predict(X_true)
print(y_pred)
print("XGBOOST算法预测准确率:", model.score(X_true, y_true))

输出:

[1 2 2 2 1 1 0 0 1 1 0 2 2 0 0 2 2 2 2 0 0 2 0 1]
XGBOOST算法预测结果: 0.9166666666666666

苏南大叔:xgboost的XGBClassifier,如何对鸢尾花数据集进行预测? - xgboost预测
xgboost的XGBClassifier,如何对鸢尾花数据集进行预测?(图2-2)

模型评估

模型得分这部分也是固定套路,套公式感十足。本文就用最新研究的.classification_report()来做评测吧。

from sklearn.metrics import classification_report
report = classification_report(y_true, y_pred)
print(report)

输出:

              precision    recall  f1-score   support
           0       1.00      1.00      1.00         8
           1       1.00      0.75      0.86         8
           2       0.80      1.00      0.89         8

    accuracy                           0.92        24
   macro avg       0.93      0.92      0.92        24
weighted avg       0.93      0.92      0.92        24

对于这个结果,解释说明,可以参考文章:

结语

机器学习,全称machine learning,简称mlxgboost并不包含在sklearn里面,需要单独安装!这个是xgboost模型的最大不同之处。

更多内容链接:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python    sklearn