Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python kNN或DNN算法返回的“概率”的解释有什么不同_Python_Tensorflow_Machine Learning_Scikit Learn_Knn - Fatal编程技术网

Python kNN或DNN算法返回的“概率”的解释有什么不同

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

我有两个数据集,每个数据集由相同的两个参数定义。如果将它们绘制在散点图上,则会有一些重叠。我想对它们进行分类,但也要得到给定点位于某个数据集中的概率。所以在重叠区域,我永远不会期望概率是100%

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

然后我试着用TensorFlow和DNNClassifier分类器做同样的事情,主要是作为我自己的学习练习。当我评估测试样本时,我使用predict_Probabila返回概率,但是概率分布看起来与kNN方法有很大不同。看起来DNNClassifier真的试图将概率推到1或0,而不是重叠区域的介于两者之间的某个位置

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


谢谢

是的。假设您使用sigmoid或softmax进行预测,您应该会得到合理的值,据我所知,DNNClassifier将使用softmax的概率

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

如果重叠区域的极值为0或1,则可能是拟合过度。使用测试/验证集对其进行检查


从您描述的一个非常简单的模型应该做的事情来看,尽量减少深度和参数。

我不明白您的目的是什么。如果您的两个分类器都在猜测相同的事物类/标签,并且返回的概率以相同的方式定义为每个类的概率,或者一对一;阅读文档,它们是可比较的。正在将prob驱动到0或1。。。你是说DNN只是在分类方面做得更好,在较低的logloss中可以看到吗?谢谢。我确实使用了验证集,但我应该检查参数的数量和深度。我做完这件事后,你会发回这里的!