Python kNN或DNN算法返回的“概率”的解释有什么不同
我有两个数据集,每个数据集由相同的两个参数定义。如果将它们绘制在散点图上,则会有一些重叠。我想对它们进行分类,但也要得到给定点位于某个数据集中的概率。所以在重叠区域,我永远不会期望概率是100% 我已经使用python的scikit学习包和kNN算法KNeighborsClassifier实现了这一点。看起来不错!当我使用返回概率时,它看起来就像我期望的那样 然后我试着用TensorFlow和DNNClassifier分类器做同样的事情,主要是作为我自己的学习练习。当我评估测试样本时,我使用predict_Probabila返回概率,但是概率分布看起来与kNN方法有很大不同。看起来DNNClassifier真的试图将概率推到1或0,而不是重叠区域的介于两者之间的某个位置 我没有在这里发布代码,因为我的问题更基本:我能用同样的方式解释这两种方法返回的概率吗?或者它们之间有根本的区别Python kNN或DNN算法返回的“概率”的解释有什么不同,python,tensorflow,machine-learning,scikit-learn,knn,Python,Tensorflow,Machine Learning,Scikit Learn,Knn,我有两个数据集,每个数据集由相同的两个参数定义。如果将它们绘制在散点图上,则会有一些重叠。我想对它们进行分类,但也要得到给定点位于某个数据集中的概率。所以在重叠区域,我永远不会期望概率是100% 我已经使用python的scikit学习包和kNN算法KNeighborsClassifier实现了这一点。看起来不错!当我使用返回概率时,它看起来就像我期望的那样 然后我试着用TensorFlow和DNNClassifier分类器做同样的事情,主要是作为我自己的学习练习。当我评估测试样本时,我使用pr
谢谢 是的。假设您使用sigmoid或softmax进行预测,您应该会得到合理的值,据我所知,DNNClassifier将使用softmax的概率 现在你没有给我们任何关于模型的细节。根据模型的复杂性和训练参数,您可能会得到更多的过度拟合 如果重叠区域的极值为0或1,则可能是拟合过度。使用测试/验证集对其进行检查
从您描述的一个非常简单的模型应该做的事情来看,尽量减少深度和参数。我不明白您的目的是什么。如果您的两个分类器都在猜测相同的事物类/标签,并且返回的概率以相同的方式定义为每个类的概率,或者一对一;阅读文档,它们是可比较的。正在将prob驱动到0或1。。。你是说DNN只是在分类方面做得更好,在较低的logloss中可以看到吗?谢谢。我确实使用了验证集,但我应该检查参数的数量和深度。我做完这件事后,你会发回这里的!