支持向量机案例

以下是一个使用支持向量机(SVM)对鸢尾花数据集进行分类的案例:

1. 数据集介绍

鸢尾花数据集是一类多重变量分析的数据集,共有四个属性列和一个品种类别列,用于分类的属性包括花萼长度、花萼宽度、花瓣长度、花瓣宽度,类别包括山鸢尾、变色鸢尾和维吉尼亚鸢尾三类。该数据集通常被用于分类算法的测试和验证。

2. 数据准备

  • 首先导入必要的库,包括用于数据处理的pandas、用于数据分割的train_test_split、支持向量机模型SVC以及用于评估模型的accuracy_score等。

python

复制代码
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
  • 然后读取鸢尾花数据集,假设数据集保存在名为iris.csv的文件中。

python

复制代码
data = pd.read_csv('iris.csv')
  • 接着将数据集分为特征(X)和目标(y)。特征是用于分类的属性,目标是鸢尾花的类别。

python

复制代码
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
  • 最后将数据集划分为训练集和测试集,通常将 70% 的数据用于训练,30% 的数据用于测试。

python

复制代码
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

3. 模型训练

  • 创建一个支持向量机模型,这里使用线性核函数。

python

复制代码
model = SVC(kernel='linear')
  • 使用训练数据对模型进行训练。

python

复制代码
model.fit(X_train, y_train)

4. 模型评估

  • 使用测试集进行预测。

python

复制代码
y_pred = model.predict(X_test)
  • 计算模型的准确率。

python

复制代码
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)

5. 结果分析

通过上述步骤,我们可以得到支持向量机模型在鸢尾花数据集上的分类准确率。如果准确率较高,说明模型能够较好地对鸢尾花进行分类。同时,还可以进一步分析模型的混淆矩阵、精确率、召回率等指标,以更全面地评估模型的性能。此外,还可以尝试不同的核函数、调整模型的超参数,如惩罚参数C等,来优化模型的性能。

相关推荐
科研实践课堂(小绿书)3 小时前
机器学习在智能水泥基复合材料中的应用与实践
人工智能·机器学习·复合材料·水泥基·混凝土
阿豪学编程3 小时前
LeetCode724.:寻找数组的中心下标
算法·leetcode
墨韵流芳3 小时前
CCF-CSP第41次认证第三题——进程通信
c++·人工智能·算法·机器学习·csp·ccf
七夜zippoe4 小时前
可解释AI:构建可信的机器学习系统——反事实解释与概念激活实战
人工智能·python·机器学习·可解释性·概念激活
csdn_aspnet4 小时前
C# 求n边凸多边形的对角线数量(Find number of diagonals in n sided convex polygon)
开发语言·算法·c#
凌波粒4 小时前
LeetCode--349.两个数组的交集(哈希表)
java·算法·leetcode·散列表
Zero5 小时前
机器学习概率论与统计学--(8)概率论:数字特征
机器学习·概率论·随机变量·统计学·方差·协方差·期望
Zero5 小时前
机器学习概率论与统计学--(9)统计学:参数估计
机器学习·概率论·统计学·矩估计·最大似然估计·点估计
paeamecium6 小时前
【PAT甲级真题】- Student List for Course (25)
数据结构·c++·算法·list·pat考试
纪伊路上盛名在6 小时前
机器学习中的固定随机种子方案
人工智能·机器学习·数据分析·随机种子