首页 > 解决方案 > 用于预测的分类或回归

问题描述

我想训练一个神经网络从一个输入中预测类别/数字,这也是一个数字;所以映射是数字->数字(输入->输出)。

但是在考虑数据类型和值时,我不确定是将问题视为分类问题还是回归问题。

例如,数据的第一行如下所示:

由于我的目标范围为 0-14,我的第一种方法是将这个问题视为分类问题,我选择输出层的大小为 size = 15。

这是我的NN模型:

from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense, Flatten, Activation, Dropout, LSTM, Conv1D



model.add(Flatten())
model.add(Dense(8, activation='relu'))
model.add(Dense(15, activation='softmax'))
model.add(Activation('softmax'))



model.compile(loss='sparse_categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])

model.summary()

history = model.fit(X_train, y_train, epochs=100, batch_size=128)

它总是预测相同的分类值:

准确率在几个 epoch 后收敛,在 20% 左右不再变化。

为什么模型总是预测同一个类别?我在这里想念什么?我应该将此问题视为回归任务吗?

标签: pythonmachine-learningneural-networkclassification

解决方案


通常,数字(或任何数字)用于回归,标签(任何非数字)用于分类。

https://medium.com/quick-code/regression-versus-classification-machine-learning-whats-the-difference-345c56dd15f7

回归数据:

在此处输入图像描述

分类数据:

在此处输入图像描述

查看回归示例和分类示例中的数据类型。


推荐阅读