sklearn xgboost
时间: 2023-07-01 16:29:26 浏览: 107
sklearn中也集成了XGBoost的模型,使用起来比较简单。下面是一个使用sklearn中XGBoost进行分类的Python代码示例:
```python
import xgboost as xgb
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载数据集
data = load_breast_cancer()
X, y = data.data, data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义模型参数
params = {'objective': 'binary:logistic', 'eval_metric': 'logloss'}
# 训练模型
num_rounds = 100
dtrain = xgb.DMatrix(X_train, label=y_train)
bst = xgb.train(params, dtrain, num_rounds)
# 进行预测
dtest = xgb.DMatrix(X_test)
preds = bst.predict(dtest)
# 输出预测结果
predictions = [round(value) for value in preds]
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: %.2f%%" % (accuracy * 100.0))
```
解释一下代码:
1. 首先导入XGBoost库、sklearn库中的load_breast_cancer、train_test_split和accuracy_score函数。
2. 使用load_breast_cancer函数加载乳腺癌数据集,这是一个二分类问题。
3. 使用train_test_split函数将数据集划分为训练集和测试集,其中测试集占比为20%。
4. 定义模型参数,这里使用了二分类任务的目标函数和评估指标。
5. 使用训练数据和模型参数训练模型,其中将训练数据和标签转换为DMatrix格式。
6. 准备测试数据,这里使用测试集数据进行预测,同样需要将测试数据转换为DMatrix格式。
7. 使用训练好的模型对测试数据进行预测。
8. 输出预测结果,并使用accuracy_score函数计算模型的准确率,以评估模型的预测效果。
需要注意的是,sklearn中的XGBoost使用方法与原生的XGBoost库略有不同,但是由于使用了sklearn的接口,因此在使用过程中可以充分利用sklearn的其他功能,比如GridSearchCV进行参数调优等。
阅读全文