xgboost python代码实现
时间: 2024-06-04 11:05:12 浏览: 188
XGBoost是一种强大的机器学习算法,它被广泛应用于数据挖掘、自然语言处理、计算机视觉等领域。它的Python实现非常方便,你只需要安装xgboost库即可。
以下是一个简单的XGBoost分类器的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',
'eta': 0.1,
'max_depth': 5,
'min_child_weight': 1,
'gamma': 0,
'subsample': 0.8,
'colsample_bytree': 0.8,
'scale_pos_weight': 1,
'seed': 42
}
# 训练模型
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test)
model = xgb.train(params=params, dtrain=dtrain, num_boost_round=100)
# 预测并计算准确率
y_pred = model.predict(dtest)
y_pred[y_pred>=0.5] = 1
y_pred[y_pred<0.5] = 0
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
这段代码首先加载了一个乳腺癌数据集,然后划分训练集和测试集。接着定义了模型参数,包括目标函数、评价指标、学习率、树的深度等。然后使用xgb.DMatrix将训练集转换为XGBoost的内部数据格式,再使用xgb.train训练模型。最后使用训练好的模型进行预测,并计算准确率。
阅读全文