神经网络示例将多维特征分为两组

Pet*_*ron 6 c# classification neural-network

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

我发现的所有分类例子都是二维的.以下是一些:

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

示例训练集

A类

[2, 1, 0, 1, 4, 3] -> A  
[1, 1, 2, 3, 3, 0] -> A
[0, 0, 1, 3, 2, 0] -> A
Run Code Online (Sandbox Code Playgroud)

B类

[0, 4, 4, 4, 4, 3] -> B
Run Code Online (Sandbox Code Playgroud)

分类示例

[1, 3, 4, 4, 4, 0] -> ??? (probably B)
Run Code Online (Sandbox Code Playgroud)

置信度,例如."85%确定B",有助于区分罕见事件的门槛.

神经网络是最好的解决方案吗?是否有内置的.NET库?

Ali*_*tad 2

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

另一方面,SVM 尝试找到分隔数据点的边界,因此如果在不靠近该边界的区域中存在间隙,也没关系。

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

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

关联