Scikit-Learn中的分类数据转换



>我有一个 4000 万 x 22 numpy 的整数数据数组用于分类任务。大多数要素都是分类数据,它们使用不同的整数值来表示不同的类别。例如,在"颜色"列中:0 表示蓝色,1 表示红色,依此类推。我已经使用标签编码器预处理了数据。

  1. 在SK-learn中将这些数据放入任何分类模型中是否有意义?我试图将数据拟合到随机森林模型中,但准确性极差。我也尝试过一个热编码将数据转换为虚拟变量,但我的电脑在使用一个热编码后只能处理稀疏矩阵,问题是随机森林只能取一个密集的矩阵,这会超过我电脑的内存。
  2. SK-learn中处理分类数据的正确策略是什么?
LabelEncoder在您

的情况下是无用的,因为输出数字与数字没有任何意义(即对它们执行算术运算毫无意义)。 在处理分类数据时,OneHotEncoder是必不可少的。

最近 sklearn 在随机森林和决策树中获得了对稀疏输入的支持,因此您可能想查看最新版本。此外,LogisticRegression等其他方法支持稀疏数据。

此外,我认为您不需要使用所有 40M 的示例来获得不错的准确性。随机抽样应该足够了,比如说,其中的 100k(这个数字取决于 OneHotEncoding 之后的特征数量、它们的可变性和目标类的数量)。

相关内容

  • 没有找到相关文章

最新更新