在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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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