Machine learning 如何对Keras中的系列数据进行分类?

Machine learning 如何对Keras中的系列数据进行分类?,machine-learning,keras,Machine Learning,Keras,我的输入数据的结构是: print(df.col) 0[26233039252784,0,0] 1 [262, 290, 330, 392, 522, 784, 0] 2 [262, 330, 392, 522, 784, 0, 0] 3 [250, 262, 330, 392, 522, 784, 0] 4 [262, 290, 306, 330, 392, 784, 0] . . . 我有可变大小的数据,所以我在最后添加了0的填充来修复输入数据的形状 输出列为:

我的输入数据的结构是:

print(df.col)
0[26233039252784,0,0]
1    [262, 290, 330, 392, 522, 784, 0]
2    [262, 330, 392, 522, 784, 0, 0]
3    [250, 262, 330, 392, 522, 784, 0]
4    [262, 290, 306, 330, 392, 784, 0]
.
.
.
我有可变大小的数据,所以我在最后添加了0的填充来修复输入数据的形状

输出列为:

打印(df.predict)
数组([[0,0,0,1.]),
[1., 0., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 1., 0.],
[0., 0., 1., 0.],
[0., 1., 0., 0.],...])
输出是一个热编码

以下是我的模型:

model=Sequential()
模型添加(密集(7,激活=relu',输入=7))
model.add(密集(10,activation='relu'))
model.add(密集(10,activation='relu'))
模型.添加(密度(4))
compile(loss='classifical_crossentropy',optimizer='adam',metrics=['accurity'])
#符合模型
模型拟合(X\u序列,y\u序列,历代数=500,批量大小=10,详细度=2)
精度和损耗在2-3个周期后变得恒定

1/500时代
0s-损耗:5.8413-附件:0.1754
纪元2/500
0s-损失:5.7398-附件:0.1754
纪元3/500
0s-损失:5.7190-附件:0.1754
纪元4/500
0s-损耗:5.6885-附件:0.1754
纪元5/500
0s-损失:5.6650-附件:0.1754
纪元6/500
0s-损失:5.6403-附件:0.1754
纪元7/500
0s-损耗:5.6164-附件:0.2456
纪元8/500
0s-损耗:5.5900-附件:0.2456
纪元9/500
0s-损耗:5.5730-附件:0.2456
...
0s-损失:5.3727-附件:0.1754
纪元499/500
0s-损失:5.3727-附件:0.1754
纪元500/500
0s-损失:5.3727-附件:0.1754
我有72个数据点和4个类(每个类大约18个样本) 数据相当简单。为什么准确度这么低

模型设计正确吗? 我是ML和Keras的新手。非常感谢您的帮助。

尝试此
模型。添加(layers.Dense(4,activation='softmax'))
作为最后一层


如果您有两个以上的分类类别,您最终将需要一个softmax层。这是一个函数,它输出4个不同类的概率(全部加1),概率最高的一个将是您的类。这样,您的网络将能够学习所有4个不同的类,而不是仅学习两个。

对分类问题使用线性激活非常糟糕,请尝试将最后一层的激活更改为softmax,并报告结果;)每次运行模型时,精度都会发生变化。我试过softmax,但我的精确度仍然很差。纪元1/1000 0年代-损失:12.8945-acc:0.2000纪元2/1000 0年代-损失:12.8945-acc:0.2000纪元3/1000 0年代-损失:12.8945-acc:0.2000纪元4/1000 0年代-损失:12.8945-acc:0.2000纪元5/1000 0年代-损失:12.8945-acc:0.2000纪元6/1000 0年代-损失:12.8945-acc:0.2000