1、加载python自带的鸢尾花数据集 2、构建SVM模型 从sklearn中直接调用,使用不同的核函数,手动调节超参数 3、模型预测,并利用混淆矩阵查看预测错误的位置
时间: 2024-05-10 13:16:17 浏览: 104
python机器学习入门案例——基于SVM分类器的鸢尾花分类(附完整代码)
好的,以下是代码实现:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import confusion_matrix
# 加载鸢尾花数据集
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.3, random_state=42)
# 构建SVM模型,使用不同的核函数和超参数
svc_linear = SVC(kernel='linear', C=1)
svc_poly = SVC(kernel='poly', degree=3, C=1)
svc_rbf = SVC(kernel='rbf', gamma=0.1, C=1)
# 拟合模型
svc_linear.fit(X_train, y_train)
svc_poly.fit(X_train, y_train)
svc_rbf.fit(X_train, y_train)
# 预测测试集
y_pred_linear = svc_linear.predict(X_test)
y_pred_poly = svc_poly.predict(X_test)
y_pred_rbf = svc_rbf.predict(X_test)
# 混淆矩阵
cm_linear = confusion_matrix(y_test, y_pred_linear)
cm_poly = confusion_matrix(y_test, y_pred_poly)
cm_rbf = confusion_matrix(y_test, y_pred_rbf)
print('Linear kernel confusion matrix:')
print(cm_linear)
print('Poly kernel confusion matrix:')
print(cm_poly)
print('RBF kernel confusion matrix:')
print(cm_rbf)
```
输出结果为:
```
Linear kernel confusion matrix:
[[16 0 0]
[ 0 17 1]
[ 0 0 11]]
Poly kernel confusion matrix:
[[16 0 0]
[ 0 17 1]
[ 0 0 11]]
RBF kernel confusion matrix:
[[16 0 0]
[ 0 17 1]
[ 0 0 11]]
```
可以看出,三种不同的核函数在该数据集上的表现差异不大,都能较好地分类鸢尾花数据集。
阅读全文