Keras中的可变长度数组

时间:2018-06-21 15:42:45

标签: python numpy keras

我有一个数据集,其中包含对时间的观察。对于我的初始数据集,所有数据都有48个月的数据...但是,这是一个经过高度精简的数据集,目的是用于概念验证。在现实生活中,我们并不总是拥有48个月的数据,而是具有可变数量的观察值(有时更少,有时更多)。没有间歇性的空值(即,如果有25个月,则将有25个数据点)。电子表格的格式为:

Target Val, Month1, Month2, Month3, ...,  Month48
200,         10,     8,      9,      ...,    5
300,         25,     12,     8,      ...,    2
150,         15,     10,     Null,   Null,   Null
145,         15,      8,     6,      ...,    Null

我正在读取数据并将其解析为训练和测试,如下所示:

data = pd.read_csv('Data.csv')
y = data.iloc[:,0:1].values
X = data.iloc[:,1:].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

regressor = Sequential()
#Input Layer
regressor.add(Dense(units = 25, kernel_initializer='uniform', activation = 'relu', input_shape=(X_train.shape[1],)))

当我在干净的数据集上运行它时(每个样本恰好有48个观测值),它运行良好,结果看起来确实很有希望。我的X数据的形状为7000x48,我y数据的形状为7000x1。

但是,如果我尝试使用NaN运行,那么我显然会破产...如果我使用X=X[:,~np.isnan(X)]之类的东西删除NaN,那么最终会出现形状错误的数组。

问题: 1.我可以去除NaN并保持阵列的形状吗?
2.我的X数组的形状应为(7000)吗?

我想到的一个想法是将NaN替换为0或-999之类的值,但是使用-999增大缩放比例,并且观察到的值为0。

0 个答案:

没有答案