首页 > 解决方案 > 测试/训练集惊人的大数组

问题描述

我正在尝试使用具有 157673 个条目的数据集使用线性回归创建预测模型。

数据(在 csv 文件中)采用以下格式:

Timestamp,Signal_1,Signal_2,Signal_3,Signal_4,Signal_5
2021-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.T

X = 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)

标签: pythonpandasnumpymachine-learningscikit-learn

解决方案


我认为您的数据维度必须是 (157673, 5) 而不是 (5, 157673)。因此,协方差矩阵将是一个 5x5 矩阵。

通常,在机器学习中,观察是成行的。


推荐阅读