SVM投票法python
时间: 2023-06-29 09:08:06 浏览: 113
SVM投票法是一种集成学习方法,它通过组合多个支持向量机分类器的预测结果来提高分类性能。以下是一个用Python实现SVM投票法的示例:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.ensemble import VotingClassifier
# 加载数据集
iris = datasets.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.3, random_state=42)
# 定义三个不同的SVM模型
svm1 = SVC(kernel='linear', C=1)
svm2 = SVC(kernel='poly', degree=3, C=1)
svm3 = SVC(kernel='rbf', gamma=0.7, C=1)
# 使用投票法组合三个SVM模型
voting_clf = VotingClassifier(estimators=[('svm1', svm1), ('svm2', svm2), ('svm3', svm3)], voting='hard')
voting_clf.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = voting_clf.predict(X_test)
# 输出分类准确率
print("Accuracy:", voting_clf.score(X_test, y_test))
```
在上面的代码中,我们首先加载了鸢尾花数据集,然后划分出训练集和测试集。接着定义了三个不同的SVM模型,并使用投票法将这三个模型组合起来。最后,在测试集上进行预测并输出分类准确率。
需要注意的是,投票法的voting参数可以取值'hard'或'soft'。'hard'表示使用硬投票,即多数表决法;'soft'表示使用软投票,即根据概率加权表决法。在上面的代码中,我们使用的是硬投票。如果要使用软投票,只需要将voting参数改为'soft'即可。
阅读全文