【发布时间】:2021-08-03 16:23:29
【问题描述】:
我对 Python 和机器学习相当陌生。我试图为以下问题提出一些模型:我有一堆 x-y 关系形式的数据,用于描述正面和相同类型的数据来描述负面。
由于数据不统一,有时我有 2000 行描述阳性,有时只有 200 行,我尝试将其绘制在图表中,并通过一些 Conv2D-、MaxPooling-、Flatten- 和 Dense- 层运行它们。
现在效果很好,准确度指标在 95% 和 100% 之间,但我的问题是该模型如何重新调整浮点数而不是真假,我无法真正辨别我的模型的真实准确度有多高.我该如何从那里着手?
另外,我可以使用哪些超参数来获得布尔返回?什么类型的模型适合这个问题?感谢您的宝贵时间。
编辑: 我的模型使用以下代码:
model = Sequential()
model.add(Conv2D(512,kernel_size=(5,5),activation="relu",padding="same",input_shape=(400,800,1)))
model.add(Dropout(0.3))
model.add(MaxPooling2D())
model.add(Conv2D(256,kernel_size=(5,5),activation="relu",padding="same"))
model.add(MaxPooling2D())
model.add(Conv2D(128,kernel_size=(5,5),activation="relu",padding="same"))
model.add(Dropout(0.3))
model.add(MaxPooling2D())
model.add(Flatten())
model.add(Dense(256,activation="relu"))
model.add(Dropout(0.3))
model.add(Dense(1,activation="sigmoid"))
model.compile(optimizer=Adam(learning_rate=0.0001),loss="binary_crossentropy",metrics=["accuracy"])
输出是一个介于 0 和 1 之间的数字。我想知道如何构建一个具有布尔输出的神经网络,或者通过其他方式我可以在我的测试数据上获得适当的准确性。
【问题讨论】:
-
很难确定您的问题是因为您没有显示您的代码。但是根据您的架构(层),我认为您错过了最后一层,即激活层(即 ReLU 或 sigmoid 函数)。
-
你问错了问题,你已经有了一个可以工作的模型,你应该问了解它是如何工作的以及如何将输出转换为二元决策,关于它已经有多个问题了在这里。
标签: python machine-learning keras scikit-learn