xgboost支持向量机python代码
时间: 2023-09-10 21:10:36 浏览: 90
支持向量机代码python
XGBoost并不直接支持SVM,但是可以使用XGBoost作为特征选择器,然后将选择的特征用于SVM分类器。
下面是一个示例代码:
```python
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 使用XGBoost选择特征
dtrain = xgb.DMatrix(X_train, label=y_train)
params = {'objective': 'binary:logistic'}
bst = xgb.train(params, dtrain)
importance = bst.get_score(importance_type='weight')
selected_features = [int(k[1:]) for k in importance.keys()]
# 使用选择的特征训练SVM分类器
svm = SVC()
svm.fit(X_train[:, selected_features], y_train)
# 在测试集上测试
accuracy = svm.score(X_test[:, selected_features], y_test)
print("Accuracy:", accuracy)
```
这里使用了鸢尾花数据集作为示例数据集,并将其划分为训练集和测试集。首先使用XGBoost选择特征,然后使用选择的特征训练SVM分类器,并在测试集上测试分类器的准确率。
阅读全文