使用 scikit-learn 的鸢尾花数据集进行支持向量机分类
本示例使用 scikit-learn 库的鸢尾花数据集,选取前两列数据作为特征,并使用支持向量机模型进行分类。
代码展示了如何分割训练集和测试集,设置模型参数,以及评估模型在训练集和测试集上的准确率。
代码:
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data[:, :2]  # 选取前两列作为特征
y = iris.target
# 分割训练集和测试集
train_size = 0.6  # 训练集比例
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=train_size, random_state=1)
# 创建支持向量机模型
model = SVC(kernel='rbf', gamma=20, decision_function_shape='ovo')
# 训练模型
model.fit(X_train, y_train)
# 评估模型
train_accu = model.score(X_train, y_train)
print(f'accu of model for train set is {train_accu:.2f}')
test_accu = model.score(X_test, y_test)
print(f'accu of model for test set is {test_accu:.2f}')
输入样例:
在这里给出训练集和测试集分割比例,例如:
0.6
输出样例:
accu of model for train set is 0.87
accu of model for test set is 0.65
解释:
train_test_split()函数用于将数据集分割成训练集和测试集。train_size参数指定训练集的比例,random_state参数用于控制随机分割的种子,保证结果可重复。SVC()函数用于创建支持向量机模型。kernel参数指定核函数类型,gamma参数指定核函数的系数,decision_function_shape参数指定决策函数的形状。fit()函数用于训练模型。score()函数用于评估模型在训练集和测试集上的准确率。
注意:
- 训练集和测试集的比例可以根据具体情况调整。
 - 支持向量机模型的参数可以根据具体情况调整,例如:
kernel、gamma、decision_function_shape等。 - 评估结果可能会因数据集和模型参数的差异而有所不同。
 
原文地址: https://www.cveoy.top/t/topic/mL5e 著作权归作者所有。请勿转载和采集!