>0.3 在 model.predict 语句中有什么作用?
What does >0.3 do in a model.predict statement?
我在将 2 层输入拟合到 RNN 模型时遇到了以下 model.predict
格式的代码。这是在keras中执行的。
y_pred = (model.predict(x=[X_test_pad, X_test_psl])>0.3).astype(np.int32)
我对深度学习模型还很陌生,不熟悉我们指定 >0.3
的格式或输入的任何值。因此,我想知道 >0.3
在这种情况下到底做了什么。
如能在这方面做出任何澄清,我们将不胜感激。
>0.3 不是 model.predict 函数的一部分。
将预测结果与 0.3 的决策阈值进行比较。
示例:
脑图像中的肿瘤检测
如果你的模型说有 40% 的把握我有肿瘤,我不会高兴地回家,因为 0.4 < 0.5 --> 没有肿瘤。
相反,我想使用一个决策阈值来比较模型结果。在这种情况下,我们希望模型关联的所有输出有 30% 的机会被视为积极的。
你可以这样写:
model_pred = model.predict(x=[X_test_pad, X_test_psl]
y_pred = (model_pred>0.3).astype(np.int32)
更多信息,推荐阅读https://stats.stackexchange.com/questions/312119/classification-probability-threshold
predict
方法 return 是一个 array-like 值。基本上,您将预测中的每一行(它们是浮点数,可能是概率)与您的阈值 0.3 进行比较。你可以想象它像列表理解一样工作。它将return另一个array-like布尔值结构,表示每次预测是否超过0.3。对于最后一步,您基本上是通过转换 true/false 值将此布尔数组转换为整数数组。从数学上讲,您可以将其视为阶跃函数。
我想如果将代码解构为更小的单元,会更容易理解代码的工作原理。首先,检查预测的输出,然后检查比较的输出,依此类推。
我在将 2 层输入拟合到 RNN 模型时遇到了以下 model.predict
格式的代码。这是在keras中执行的。
y_pred = (model.predict(x=[X_test_pad, X_test_psl])>0.3).astype(np.int32)
我对深度学习模型还很陌生,不熟悉我们指定 >0.3
的格式或输入的任何值。因此,我想知道 >0.3
在这种情况下到底做了什么。
如能在这方面做出任何澄清,我们将不胜感激。
>0.3 不是 model.predict 函数的一部分。 将预测结果与 0.3 的决策阈值进行比较。
示例: 脑图像中的肿瘤检测
如果你的模型说有 40% 的把握我有肿瘤,我不会高兴地回家,因为 0.4 < 0.5 --> 没有肿瘤。
相反,我想使用一个决策阈值来比较模型结果。在这种情况下,我们希望模型关联的所有输出有 30% 的机会被视为积极的。
你可以这样写:
model_pred = model.predict(x=[X_test_pad, X_test_psl]
y_pred = (model_pred>0.3).astype(np.int32)
更多信息,推荐阅读https://stats.stackexchange.com/questions/312119/classification-probability-threshold
predict
方法 return 是一个 array-like 值。基本上,您将预测中的每一行(它们是浮点数,可能是概率)与您的阈值 0.3 进行比较。你可以想象它像列表理解一样工作。它将return另一个array-like布尔值结构,表示每次预测是否超过0.3。对于最后一步,您基本上是通过转换 true/false 值将此布尔数组转换为整数数组。从数学上讲,您可以将其视为阶跃函数。
我想如果将代码解构为更小的单元,会更容易理解代码的工作原理。首先,检查预测的输出,然后检查比较的输出,依此类推。