Pycharm中SVM分类模型代及实例
时间: 2024-02-05 22:05:09 浏览: 161
使用SVM做分类
在 PyCharm 中,可以使用 Scikit-learn 库中的 SVM 模型进行分类。以下是 SVM 分类模型的代码示例:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
# 加载数据集
iris = datasets.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=0)
# 创建 SVM 分类模型
clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
# 在测试集上测试模型性能
accuracy = clf.score(X_test, y_test)
print(f'Accuracy: {accuracy:.2f}')
```
上述代码中,首先使用 Scikit-learn 中的数据集加载器加载鸢尾花数据集,其中 X 为特征向量,y 为标签。然后使用 train_test_split 函数将数据集划分为训练集和测试集。接着,创建一个 SVM 分类模型,使用 fit 函数在训练集上拟合模型。最后,使用 score 函数在测试集上评估模型性能,输出模型的分类准确率。
需要注意的是,SVM 分类模型的性能和泛化能力受到超参数的影响,如核函数、惩罚系数等。可以使用 GridSearchCV 函数进行超参数调优,选择最优的超参数组合。
```python
from sklearn.model_selection import GridSearchCV
# 定义超参数范围
parameters = {'kernel': ('linear', 'rbf'), 'C': [1, 10]}
# 创建 SVM 分类器
svc = svm.SVC()
# 使用 GridSearchCV 进行超参数调优
clf = GridSearchCV(svc, parameters)
# 在训练集上拟合模型
clf.fit(X_train, y_train)
# 输出最优的超参数组合
print(f'Best parameters: {clf.best_params_}')
# 在测试集上测试模型性能
accuracy = clf.score(X_test, y_test)
print(f'Accuracy: {accuracy:.2f}')
```
上述代码中,首先定义 SVM 分类模型的超参数范围,包括核函数和惩罚系数。然后创建一个 SVM 分类器,使用 GridSearchCV 函数进行超参数调优。最后,输出最优的超参数组合,并使用 score 函数在测试集上评估模型性能。
阅读全文