- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想对一些打包为 numpy.ndarray
的数据运行 sklearn
的 RandomForestClassifier
,而这些数据恰好是稀疏的。调用 fit
会给出 ValueError: setting an array element with a sequence.
。从其他帖子中我了解到随机森林无法处理稀疏数据。
我希望该对象有一个 todense
方法,但它没有。
>>> X_train
array(<1443899x1936774 sparse matrix of type '<class 'numpy.float64'>'
with 141256894 stored elements in Compressed Sparse Row format>,
dtype=object)
>>> type(X_train)
<class 'numpy.ndarray'>
我尝试用 SciPy csr_matrix
包装它,但这也会产生错误。
有没有办法让随机森林接受这些数据?(不确定密集是否真的适合内存,但这是另一回事......)
编辑 1
产生错误的代码是这样的:
X_train = np.load('train.npy') # this returns a ndarray
train_gt = pd.read_csv('train_gt.csv')
model = RandomForestClassifier()
model.fit(X_train, train_gt.target)
至于建议使用toarray()
,ndarray没有这种方法。AttributeError: 'numpy.ndarray' 对象没有属性 'toarray'
此外,如前所述,对于这个特定的数据,我需要 TB 的内存来保存数组。是否可以选择使用稀疏数组运行 RandomForestClassifier
?
编辑 2
似乎应该使用 SciPy 的稀疏保存数据,如此处所述 Save / load scipy sparse csr_matrix in portable data format .当使用 NumPy 的保存/加载时,应该保存更多数据。
最佳答案
>>> X_train
array(<1443899x1936774 sparse matrix of type '<class 'numpy.float64'>'
with 141256894 stored elements in Compressed Sparse Row format>,
dtype=object)
意味着你的代码,或者它调用的东西,已经完成了 np.array(M)
其中 M
是一个 csr
稀疏矩阵。它只是将该矩阵包装在一个对象 dtype 数组中。
要在不采用稀疏矩阵的代码中使用稀疏矩阵,您必须先将它们转换为密集矩阵:
arr = M.toarray() # or M.A same thing
mat = M.todense() # to make a np.matrix
但考虑到非零元素的维度和数量,这种转换很可能会产生内存错误
。
关于python - numpy.ndarray 稀疏矩阵到密集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55637498/
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5 个月前关
我正在尝试使用摄像机跟踪多个人。我不想使用 blob 分割技术。我想做什么: 执行背景减法以获得隔离人们运动的掩码。 在这些区域执行基于网格的光流 -我最好的选择是什么? 我正在努力实现。我已经尝试过
OpenCV 有 very good documentation on generating SIFT descriptors ,但这是“弱 SIFT”的一个版本,其中关键点由原始 Lowe algo
我有一个 cholmod_dense 数据结构: cholmod_dense* ex = cholmod_l_solve(CHOLMOD_A, L, B, &com); 我想提取这些值并将它们复制到另
这是先前发布的关于在 python 中使用 OpenCVs 密集筛选实现的问题的后续问题 (OpenCV-Python dense SIFT)。 使用建议的代码进行密集筛选 dense=cv2
我是计算机视觉的新手。我正在学习 Dense SIFT 和 HOG。对于密集 SIFT,算法只是将每个点视为一个有趣的点并计算其梯度向量。 HOG 是另一种用梯度向量描述图像的方法。 我认为 Dens
我正在尝试使用 openCV-python 2.4 计算密集 SIFT import cv2 def gen_sift_features(gray, step_size, gamma): de
我正在使用 OpenCV 实现词袋图像分类器。最初我测试了在 SURF 关键点中提取的 SURF 描述符。我听说 Dense SIFT(或 PHOW)描述符更适合我的目的,所以我也尝试了它们。 令我惊
我有一个密集的 Ax=b 类型的方程组要在我的 C++ 程序中求解,我希望在 boost 中使用 UBLAS 来实现该解决方案。在其他一些问题中,我发现人们正在使用扩展 LAPACK,但不幸的是,它似
我目前有一台配备 Opteron 275 (2.2Ghz)(双核 CPU)和 4GB RAM 以及速度非常快的硬盘的机器。我发现即使是使用 C++ 模板(想想 boost 等)编译一些简单的项目时,我
我是一名优秀的程序员,十分优秀!