【发布时间】:2017-11-21 01:43:41
【问题描述】:
我一直在考虑这个问题,但我似乎找不到任何数据。当使用神经网络进行分类时,您通常将输出神经元激活函数的区域分配给特定的类,例如对于 tanh,您可以为第 1 类设置 0.8,为第 2 类设置 -0.8。如果您最多有 3 个类(第三类可以为零左右),这一切都很好,但是当您有更多类时,事情会变得很棘手。
举个例子,您根据统计数据对足球运动员进行分类。攻击型中场和前锋的统计数据相似,但如果将它们分配到激活函数两侧的区域,肯定会损害分类器的准确性。
拥有一个输出任意 x 和 y 值的 2 输出神经网络会不会更容易,这样类区域可以用 2D 而不是 1D 表示?你基本上可以有一个圆圈,切成你想要的类的数量,并将每个切片的中心作为类的目标值。对我来说,这似乎是一种很好的分类方式,但由于缺乏关于该主题的相关数据,我相信有更简单的方法可以对更多的类(例如 6 个类)进行分类。我问的原因是因为我试图根据他们的统计数据对某些位置的足球运动员进行分类。您可以在下面看到玩家的前 2 个主成分得分的散点图。
【问题讨论】:
-
为什么NN应该只输出一个值?在许多应用程序中,每个类别都有一个输出神经元,然后将最大输出作为您的预测类别。
-
这是一个具有 10 个输出类的神经网络的example。事实上,与 SVM 或 Logistic 回归等算法相比,神经网络的优点之一是多类分类很自然,只需增加输出层中的神经元数量即可。
标签: matlab neural-network classification