稀疏一个热编码特征的内存问题
memory issues for sparse one hot encoded features
我想为数据帧 df
中的一个热编码特征创建稀疏矩阵。但是我遇到了下面给出的代码的内存问题。 sparse_onehot
的形状是 (450138, 1508)
sp_features = ['id', 'video_id', 'genre']
sparse_onehot = pd.get_dummies(df[sp_features], columns = sp_features)
import scipy
X = scipy.sparse.csr_matrix(sparse_onehot.values)
我收到内存错误,如下所示。
MemoryError: Unable to allocate 647. MiB for an array with shape (1508, 450138) and data type uint8
我已经尝试 scipy.sparse.lil_matrix
并得到与上述相同的错误。
有什么有效的方法来处理这个问题吗?
提前致谢
尝试设置为 True
sparse
parameter:
sparsebool, default False
Whether the dummy-encoded columns should be backed by a SparseArray (True) or a regular NumPy array (False).
sparse_onehot = pd.get_dummies(df[sp_features], columns = sp_features, sparse = True)
这将使用比默认表示更高效(但稍慢)的表示。
我想为数据帧 df
中的一个热编码特征创建稀疏矩阵。但是我遇到了下面给出的代码的内存问题。 sparse_onehot
的形状是 (450138, 1508)
sp_features = ['id', 'video_id', 'genre']
sparse_onehot = pd.get_dummies(df[sp_features], columns = sp_features)
import scipy
X = scipy.sparse.csr_matrix(sparse_onehot.values)
我收到内存错误,如下所示。
MemoryError: Unable to allocate 647. MiB for an array with shape (1508, 450138) and data type uint8
我已经尝试 scipy.sparse.lil_matrix
并得到与上述相同的错误。
有什么有效的方法来处理这个问题吗? 提前致谢
尝试设置为 True
sparse
parameter:
sparsebool, default False Whether the dummy-encoded columns should be backed by a SparseArray (True) or a regular NumPy array (False).
sparse_onehot = pd.get_dummies(df[sp_features], columns = sp_features, sparse = True)
这将使用比默认表示更高效(但稍慢)的表示。