实现在西瓜数据集3.0a 上分别用线性核和高斯核训练svm的具体代码
时间: 2023-06-20 22:08:30 浏览: 268
以下是在西瓜数据集3.0a上使用线性核和高斯核训练SVM的Python代码示例:
```python
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 读取数据
data = pd.read_csv('watermelon3.0a.csv')
X = data.iloc[:, 1:-1].values
y = data.iloc[:, -1].values
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 线性核SVM
svm_linear = SVC(kernel='linear')
svm_linear.fit(X_train, y_train)
y_pred_linear = svm_linear.predict(X_test)
accuracy_linear = accuracy_score(y_test, y_pred_linear)
print('Accuracy using linear kernel:', accuracy_linear)
# 高斯核SVM
svm_rbf = SVC(kernel='rbf')
svm_rbf.fit(X_train, y_train)
y_pred_rbf = svm_rbf.predict(X_test)
accuracy_rbf = accuracy_score(y_test, y_pred_rbf)
print('Accuracy using RBF kernel:', accuracy_rbf)
```
其中,我们首先读取西瓜数据集3.0a并将其划分为训练集和测试集。然后,使用`SVC`类来定义SVM分类器,并将`kernel`参数设置为`linear`或`rbf`来分别使用线性核或高斯核。最后,我们使用`fit`方法拟合模型并使用`predict`方法预测测试集的标签,并计算精度分数。
阅读全文