【问题标题】:Prediction probabilities to binary values of 1 and 0 (each value in array is mutually exclusive)二进制值 1 和 0 的预测概率(数组中的每个值互斥)
【发布时间】:2019-05-06 01:54:15
【问题描述】:

我生成了一个模型预测,但 (y_pred) 值显示为概率而不是 0 和 1。

from sklearn.metrics import confusion_matrix, precision_score
from sklearn.model_selection import train_test_split
from keras.layers import Dense,Dropout
from keras.models import Sequential
from keras.regularizers import l2
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

data = pd.read_csv('train.csv', header=None)
X = data.iloc[:,0:294]
y = data.iloc[:,294:300]

X_test = pd.read_csv('test.csv', header=None)

# define a sequential Model
model = Sequential()

# Hidden Layer-1
model.add(Dense(100, activation='relu',input_dim=294, kernel_regularizer=l2(0.01)))
model.add(Dropout(0.3, noise_shape=None, seed=None))

# Hidden Layer-2
model.add(Dense(100, activation = 'relu', kernel_regularizer=l2(0.01)))
model.add(Dropout(0.3, noise_shape=None, seed=None))

# Output layer
model.add(Dense(6, activation='sigmoid'))

# Compile model
model.compile(optimizer = 'adam', loss='binary_crossentropy', metrics=['accuracy'])

model_output = model.fit(X, y, epochs=20, batch_size=20, verbose=1)

y_pred = model.predict(X_test)

#########

y_pred1
array([[0.1668182 , 0.00139472, 0.0607101 , 0.83703804, 0.20101124,
        0.01134452],
       [0.5119093 , 0.00456575, 0.0413985 , 0.18643114, 0.24617025,
        0.14039314],
       [0.2648082 , 0.00091198, 0.03806886, 0.7853936 , 0.19942024,
        0.01565605],
       ...

Keras 中是否有自动输出 0 和 1 的方法,或者我应该手动使用 0.5 阈值将每个概率输出转换为 0 和 1?

用于产生预测的测试数据实际上被标记为值 (作为示例)。

每个数组值都是互斥/独立的。

【问题讨论】:

    标签: keras deep-learning


    【解决方案1】:

    你是说这个吗?

    Keras set output of intermediate layer to 0 or 1 based on threshold

    使用 Lambda 层结合阈值函数。

    【讨论】:

    • 嗨,有没有这个的工作示例?model.add(Lambda(func,output_shape=yourOtputShapeIfUsingTheano)) 例如,我应该用这个替换我的最终输出层吗?
    • 我也不断收到错误:NameError: name 'Lambda' is not defined 我已经(将 Keras 导入为 K)来使用该函数。
    猜你喜欢
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 2020-11-17
    • 2016-09-02
    • 2017-10-02
    • 1970-01-01
    • 2020-01-23
    • 2019-06-16
    相关资源
    最近更新 更多