python代码实现支持向量机对鸢尾花分类

1、导入支持向量机模型,划分数据集

python 复制代码
from sklearn import datasets
from sklearn import svm

iris=datasets.load_iris()
iris_x=iris.data
iris_y=iris.target
indices = np.random.permutation(len(iris_x))
iris_x_train = iris_x[indices[:-10]]
iris_y_train = iris_y[indices[:-10]]
iris_x_test = iris_x[indices[-10:]]
iris_y_test = iris_y[indices[-10:]]

2、训练模型

python 复制代码
clf = svm.SVC(kernel = 'linear')
clf.fit(iris_x_train,iris_y_train)

线性核函数 ('linear'):

应用场景:适用于线性可分的情况,当数据集在特征空间中是线性可分布的时候,线性核函数是首选。

示例应用:文本分类、简单图像分类等。
多项式核函数 ('poly'):

应用场景:适用于非线性但仍然具有明显分界的情况,可通过调整多项式的次数来控制模型的复杂度。

示例应用:人脸识别、手写数字识别等。 径向基函数
(RBF) 核函数 ('rbf'):

应用场景:适用于非线性且数据分布复杂的情况,RBF 核函数具有很强的拟合能力,能够处理各种形状的数据分布。

示例应用:生物信息学、金融风险管理等。
Sigmoid 核函数 ('sigmoid'):

应用场景:适用于二元分类问题,但一般情况下不推荐使用,因为它对模型的影响较小。

示例应用:简单的二分类问题。

3、为测试数据集分类

python 复制代码
iris_y_predict = clf.predict(iris_x_test)
score=clf.score(iris_x_test,iris_y_test,sample_weight=None)

print('iris_y_predict = ')
print(iris_y_predict)
print('iris_y_test = ')
print(iris_y_test)
print('Accuracy:',score)
python 复制代码
iris_y_predict = 
[1 2 1 0 0 0 2 1 2 0]
iris_y_test = 
[1 1 1 0 0 0 2 1 2 0]
Accuracy: 0.9

算法的优点

1、有严格的数学理论支持,可解释性强。 SVM 所获得的结果是全局最优解而不是局部最优解,很多算法为了降低复杂性只给出了一个局部最优解,比如我们前面提到的 "决策树算法",而 SVM 的最优化求解所获得的一定是全局最优解。

2、算法的鲁棒性很好。 由于计算主要依赖于关键的支持向量,所以只要支持向量没有变化,样本发生一些变化对算法没有什么影响。
算法的缺点

1、训练所需要的资源很大。 由于运算量与存储量都很高,SVM 训练的开销也是巨大的,因此支持向量机只适合比较小的样本量,比如几千条数据,当样本量太大时训练资源开销过大。

2、只能处理二分类问题。 经典的 SVM 算法十分简洁,正如上面的例子一样,画一条线分割两个类别,如果需要处理多类别的分类问题,需要使用一些组合手段。

3、模型预测时,预测时间与支持向量的个数成正比。 当支持向量的数量较大时,预测计算复杂度较

高。因此支持向量机目前只适合小批量样本的任务,无法适应百万甚至上亿样本的任务。

相关推荐
孤狼warrior几秒前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
Katecat9966310 分钟前
YOLO11分割算法实现甲状腺超声病灶自动检测与定位_DWR方法应用
python
玩大数据的龙威37 分钟前
农经权二轮延包—各种地块示意图
python·arcgis
ZH154558913139 分钟前
Flutter for OpenHarmony Python学习助手实战:数据库操作与管理的实现
python·学习·flutter
belldeep1 小时前
python:用 Flask 3 , mistune 2 和 mermaid.min.js 10.9 来实现 Markdown 中 mermaid 图表的渲染
javascript·python·flask
喵手1 小时前
Python爬虫实战:电商价格监控系统 - 从定时任务到历史趋势分析的完整实战(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·电商价格监控系统·从定时任务到历史趋势分析·采集结果sqlite存储
喵手1 小时前
Python爬虫实战:京东/淘宝搜索多页爬虫实战 - 从反爬对抗到数据入库的完整工程化方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·京东淘宝页面数据采集·反爬对抗到数据入库·采集结果csv导出
B站_计算机毕业设计之家1 小时前
猫眼电影数据可视化与智能分析平台 | Python Flask框架 Echarts 推荐算法 爬虫 大数据 毕业设计源码
python·机器学习·信息可视化·flask·毕业设计·echarts·推荐算法
PPPPPaPeR.1 小时前
光学算法实战:深度解析镜片厚度对前后表面折射/反射的影响(纯Python实现)
开发语言·python·数码相机·算法
JaydenAI1 小时前
[拆解LangChain执行引擎] ManagedValue——一种特殊的只读虚拟通道
python·langchain