我正在尝试使用包含157673条记录的数据集,通过线性回归来创建一个预测模型。
数据(在csv文件中)的格式如下:
Timestamp,Signal_1,Signal_2,Signal_3,Signal_4,Signal_52021-04-13 11:03:13+02:00,3,3,3,12,12
我当前的代码如下:
filename = 'test.csv'df = pd.read_csv(filename , parse_dates=['Timestamp'], header=0)df['Timestamp'] = pd.to_numeric(pd.to_datetime(df['Timestamp']))u, v, w, x, y, z = df.values.TX = np.asarray([v, w, x, y, z])Y = np.asarray([u, u, u, u, u])X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, shuffle= True)lineReg = LinearRegression()lineReg.fit(X_train, y_train)print('Score: ', lineReg.score(X_test, y_test))print('Weights: ', lineReg.coef_)
当打印X和Y的形状时,结果是(5, 157673)
然而,现在我遇到了错误MemoryError: Unable to allocate 185. GiB for an array with shape (157673, 157673) and data type float64
。
这是为什么呢?一定是哪里出了错,如果不是,为什么突然变成了形状(157673, 157673)
而不是(6, 157673)
?
回答:
我认为你的数据维度应该是(157673, 5)而不是(5, 157673)。因此,协方差矩阵将是一个5×5的矩阵。
通常,在机器学习中,观测值是放在行里的。