gpt4 book ai didi

python - 获得 0 和 1 之间的深度学习输出

转载 作者:行者123 更新时间:2023-12-01 09:11:54 25 4
gpt4 key购买 nike

我是深度学习新手。我的训练数据包含 3121 条记录和 137 个输入变量。这 137 个变量是我根据原始 2K 变量进行特征工程后得到的。

所以我对 0 和 1 之间的变量进行标准化,然后使用以下模型

model.add(Dropout(0.2, input_shape=(136,)))

model.add(keras.layers.Dense(15,kernel_initializer='normal',activation='sigmoid',kernel_constraint=maxnorm(3)))
#model.add(Dense(60, kernel_initializer='normal', activation='relu', kernel_constraint=maxnorm(3)))

model.add(keras.layers.Dense(30,kernel_initializer='normal',activation='sigmoid',kernel_constraint=maxnorm(3)))
model.add(keras.layers.Dense(15,kernel_initializer='normal',activation='sigmoid',kernel_constraint=maxnorm(3)))
model.add(keras.layers.Dense(1,kernel_initializer='normal',activation='linear',kernel_constraint=maxnorm(3)))
model.compile(loss='mse',optimizer='adam')
model.fit(x,y,epochs=100,shuffle=True,verbose=2)

由于我的目标是获得最小 MSE,所以我使用了 loss='mse'。我的测试数据中的输出变量包含 0 和 1 之间的值,例如 0.35。但是在拟合模型后,我得到的预测输出为0 和 1。您能否建议我应该如何尝试才能获得 0 和 1 之间的预测输出?

还在我的隐藏层中尝试了激活函数“relu”,在输出层中尝试了 sigmoid 激活函数。但我的输出中仍然只有 0 和 1

下面是我用来获取预测输出的代码

y_pred=model.predict_classes(x_test)
pred=pd.DataFrame(y_pred,columns=['predicted'])
pred.predicted.unique()

最佳答案

使用model.predict_proba(x_test)而不是model.predict_classes(x_test)

用法:

y_pred=model.predict_proba(x_test)

解释 y_pred:

您正在处理二元分类问题(是(1)或否(0))。假设每个输入实例都有 K 个特征。

那么,

y_pred[0] = [输入特征 0,输入特征 1,...输入特征 K-1]
y_pred[1] = [每个实例属于类别 1 的概率]

因此

1- y_pred[1] 返回类别 0 的概率

关于python - 获得 0 和 1 之间的深度学习输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51594082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com