【发布时间】:2018-04-03 01:24:11
【问题描述】:
我目前有一个关于商店位置和商品名称的数据集,用于预测特定产品的销售情况。
我想使用二进制编码或 pandas get_dummies(),但是有 5000 个项目名称并且会导致内存错误,是否有任何替代或更好的方法来处理这个问题?谢谢大家!
print(train.shape)
print(train.dtypes)
print(train.head())
(125497040, 6)
id int64
date object
store_nbr int64
item_nbr int64
unit_sales float64
onpromotion object
dtype: object
id date store_nbr item_nbr unit_sales onpromotion
0 0 2013-01-01 25 103665 7.0 NaN
1 1 2013-01-01 25 105574 1.0 NaN
2 2 2013-01-01 25 105575 2.0 NaN
3 3 2013-01-01 25 108079 1.0 NaN
4 4 2013-01-01 25 108701 1.0 NaN
【问题讨论】:
-
数据帧的长度是多少
-
长度约为100,000,000。
-
你需要进行并行编程。一亿行?处理太多了
-
您能否添加一个示例来说明您的数据的外观。所以我们可以考虑 scikit 矢量化器
-
这里的关键字是 sparse。要么使用 pandas 稀疏特征(不确定它们有多好;
sparse=True)或 sklearn 的(默认稀疏)。如果有 5000 个类别,您将添加 5000 列,但每行中只有一个非零。这就是稀疏数据结构的全部思想(确保求解器可以利用这一点)。
标签: pandas numpy scikit-learn neural-network