我是机器学习的新手,所以如果答案很明显,我提前道歉。
我有一个包含地址功能的数据集。我希望使用一种热编码为数据集中出现的每条街道创建一个特征。所以如果我的数据集看起来像:
Miles| Address
4 | 111 First St
2 | 456 Grenada Ave
9 | 789 Grenada Ave
它会变成:
Miles| Address | First_St | Grenada_Ave
4 | 111 First St | 1 | 0
2 | 456 Grenada Ave | 0 | 1
9 | 789 Grenada Ave | 0 | 1
这样做会将功能数量增加到 1500 多个,并将训练和测试文件从大约 90 MB 增加到超过 5 GB。
我希望将 RandomForest 应用于这些新数据集,但是当我调用forest.fit
(使用 Python/sklearn)时,内存使用量激增至 60gb,然后 Python 进程终止。
几个问题:
创建这么多功能是否被认为是不好的做法?如果不是 - 如何使用这种大小的数据进行建模?