Scipy稀疏矩阵维度问题

Posted

技术标签:

【中文标题】Scipy稀疏矩阵维度问题【英文标题】:Scipy sparse matrix dimension issue 【发布时间】:2020-10-16 14:40:30 【问题描述】:

我正在使用 KNeighborsRegressor 开发一个简单的 MultiOutputRegressor 模型。我的 X_train、X_test、y_train、y_test 是 Scipy 稀疏矩阵数据类型。我有 1185 个特征和 46 个目标要预测。

from sklearn.multioutput import MultiOutputRegressor
from sklearn.neighbors import KNeighborsRegressor
kreg = MultiOutputRegressor(KNeighborsRegressor())
# fit model
kreg.fit(X_train, y_train)
>>> MultiOutputRegressor(estimator=KNeighborsRegressor())
kreg.predict(X_test)

kreg.predict(X_test) 之后我收到一条错误消息,最后一条说是

~/opt/anaconda3/envs/data3/lib/python3.8/site-packages/scipy/sparse/_index.py in >getitem(self, key) 62 返回 self._get_arrayXint(row, col) 63 elif isinstance(col, slice): ---> 64 raise IndexError('index results in >2 dimensions') 65 elif row.shape[1] == 1 和 col.ndim == 1: 66 # 外部索引的特殊情况

IndexError:索引结果 >2 维

我哪里做错了? 谢谢。

【问题讨论】:

【参考方案1】:

原来我不应该有我的标签,即稀疏矩阵数据类型中的 y_train 和 y_test。一旦我将它们保存为 Numpy 数组,代码就可以工作了。

【讨论】:

以上是关于Scipy稀疏矩阵维度问题的主要内容,如果未能解决你的问题,请参考以下文章

计算 scipy 稀疏矩阵的稀疏传递闭包

Scipy---6.稀疏矩阵

优化 Scipy 稀疏矩阵

哪个 SciPy 稀疏矩阵类最适合计算距离矩阵?

Scipy 稀疏矩阵作为 DataFrame 列

python中scipy学习——随机稀疏矩阵及操作