我是新来的深造者。我的培训数据包含3121条记录和137条输入变量。这个从最初的2K变量做特征工程后得到137个变量。你知道吗
所以我对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)
用法:
解读你的预测:
您正在处理二进制分类问题(是(1)或否(0))。假设每个输入实例都有K个特征。你知道吗
那么
y_pred[0] = [Input feature 0,Input feature 1,...Input feature K-1] y_pred[1] = [probability of each instance belonging to class 1]
因此
1- y_pred[1]
返回类0的概率相关问题 更多 >
编程相关推荐