我有一个数据集,其中包含对时间的观察。对于我的初始数据集,所有数据都有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。