我正在开发一个简单的 AI 程序,该程序使用无监督学习方法对形状进行分类。本质上,我使用边数和边之间的角度,并将聚合百分比生成为形状的理想值。这有助于我在结果中创建一些模糊性。
问题是我如何表示分类中的错误或置信度?例如:一个看起来很像正方形的小矩形会从两个类别中产生夜间会员值,但我可以表示错误程度吗?
谢谢
我正在开发一个简单的 AI 程序,该程序使用无监督学习方法对形状进行分类。本质上,我使用边数和边之间的角度,并将聚合百分比生成为形状的理想值。这有助于我在结果中创建一些模糊性。
问题是我如何表示分类中的错误或置信度?例如:一个看起来很像正方形的小矩形会从两个类别中产生夜间会员值,但我可以表示错误程度吗?
谢谢
您的信心基于使用的模型。例如,如果您只是根据角度(或边)的数量应用一些规则,那么您就有一些对象的多维表示:
feature 0, feature 1, ..., feature m
不错的统计方法
您可以根据您的经验结果定义某种置信区间,例如。您可以将多维高斯分布拟合到您对“矩形对象”的经验观察中,一旦您得到一个新对象,您只需检查高斯分布中此类值的概率,并有信心(这将是非常合理的假设,您的“观察”错误具有正态分布)。
基于距离的简单方法
较少的统计方法是直接采用模型的决策因子并将其压缩到 [0,1] 区间。例如,如果您只是以某种度量标准测量从某个完美形状到新对象的距离(产生 [0,inf) 的结果),您可以使用一些类似 sigmoid 的函数来映射它,例如。
conf( object, perfect_shape ) = 1 - tanh( distance( object, perfect_shape ) )
双曲正切会将值“挤压”到 [0,1] 区间,剩下要做的唯一事情就是选择一些缩放因子(因为它增长得很快)
这种方法在数学方面不太有效,但类似于神经网络中采用的方法。
相对方法
还可以使用您的距离度量来定义更多概率方法。如果您与每个“完美形状”都有距离,您可以计算一个物体被分类为某个类别的概率,假设该分类是随机执行的,概率与到完美形状的距离的倒数成正比。
dist(object, perfect_shape1) = d_1
dist(object, perfect_shape2) = d_2
dist(object, perfect_shape3) = d_3
...
inv( d_i )
conf(object, class_i) = -------------------
sum_j inv( d_j )
在哪里
inv( d_i ) = max( d_j ) - d_i
结论
前两个想法也可以合并到第三个中,以利用所有类的知识。在您的特定示例中,第三种方法应该导致0.5
矩形和圆形的置信度,而在第一个示例中,它会更接近0.01
(取决于您在“训练”集中有多少这么小的对象),这显示了差异 - 前两种方法显示您对分类为特定形状本身的信心,而第三种方法显示相对信心(因此如果其他类的高,则它可能低,而前两种可以简单地回答“不分类有信心”)
稍微建立在 lejlot 提出的内容之上;我的偏好是使用带有一些挤压功能的马氏距离。Mahalanobis 距离M(V, p)
允许您测量分布V
和点之间的距离p
。
在您的情况下,我会使用每个类的“完美”示例来生成分布V
,并且p
是您想要置信的分类。然后,您可以使用以下内容作为您的置信区间。
1-tanh( M(V, p) )