python - 测试/训练集惊人的大数组
问题描述
我正在尝试使用具有 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)
?
解决方案
我认为您的数据维度必须是 (157673, 5) 而不是 (5, 157673)。因此,协方差矩阵将是一个 5x5 矩阵。
通常,在机器学习中,观察是成行的。
推荐阅读
- postgresql - 在 docker 中安装 postgress 映像时,在 Windows 10 中等待标头时执行了 CLient.timeout
- python - 为什么机器学习模型每次都给出不同的准确率值?
- c# - 模拟 C# 类而不将新的行为对象作为参数传递
- python - 在 Django 中注释计数默认为 0(零)
- elf - ELF CORE 文件和实际 VM 来宾内存之间的大小差异
- r - 数据未传递到模块化闪亮 tabPanel/navbarPage 内的模块
- python-3.x - 列之间的垂直线 - Plotly-Dash
- ios - Flutter中的错误:flutter:错误:NoSuchMethodError:方法'findAncestorStateOfType'在null上被调用
- .net - 如何在内容模板中访问 Xamarin 表单中的条目文本框值
- time - Plotly 刻度格式 - 毫秒到 HH:MM