SVM算法、朴素贝叶斯算法讲解及对iris数据集分类实战(附源码)

简介: SVM算法、朴素贝叶斯算法讲解及对iris数据集分类实战(附源码)

需要源码请点赞关注收藏后评论区留言私信~~~

一、支持向量机SVM

算法原理

支持向量机(Support Vetor Machine,SVM)是一种对线性和非线性数据进行分类的方法。SVM 使用一种非线性映射,把原始训练数据映射到较高的维上,在新的维上,搜索最佳分离超平面

SVM可分类为三类:线性可分(linear SVM in linearly separable case)的线性SVM、线性不可分的线性SVM、非线性(nonlinear)SVM

SVM可以用于数值预测和分类。对于数据非线性可分的情况,通过扩展线性SVM的方法,得到非线性的SVM,即采用非线性映射把输入数据变换到较高维空间,在新的空间搜索分离超平面

SVM的主要目标是找到最佳超平面,以便在不同类的数据点之间进行正确分类。超平面的维度等于输入特征的数量减去1。图11-3显示了分类的最佳超平面和支持向量(实心的数据样本)

利用SVM对iris数据集分类

结果如下

部分代码如下

import numpy as np
from sklearn import svm
from sklearn import datasets
from sklearn import metrics
from sklearn import model_selection
import matplotlib.pyplot as plt
iris = datasets.load_iris()
x, y = iris.data,iris.target
x_train, x_test, y_train, y_test = model_selection.train_test_split(x, y, random_state = 1, test_size = 0.2)
classifier=svm.SVC(kernel='linear',gamma=0.1,decision_function_shape='ovo',C=0.1)
classifier.fit(x_train, y_train.ravel())
print("SVM-输出训练集的准确率为:", classifier.score(x_train, y_train))
print("SVM-输出测.predict(x_test)
classreport = metrics.classification_report(y_test,y_hat)
print(classreport)

二、朴素贝叶斯分类

1. 算法原理

贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理(Bayes theorem)为基础,采用了概率推理方法

算法示例:对iris数据集进行朴素贝叶斯分类

Scikit-learn模块中有Naïve Bayes子模块,包含了各种贝叶斯算法。利用贝叶斯分类器时首先设置分类器,然后利用训练样本进行训练和分类

结果如下

from sklearn.datasets import load_iris
from sklearn.naive_bayes import GaussianNB
iris = load_iris()
clf = GaussianNB()#设置分类器
clf.fit(iris.data,iris.target)#训练分类器
y_pred = clf.predict(iris.data)#预测
print("Number of mislabeled points out of %d points:%d" %(iris.data.shape[0],(iris.target != y_pred).sum()))

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
2月前
|
算法 数据可视化 数据挖掘
基于EM期望最大化算法的GMM参数估计与三维数据分类系统python源码
本内容展示了基于EM算法的高斯混合模型(GMM)聚类实现,包含完整Python代码、运行效果图及理论解析。程序使用三维数据进行演示,涵盖误差计算、模型参数更新、结果可视化等关键步骤,并附有详细注释与操作视频,适合学习EM算法与GMM模型的原理及应用。
|
8月前
|
机器学习/深度学习 算法 数据可视化
利用SVM(支持向量机)分类算法对鸢尾花数据集进行分类
本文介绍了如何使用支持向量机(SVM)算法对鸢尾花数据集进行分类。作者通过Python的sklearn库加载数据,并利用pandas、matplotlib等工具进行数据分析和可视化。
640 70
|
6月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
7月前
|
机器学习/深度学习 自然语言处理 算法
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
1189 0
|
7月前
|
机器学习/深度学习 算法 数据可视化
基于线性核函数的SVM数据分类算法matlab仿真
本程序基于线性核函数的SVM算法实现数据分类,使用MATLAB2022A版本运行。程序生成随机二维数据并分为两组,通过自定义SVM模型(不依赖MATLAB工具箱)进行训练,展示不同惩罚参数C下的分类结果及决策边界。SVM通过寻找最优超平面最大化类别间隔,实现高效分类。 核心代码包括数据生成、模型训练和结果可视化,最终绘制了两类数据点及对应的决策边界。此实现有助于理解SVM的工作原理及其在实际应用中的表现。
|
9月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
655 5
|
26天前
|
机器学习/深度学习 算法 新能源
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
【优化调度】基于matlab粒子群算法求解水火电经济调度优化问题研究(Matlab代码实现)
|
28天前
|
算法 机器人 定位技术
基于机器视觉和Dijkstra算法的平面建筑群地图路线规划matlab仿真
本程序基于机器视觉与Dijkstra算法,实现平面建筑群地图的路径规划。通过MATLAB 2022A读取地图图像,识别障碍物并进行路径搜索,支持鼠标选择起点与终点,最终显示最优路径及长度,适用于智能导航与机器人路径规划场景。
|
29天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于PSO粒子群优化的XGBoost时间序列预测算法matlab仿真
本程序基于Matlab 2024b实现,结合粒子群优化(PSO)与XGBoost算法,用于时间序列预测。通过PSO优化XGBoost超参数,提升预测精度。程序包含完整注释与操作视频,运行后生成预测效果图及性能评估指标RMSE。
|
26天前
|
传感器 并行计算 算法
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
【无人机编队】基于非支配排序遗传算法II NSGA-II高效可行的无人机离线集群仿真研究(Matlab代码实现)
115 3

热门文章

最新文章