选择两个UCI数据集分别用线性核和高斯核训练一个SVM
- 数据集一:Wine Quality Dataset
这个数据集包含了红葡萄酒和白葡萄酒的化学分析数据,共计11个特征,包括酒精浓度、挥发性酸度、柠檬酸浓度等等。目标变量为酒的质量评分,分为0-10共11个等级。数据集中共有6497个样本。
使用线性核训练SVM:
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("winequality.csv")
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(data.drop('quality', axis=1), data['quality'], test_size=0.2, random_state=42)
# 训练SVM
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)
# 预测
y_pred = svm.predict(X_test)
# 评估
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
使用高斯核训练SVM:
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("winequality.csv")
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(data.drop('quality', axis=1), data['quality'], test_size=0.2, random_state=42)
# 训练SVM
svm = SVC(kernel='rbf')
svm.fit(X_train, y_train)
# 预测
y_pred = svm.predict(X_test)
# 评估
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
- 数据集二:Iris Dataset
这个数据集包含了三种不同的鸢尾花,共计4个特征,包括花萼长度、花萼宽度、花瓣长度和花瓣宽度。目标变量为鸢尾花的种类,分为三种:Iris Setosa、Iris Versicolour和Iris Virginica。数据集中共有150个样本。
使用线性核训练SVM:
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 加载数据集
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)
# 训练SVM
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)
# 预测
y_pred = svm.predict(X_test)
# 评估
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
使用高斯核训练SVM:
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 加载数据集
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)
# 训练SVM
svm = SVC(kernel='rbf')
svm.fit(X_train, y_train)
# 预测
y_pred = svm.predict(X_test)
# 评估
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
``
原文地址: https://www.cveoy.top/t/topic/cJ1g 著作权归作者所有。请勿转载和采集!