繁体   English   中英

将多维特征分类为两组的 Neural.network 示例

[英]Neural network example to classify multi-dimensional features into two sets

我正在寻找一个好的监督神经网络的源代码示例,它接受两个以上的特征(与大多数 XY 示例不同)并将数据分为两组。 据我所知,支持向量机 (SVM)可能是一种解决方案?

我发现的所有分类示例都是二维的。 这里有一些:

我试图将罕见事件与许多通常稳定的输入区分开来。 特征是键值对,其中的值通常可以离散化为一个小数字。 第一类可用的训练数据是巨大的,但第二类只有很少的训练集,如果这有所不同的话。

示例训练集

A类

[2, 1, 0, 1, 4, 3] -> A  
[1, 1, 2, 3, 3, 0] -> A
[0, 0, 1, 3, 2, 0] -> A

B类

[0, 4, 4, 4, 4, 3] -> B

分类示例

[1, 3, 4, 4, 4, 0] -> ??? (probably B)

信心评级,例如。 “85% 确定 B”将有助于区分罕见事件的阈值。

neural.network 是最好的解决方案吗?是否有内置此功能的 .NET 库?

实际上,所有这些机器学习技术都有其优点和缺点。 在使用NN(单层感知器)时,您需要考虑是否有足够的训练数据。 从技术上讲,您需要能够覆盖尺寸内的所有单元以获得良好的结果。

另一方面,SVM尝试找到分隔数据点的边界,这样如果在不接近此边界的区域中有间隙,则可以。

围绕+/-提升有5-6个分类器,说实话,似乎大多数时间类型的分类器是主观选择的。 另一方面,有些人使用多个分类器并比较结果。

使用OpenCV,可以很容易地插入不同的分类器,因此您可以正确地使用它。 我在C ++中使用OpenCV和我的项目的NN分类器,结果非常好:

http://www.springerlink.com/content/j0615767m36m0614/

SVM 是 n 维的——只是示例通常是 2D 的,因为一旦超过 3 个,解决方案就不再真正适合 2D 插图了。

它只有两个 output 类(通常是 Good 和 Bad),但它具有您喜欢的任意多的特性。 这就是为什么分割两个 SVM 类的线被称为“超平面”,因为它存在于多维空间中——每个特征一维。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM