用于C#的支持向量机库
是否已经实现了我可以在C#项目中使用的支持向量机库? 解决方案 我进行了一些Google搜索并找到了可能很有趣的链接: svm libsvm cound.net 其他解决方案 我在尝试找到C#中支持向量机实现的好起点示例时偶然发现了您的问题.如果有人想编写自己的SVM,并且不想使用工具包或无法使用工具包,这是我自己的良好参考. kernel-support-support--vecter-vector-vecter-vecter-vecter-vecter-machines-xampample----示例 - 示例 - 示例C#
0 2024-04-15
编程技术问答社区
SVM能不能渐进地学习?
我正在使用多维SVM分类器(svm.net,libsvm的包装器)来对一组功能进行分类. 给定SVM模型,是否可以在不必重新计算所有以前的数据的情况下合并新的培训数据?我猜另一种提出它的方式是:SVM可变? 解决方案 实际上,通常称为增量学习.这个问题以前已经出现,在这里得到了很好的回答:支持矢量机(SVM)的一些实现详细信息. 简而 我找到了两种可能的解决方案,其他解决方案 在线和增量虽然相似,但略有不同.在在线中,通常可以配置它的单个通行证(时期= 1)或时代的数量.在哪里,增量意味着您已经有了模型;不管它是如何构建的,但是模型都可以通过新示例来变形.同样,通常需要在线和增量. 这是在线和/或增量SVM上有一些评论的工具列表: https://stats.stackexchange.com/questions/questions/30834/is-it-possible-to-possible-to-append-training-training-trai
0 2024-04-14
编程技术问答社区
如何用openCV训练一个具有面部特征的支持向量机(svm)分类器?
我想使用SVM分类器进行面部表达检测.我知道OPENCV具有SVM API,但是我不知道应该训练分类器的输入.到目前为止,我已经阅读了很多论文,所有这些都在面部功能检测训练分类器后说. 到目前为止我做了什么, 面部检测, 在每个帧中16个面部点计算.以下是面部功能检测的输出![输入图像描述 保存特征点像素地址的向量 注意:我知道我只能使用正面和负面图像训练SVM,我看到了此代码在这里,但我不知道如何将面部特征信息与之结合. 任何人都可以帮助我与SVM启动分类. a.训练分类器的样本输入应该是什么? b.如何使用此面部特征点训练分类器? 问: 解决方案 OpenCV中的机器学习算法都带有类似的接口.要训​​练它,您可以通过NXM垫子oreatures(n行,每行的长度为m)和带有类标签的NX1垫子.这样: //traindata //trainlabels f e a t u r e 1 f e a t u r
0 2024-04-08
编程技术问答社区
为什么Blender检测不到Anaconda的python包?
最近,我最近一直在使用Blender渲染3D模型,并训练SVM以识别从某种角度拍摄的对象图片.要训​​练所说的SVM,我需要使用" sklearn",默认情况下与anaconda一起出现. 长话短说,我想要Blender(运行Python 3.4.2)使用我的Anaconda安装中存在的软件包和模块(它运行Python 3.4.3). 我尝试了此网站之后的各种事情: 1.)我在Blender.App中删除了" Python"文件夹.根据上述网站,Blender应该退缩到系统中安装的Python版本(即,通过Anaconda安装的python?对吗?),但我明白了: 进入blender.app/contents/resources/2.76/python/(替换已经存在的LIB和BIN文件夹) ) 到目前为止,一切都很好,我打开搅拌器(没有错误),然后我写一个简单的脚本: from sklearn import svm 当我尝试运行它时,我会收到以下错误消息
2 2024-04-01
编程技术问答社区
使用RBF核的SVR推断的方程式是什么?
我使用RBF内核使用Sklearn进行SVR(回归).我想知道如何在引擎盖下进行推断.我认为这是支持向量,函数均值和伽玛的函数,但看来我缺少一个方面(可能是基于2分的缩放. . 这里是"我的方程式" 我在下图中尝试的. out = mean for vect in vectors: out = out + (vect.y - mean) * math.exp(-(vect.x - x) ** 2 * gamma) 当我只做2分时,我的方程式与Sklearn与SVR.Predict的报道匹配. 有3个训练点和2个结合在一起,我的方程式不符合Svr.predict给出的: 鉴于支持向量,伽玛和含义以及其他需要的东西,SVR推断与RBF内核的方程式是什么?可以从Sklearn SVR类获得的? 解决方案 使用Sklearn库和SVR推断带有RBF内核的方程式如下: # x and y is already defined, and is the
2 2024-03-07
编程技术问答社区
用LibSVM计算与平均值/差值对最接近的匹配度
我是SVM的新手,我正在尝试使用python接口到 libsvm 对包含平均值和stddev的样本进行分类.但是,我得到了毫无意义的结果. 此任务不适合SVM,还是我使用LIBSVM有错误?以下是我要测试的简单python脚本: #!/usr/bin/env python # Simple classifier test. # Adapted from the svm_test.py file included in the standard libsvm distribution. from collections import defaultdict from svm import * # Define our sparse data formatted training and testing sets. labels = [1,2,3,4] train = [ # key: 0=mean, 1=stddev {0:2.5,1:3.5}, {0:5,1:
14 2024-03-07
编程技术问答社区
测试非线性SVM的数据集
我正在实现非线性SVM,我想在简单的不可分离数据上测试我的实现. Google并没有帮助我找到想要的东西.您能告诉我我可以找到这样的数据吗?或至少,我如何手动生成此类数据? 谢谢, 解决方案 好吧,SVM是两类分类器 - 即,这些分类器将数据放在单个决策边界的两侧. 因此,我建议一个仅由两个类组成的数据集(这不是严格必要的,因为当然,SVM可以通过多次传递分类器(串联)对数据进行分开,这很繁琐这在初始测试中). 因此,您可以使用链接到Scott答案中的虹膜数据集;它由三个类组成,I类与II和III类可分开. II类和III不能线性分离.如果要使用此数据集,为了方便起见,您可能希望删除I类(大约是前50个数据行),因此剩下的是一个两类系统,其中其余两个类不可分离. 虹膜数据集很小(150 x 4,或50行/x x四个功能) - 取决于您使用SVM原型测试的位置,这可能正是您想要的,或者您可能想要更大的数据集. 一个有趣的数据集家族仅由两个类别组成,绝对
8 2024-03-07
编程技术问答社区
帮助--用LibSVM的100%准确率?
名义上是一个很好的问题,但是我很确定这是因为有趣的事情正在发生... 作为上下文,我正在处理面部表情/识别空间中的问题,因此获得100%准确性似乎令人难以置信(并不是说在大多数应用中它是合理的...).我猜想数据集中存在一些一致的偏差,这使得SVM非常容易撤出答案,= or =,更有可能,我在SVM方面做错了什么. 我正在寻找帮助了解发生了什么的建议 - 是我(=我对libsvm的使用)?还是数据? 细节: 约2500个标记的数据向量/实例(个人的变换视频帧 - 运行subset.py将数据分离为测试(500个实例)和训练(剩余). 运行" SVM -Train -T 0". (注意:显然不需要'-w1 1 -W-1 4'...) 在测试文件上运行SVM预测.精度= 100%! 尝试的事情: 检查了我没有通过一些无意的命令行参数错误 在同一数据文件上训练和测试的10次. re -ran subset.py(即使使用-s 1)多次,并且仅训练/测
8 2024-03-07
编程技术问答社区
SVM和神经网络
SVM和神经网络有什么区别? 线性SVM是相同的NN,对于非线性可分离问题,nn使用添加隐藏的图层和SVM使用更改空间尺寸? 解决方案 这个问题有两个部分.第一部分是"这些方法学到的函数形式是什么?"对于NN和SVM,这通常是相同的.例如,单个隐藏层神经网络使用与SVM完全相同的模型.那就是: 给定输入向量X,输出为: output(x)= sum_over_all_i stroge_i * nonlinear_function_i(x) 通常,非线性函数也将具有一些参数.因此,这些方法需要了解应该使用多少个非线性功能,其参数是什么以及所有权重_i权重的值. 因此,SVM和NN之间的差异在于如何决定将这些参数设置为什么.通常,当有人说他们使用神经网络时,他们意味着他们正在尝试找到相对于一组培训示例的平方预测错误的参数.他们几乎还将总是使用随机梯度下降优化算法这样做.另一方面,SVM试图最大程度地减少训练误差和某种"假设复杂性"的度量.因此,他们会找到一组适合数据
6 2024-03-07
编程技术问答社区
在训练SVM对图像进行分类时,设置一个具有序列错误的数组元素
我正在尝试使用python中的SVM进行图像分类,并使用1022张图像和1022个多类标签(每个标签都有14个类). mypath = 'path' k = listdir(mypath) images = np.empty((len(k)-1), dtype=object) resized_imgs = np.empty((len(k)-1),dtype=object) for n in range(0, len(k)-1): images[n] = cv2.imread(join(mypath,k[n]),0) #Reading images in grayscale resized_imgs[n] = cv2.resize(images[n],(32,32)) #Resizing images for i in range(0,len(k)-1): a=resized_imgs[i].mean() b=resized_imgs[i].std()
4 2024-03-06
编程技术问答社区
ValueError: setting an array element with a sequence. while using SVM in scikit-learn
我一直在研究Scikit-Learn SVM,以解决二进制分类问题.我已经计算了音频文件的功能,并将其写入CSV文件中.这就是CSV文件中的每一行的样子: "13_10 The Long And Winding Road " "[-6.5633095666136669e-16,-1.56E-15,-3.21E-15,-2.20E- 15,-2.52E-15,-3.04E-15,-3.39E-15,-3.47E-15,-3.07E-15,-6.02E-15,-3.00E-15,-4.77E-15,-3.05E- 15,-2.13E-15,-1.57E-15,-1.87E-15,-2.05E-15,-1.76E-15,-1.38E-15,-9.89E-16,-7.89E-16,-8.99E- 16,-1.09E-15,-7.26E-16,-8.68E-16,-4.68E-16,-2.82E-16,-1.99E-16,-1.75E-16,-2.18E-16,-1.43E- 16,-1.5
4 2024-03-04
编程技术问答社区
为什么我的Spark SVM总是预测同一个标签?
我很难让我的SVM预测0和1的预测.看来,在我训练它并提供更多数据后,它总是想预测1或0,但是它将预测所有1或全部0,而从不组合两者.我想知道你们中的一个人是否可以告诉我我在做错了什么. 我已经搜索了" SVM总是预测相同的价值"和相似的问题,而且对于我们刚开始的机器学习的人来说,这很常见.恐怕我不明白我遇到的答案. 所以我从此开始,它或多或少有效: from pyspark.mllib.regression import LabeledPoint cooked_rdd = sc.parallelize([LabeledPoint(0, [0]), LabeledPoint(1, [1])]) from pyspark.mllib.classification import SVMWithSGD model = SVMWithSGD.train(cooked_rdd) 我说"或多或少",因为 model.predict([0]) Out[47]: 0 是我
18 2024-03-01
编程技术问答社区
Spark MLLib SVM输出的分数是什么意思?
我不了解Spark MLLIB算法的SVM分类器的输出.我想将分数转换为概率,以便我获得属于某个类别的数据点的概率(在该类别上训练了SVM,又称多级问题)(另请参见此线程).目前尚不清楚分数的含义.它是到达超平面的距离吗?我如何从中获得概率? 解决方案 该值是边缘 - 分离超平面的距离.这不是概率,SVM通常不会给您带来概率.但是,如@CFH注释的评论,您可以尝试根据此保证金来学习概率.但这与SVM分开. 其他解决方案 import org.apache.spark.mllib.classification.{SVMModel, SVMWithSGD} import org.apache.spark.mllib.evaluation.BinaryClassificationMetrics import org.apache.spark.mllib.util.MLUtils // Load training data in LIBSVM format. val data
4 2024-03-01
编程技术问答社区
如何解决运行 sklearn2PMML 时的内存不足问题
我正在尝试打包我在python编写的SVM分类器模型作为PMML,以在Flink Project中使用它. 参考: 该模型工作正常,返回的预期结果,如下所示(不确定重复输出,但这不是这里的问题). 当我尝试将其包装为PMML文件时,我会得到"请求的数组大小超过VM限制"错误. 谁能告诉我这里发生了什么? P.S.我想知道它是否与未设置的活动字段有关.训练数据是一个单热编码的矢量表示. 解决方案 sklearn2pmml.sklearn2pmml实用程序函数正在通过Python的subprocess.Popen调用Java可执行文件.如果默认的Java启动配置的内存也"小",则可以通过指定-Xms和/或-Xmx Java可执行选项来增加其大小. 做到这一点的两种方法: 导出所需的配置JAVA_OPTS环境变量. 从sklearn2pmml 0.86.2开始,sklearn2pmml.sklearn2pmml实用程序函数支持java_hom
4 2024-02-28
编程技术问答社区
用于安卓的OpenCV--用SURF描述符训练SVM
我需要一些帮助来培训Android应用的SVM. 我在不同的类(12个类)中有一组图像,并从中获得了所有描述符.我设法为每个图像获得了相同数量的描述符.我需要的是使用这些描述符训练我的Android应用程序. 我不确定是否应该在Android模拟器中训练它或编写C ++程序来训练SVM然后将其加载到我的应用中(如果我使用OpenCV的LIB用于Windows来训练SVM,然后保存它,将我正在用于Android使用的lib识别保存的SVM文件吗?).我想我不应该在模拟器中使用如此大的数据集训练SVM. 我已经在WEKA上测试了描述符的数据集( 解决方案 这是在OpenCV4Android中培训您的SVM的示例. trainData是A MatOfFloat,其形式将取决于您使用的方法来获取特征向量.为了使trainData我使用Core.hconcat()将数据集的每个元素的特征向量加成单个Mat. . Mat responses = new Mat(1, sizeOfDataset
4 2024-02-05
编程技术问答社区
如何在 libsvm 中为训练和测试文件创建源数据文件?
我想使用数据集训练模型.该数据集具有三种不同类型的生理数据.类型1,类型2和类型3.libSVM的格式如下: 标签索引1:value1 index2:value2 .... 现在,对于类型3的2和类型3的类型1、2,我将标签为1的标签为1.因此,我的培训和测试文件如下. 1 1:值\ n 1 1:值\ n 1 1:值\ n 1 1:值\ n 1 1:值\ n . . . 1 1:值\ n 2 1:值\ n 2 1:值\ n 2 1:值\ n 2 1:值\ n 2 1:值\ n . . . 2 1:值\ n 3 1:值\ n 3 1:值\ n 3 1:值\ n 3 1:值\ n . . . 3 1:值\ n 因此,我正在使用这种源文件进行SVM,并使用类似的源文件进行测试.我想确保是否正确使用SVM数据格式.谢谢你 解决方案 label feature_id1:feature_value1 feature_id2:feature_value2 ... 因此,
8 2024-01-23
编程技术问答社区
支持向量机--一个简单的解释?
因此,我试图了解SVM算法的工作原理,但我只是无法弄清楚您如何在n维平面的点中转换某些数据集,该数据集将具有数学含义,以便通过超平面和超平面和抓住它们. 有一个例子可能有人可以在一个2D示例中向我解释这一点,因为我看到的任何图形表示只是2D,而不是nd. 解决方案 简短的答案是:它们不会转换矩阵,而是将矩阵中的每个元素视为一个维度(在机器学习中,每个元素都称为a feature ). 因此,他们需要每个具有100x100 = 10000功能的分类元素.在线性 svm案例中,他们使用 hyperplane "> hyperplane 将10,000维空间分为两个不同的区域. 更长的答案是: 考虑您的2D案例.现在,您想分开一组二维元素.这意味着您的集合中的每个元素都可以数学上描述为2元组,即: e =(x1,x2).例如,在您的图中,一些完整的点可能是: {(1,3),(2,4)} ,并且某些空心的空心可能是 {(4,2),(4,2), (5,1)} .请注意,为了用线性分类
6 2024-01-23
编程技术问答社区
LibSVM和LibLinear之间有什么区别?
libsvm 和 解决方案 在实践中,在libsvm中实现的SMO算法(适用于内核和线性SVM)的复杂性是O(n^2)或O(n^3),而liblinear是O(n),但不支持内核SVM. n是培训数据集中的样品数量. 因此,对于大规模到大规模的中等规模,请忘记内核并使用liblinear(或者可以看一下近似内核SVM求解器,例如 lasvm ). 编辑:在实践中,libsvm在10k样品下痛苦慢. 其他解决方案 svm是 support vector Machine ,基本上是线性分类器,但是使用了线性分类器许多内核会事先将非线性问题转换为线性问题. 从上面的链接中,liblinear似乎是非常相同的事情,而没有那些内核变换.因此,正如他们所说,在不需要内核变换的情况下(他们提到文档分类),它将更快. 其他解决方案 来自: http://www.csie. ntu.edu.tw/~cjlin/papers/liblinear.pdf 它支持L2调
10 2024-01-22
编程技术问答社区
SVM-硬性或软性边缘?
给定一个线性可分离的数据集,在软边缘SVM上使用硬利润率SVM是否一定更好? 解决方案 我期望软砂SVM即使训练数据集可以线性分离,也会更好.原因是在硬利润的SVM中,单个离群值可以确定边界,这使得分类器对数据中的噪声过于敏感. 在下图中,一个红色离群值基本上决定了边界,这是过度拟合的标志 了解Soft-Margin SVM正在做什么,最好在双重公式中查看它,您可以看到它具有相同的边缘最大化目标(Margin可能为负)保证金SVM,但具有附加的约束,即每个与支持向量关联的Lagrange乘法器都受到C的界限.基本上,这是任何单个点对决策边界的影响的范围,请参见Cristianini/Shaw-Taylor的命题6.12,"简介"的命题6.12支持向量机和其他基于内核的学习方法". 结果是,即使数据集可分离,软毛线SVM也可以选择具有非零训练错误的决策边界,并且不太可能过度拟合. 这是使用LIBSVM在合成问题上的示例.圈出的点显示了支持向量.您会看到,减少
14 2024-01-22
编程技术问答社区