xgboost二分类python代码
时间: 2024-10-15 15:02:21 浏览: 59
XGBoost是一个高效的梯度提升库,特别适合大规模数据处理。以下是使用XGBoost进行二分类任务的一个基础Python代码示例:
```python
# 首先需要安装xgboost库,可以使用pip install xgboost
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载数据集(这里以鸢尾花为例,如果做二分类可以只取两个类)
iris = load_iris()
X = iris.data[:, :2] # 只保留前两特征作为示例,假设我们要做二分类
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 将标签转换成二进制表示(如果是其他类别任务则不需要这一步)
dtrain = xgb.DMatrix(data=X_train, label=(y_train == 1).astype(int)) # 假设1代表正类
dtest = xgb.DMatrix(data=X_test, label=(y_test == 1).astype(int))
# 设置参数,这里是一些基本配置,实际应用可能需要调整
param = {
'objective': 'binary:logistic', # 使用逻辑回归目标函数
'eval_metric': 'logloss', # 评估指标为对数损失
}
# 训练模型
num_round = 100 # 这里只是为了演示,实际可能需要更多轮次
bst = xgb.train(param, dtrain, num_round)
# 预测
preds = bst.predict(dtest)
pred_labels = (preds > 0.5).astype(int) # 阈值设定为0.5,可以根据实际情况调整
# 计算准确率
accuracy = accuracy_score(y_test, pred_labels)
print("Accuracy:", accuracy)
```
阅读全文