网站建设费钱吗搭建一个网站要多少
web/
2025/9/28 15:09:53/
文章来源:
网站建设费钱吗,搭建一个网站要多少,上虞市住房和城乡建设局网站,后台html模板【算法】一类支持向量机OC-SVM 前言一类支持向量机OC-SVM 概念介绍示例编写数据集创建实现一类支持向量机OC-SVM完整的示例输出 前言
由于之前毕设期间主要的工具就是支持向量机#xff0c;从基础的回归和分类到后来的优化#xff0c;在接触到支持向量机还有一类支持向量机的… 【算法】一类支持向量机OC-SVM 前言一类支持向量机OC-SVM 概念介绍示例编写数据集创建实现一类支持向量机OC-SVM完整的示例输出 前言
由于之前毕设期间主要的工具就是支持向量机从基础的回归和分类到后来的优化在接触到支持向量机还有一类支持向量机的对其产生了一定的兴趣并对研究过程中的相关示例进行记录主要是基础的一类支持向量机OC-SVM示例和蜂群算法优化一类支持向量机超参数示例方便后续的查看。
一类支持向量机OC-SVM 概念介绍
OC-SVMOne-Class Support Vector Machine是一种支持向量机Support Vector MachineSVM的变体用于异常检测和异常检测问题。与传统的SVM只能处理二分类问题不同OC-SVM旨在通过仅使用正例样本来学习一个描述正例样本特征的超平面并尽可能将负例样本远离该超平面。
在OC-SVM中训练样本仅包含正例样本目标是找到一个最优的超平面使得正例样本尽可能地位于该超平面上方并使负例样本尽可能地位于该超平面下方。这样当新的样本点被映射到特征空间时可以根据其相对于超平面的位置进行分类从而判断其是否为异常样本。 该介绍不那么通俗易懂看了一篇文章简单的说以前的svm 分类有明细的划分现在的oc-svm则只有一个类别的划分也就是正例至于其他的都归属于负例。这个在大神的知乎文章什么是一类支持向量机one class SVM是指分两类的支持向量机吗中有通俗的例子讲解这边不进行重复论述。 示例编写
主要是基于vscode 编译器展开python的编写只需要在扩展中下载Python 插件即可。
数据集创建
数据集包括测试与训练集由于一类支持向量机OC-SVM在示例中只要采用python 中的OneClassSVM而它返回的预测标签如果 正常数据点返回 1异常点返回 -1 因此在数据集的标签要做相应的处理正例为1负例为-1。
# 假设 X 是训练数据它应该是一个形状为 (n_samples, n_features) 的二维数组
# 这里我们创建一个简单的示例数据集
X np.random.normal(size(100, 2))
binary_array np.random.randint(2, size100)
binary_arraynp.where(binary_array 0, -1, 1)# 预测
# 使用训练好的模型预测新数据点的标签正常数据点返回 1异常点返回 -1
X_test np.random.normal(size(10, 2))实现一类支持向量机OC-SVM
主要采用OneClassSVM也是sklearn库里面的pip 一下就行。使用起来跟svm 基本一样。
# 创建一个 OneClassSVM 对象
# 通过 nu 参数来控制错误率的上界和支持向量的比例
# kernel 参数可以选择核函数例如 rbf 代表径向基函数核
# gamma 是 rbf, poly 和 sigmoid 核函数的系数
ocsvm svm.OneClassSVM(nu0.1, kernelrbf, gamma0.1)‘nu’ 参数来控制错误率的上界和支持向量的比例‘kernel’ 参数可以选择核函数例如 ‘rbf’ 代表径向基函数核‘gamma’ 是 ‘rbf’, ‘poly’ 和 ‘sigmoid’ 核函数的系数‘shrinking’ 参数如果设为 True则会使用启发式收缩‘tol’ 是停止训练的误差值大小‘cache_size’ 是指定训练时使用的缓存大小‘verbose’ 是控制日志输出的数量 这个可以直接看源码的注释里面都有介绍。 完整的示例输出
# demo
from sklearn import svm
import numpy as np# 假设 X 是训练数据它应该是一个形状为 (n_samples, n_features) 的二维数组
# 这里我们创建一个简单的示例数据集
X np.random.normal(size(100, 2))
binary_array np.random.randint(2, size100)
binary_arraynp.where(binary_array 0, -1, 1)
print(binary_array)# 创建一个 OneClassSVM 对象
# 通过 nu 参数来控制错误率的上界和支持向量的比例
# kernel 参数可以选择核函数例如 rbf 代表径向基函数核
# gamma 是 rbf, poly 和 sigmoid 核函数的系数
ocsvm svm.OneClassSVM(nu0.1, kernelrbf, gamma0.1)# 训练模型
ocsvm.fit(X,binary_array)# 预测
# 使用训练好的模型预测新数据点的标签正常数据点返回 1异常点返回 -1
X_test np.random.normal(size(10, 2))
# print(X_test)
print(--------------)
predictions ocsvm.predict(X_test)# 输出预测结果
print(predictions)
print(--------------)
# 也可以使用 decision_function 方法来获取每个样本到决策边界的距离
# 负数通常表示异常值
distances ocsvm.decision_function(X_test)
print(distances) 从输出的结果来看有2组示例预测为负例然后可以通过与真实标签比较调整超参数来提交预测的精度。也可以嵌入寻优方法这个在往期博文都有介绍比如ga、pso等等。 在资源中上传了用蜂群算法优化一类支持向量机超参数的2个示例有需要可以直接下载使用。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83391.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!