kNN或DNN算法返回的“概率”的解释有什么区别

2024-03-29 11:54:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据集,每个数据集由相同的两个参数定义。如果你把它们画在散点图上,就会有一些重叠。我想对它们进行分类,但也可以得到一个给定点在一个或另一个数据集中的概率。所以在重叠区域,我绝不会期望概率是100%。你知道吗

我已经用python的scikit学习包和kNN算法kneighborscinerator实现了这一点。看起来不错!当我使用^{}返回概率时,它看起来就像我期望的那样!你知道吗

然后我尝试用TensorFlow和DNNClassifier分类器做同样的事情,主要是作为我自己的学习练习。当我评估测试样本时,我使用predict_proba返回概率,但是概率的分布看起来与kNN方法有很大的不同。看起来DNNClassifier真的是想把概率推到1或0,而不是把重叠区域的概率推到两者之间。你知道吗

我没有在这里发布代码,因为我的问题更基本:我能用同样的方式解释这两种方法返回的概率吗?或者它们之间有根本的区别?你知道吗

谢谢!你知道吗


Tags: 数据方法算法区域参数定义tensorflow分类
1条回答
网友
1楼 · 发布于 2024-03-29 11:54:57

是的。如果您使用了sigmoid或softmax进行预测,您应该可以得到合理解释为概率的值(据我所知,DNNClassifier将使用softmax)。你知道吗

现在你没有给我们任何关于模型的细节。根据模型的复杂性和训练参数,您可能会得到更多的过度拟合。你知道吗

如果您看到重叠区域的极值(0或1),则可能是过度拟合。使用测试/验证集对其进行检查。你知道吗

从你所描述的一个非常简单的模型应该做的,尽量少一些深度,少一些参数。你知道吗

相关问题 更多 >