在CNN中对具有共同类的数组进行分组以进行分类

我有一个包含三列的数据集,前两列是特征,第三列包含类别,总共有4个类别,部分数据如下所示。

enter image description here

数据集很大,假设有100,000行和3列(两列特征和一列类别),因此我在训练深度学习模型之前对数据集使用了长度为50的移动窗口。到目前为止,我尝试了两种不同的方法来切片数据集,但没有得到好的结果,我非常确定我的数据集是好的。我首先在整个数据集上使用移动窗口,得到2000个数据样本,每个样本有50行和2列(2000,50,2)。由于一些数据样本包含混合类别,我只选择了具有共同类别的数据样本,并计算类别的平均值以将该特定数据样本分配到单一类别中,但我没有得到好的结果。以下是我的代码,

def moving_window(data_, length, step=1):    streams = it.tee(data_, length)    return zip(*[it.islice(stream, i, None, step * length) for stream, i in zip(streams, it.count(step=step))])data = list(moving_window(data_, 50))data = np.asarray(data)# print(len(data))for i in data:    label=np.all(i==i[0,2],axis=0)    if label[2]==True:        X.append(i[:,0:2])        Y.append(sum(i[:,2])/len(i[:,2]))

我尝试了另一种方法,通过收集对应于特定类别的特征,将值放入单独的列表中(由于我有4个类别,因此有4个列表),然后对每个列表分别使用移动窗口进行切片并分配到其类别中。同样没有得到好的结果。以下是我的代码。

for i in range(5):    labels.append(i)yy= pd.get_dummies(labels)yy= yy.valuesyy= yy.astype(np.float32)def moving_window(x, length, step=1):    streams = it.tee(x, length)    return zip(*[it.islice(stream, i, None, step * length) for stream, i in zip(streams, it.count(step=step))])x_1 = list(moving_window(x1, 50))x_1 = np.asarray(x_1)y_1 = [yy[0]] * len(x_1)X.append(x_1)Y.append(y_1)# print(x_1.shape)x_2 = list(moving_window(x2, 50))x_2 = np.asarray(x_2)# print(yy[1])y_2 = [yy[1]] * len(x_2)X.append(x_2)Y.append(y_2)# print(x_2.shape)x_3 = list(moving_window(x3, 50))x_3 = np.asarray(x_3)# print(yy[2])y_3 = [yy[2]] * len(x_3)X.append(x_3)Y.append(y_3)# print(x_3.shape)x_4 = list(moving_window(x4, 50))x_4 = np.asarray(x_4)# print(yy[3])y_4 = [yy[3]] * len(x_4)X.append(x_4)Y.append(y_4)# print(x_4.shape)

我尝试训练的模型架构在其他数据集上表现完美。因此,我认为我在处理数据方面遗漏了一些东西。在开始训练之前,我在数据处理方面遗漏了什么?还有其他方法吗?所有工作都是在Python中完成的。


回答:

我最终成功训练了我的CNN模型,并取得了良好的训练、验证和测试准确率。我唯一添加的是用以下几行对输入数据进行归一化,

minmax_scale = preprocessing.MinMaxScaler().fit(x)X = minmax_scale.transform(x)

其余部分保持不变。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注