使用scikit-learn对大数据集进行独热编码
我有一个很大的数据集,打算用逻辑回归来分析。这个数据集中有很多分类变量,每个分类变量都有成千上万的特征,我打算用一种叫做“独热编码”的方法来处理这些特征。因为数据量太大,我需要分批处理这些数据。我的问题是,如何确保在第一次处理时,独热编码能够看到每个分类变量的所有特征呢?
2 个回答
0
你可以先读取数据,然后获取所有分类变量的独特值列表。接着,你可以用一个叫做“独热编码器”的工具(比如sklearn.preprocessing.CategoricalEncoder)来处理这些独特值。
这种方法在以下情况下很有帮助:
- 在训练和测试的框架中
- 或者当你分块读取数据时
我创建了一个Python模块,可以自动完成这些操作。你可以在这个GitHub仓库找到它 - dummyPy
这里有一个简短的教程 - 如何在Python中对大型数据集的分类变量进行独热编码?
3
你必须弄清楚你的分类特征可能有哪些值,这意味着你可能需要完整地查看一遍你的数据,以便获取每个分类变量的独特值列表。
之后,你只需要把这些分类变量转换成整数值,然后在OneHotEncoder
中设置n_values=
这个参数,给它一个数组,数组里的数字对应每个变量可以取的不同值的数量。