我发现model.predict和model.predict_proba都给出了一个相同的2D矩阵,表示每行的每个类别的概率。
这两个功能有什么区别?
答案 0 :(得分:25)
<强>预测强>
predict(self, x, batch_size=32, verbose=0)
为输入样本生成输出预测,以批量方式处理样本。
参数
x: the input data, as a Numpy array.
batch_size: integer.
verbose: verbosity mode, 0 or 1.
返回
A Numpy array of predictions.
<强> predict_proba 强>
predict_proba(self, x, batch_size=32, verbose=1)
逐批生成输入样本的类概率预测。
参数
x: input data, as a Numpy array or list of Numpy arrays (if the model has multiple inputs).
batch_size: integer.
verbose: verbosity mode, 0 or 1.
返回
A Numpy array of probability predictions.
编辑:在最近版本的keras中,predict和predict_proba是相同的,即两者都给出了概率。要获取类标签,请使用predict_classes。文档未更新。 (改编自Avijit Dasgupta的评论)
答案 1 :(得分:3)
请注意:实际上,大多数分类器中都同时有// Sanity checks.
if (avdName) {
if (!isCpuArchSupportedByRanchu(avdArch)) {
APANIC("CPU Architecture '%s' is not supported by the QEMU2 emulator, (the classic engine is deprecated!)",
avdArch);
}
std::string systemPath = getAvdSystemPath(avdName, sysDir);
if (systemPath.empty()) {
const char* env = getenv("ANDROID_SDK_ROOT");
if (!env || !env[0]) {
APANIC("Cannot find AVD system path. Please define "
"ANDROID_SDK_ROOT\n");
} else {
APANIC("Broken AVD system path. Check your ANDROID_SDK_ROOT "
"value [%s]!\n",
env);
}
}
}
和predict
(例如在Scikit中)。如前所述,第一个预测类,第二个提供每个类的概率,以升序分类。
答案 2 :(得分:1)
正如之前的评论(以及here)所述,目前没有任何区别。
然而,似乎exist only for backward compatibility(不确定哪一个,我有兴趣知道)。