如何处理预处理数据中包含大约300K个类别的列?

我的数据集中有一列在9700行中包含了约275个类别。如果使用get_dummies会生成很多列。这样做是好做法吗?还是有其他技术可以处理这种情况?(在这里,我需要确定公司在市场上销售产品时可以设定的最低价格。)

df2['Market_Category'].nunique()

输出: 275


回答:

拥有很多列并不是一个好主意,这会在训练过程中导致问题。阅读关于维度灾难的文章。为了处理这个问题,你有一些选择:

  1. 首先,我会统计每个类别的数量:
df2['Market_Category'].value_counts() 

如果你有很多类别只重复了几次(例如某些类别的数量在10000个样本中少于10次),你可以为它们创建一个名为其他的新类别,而不是为每个类别创建一列。这样做不会影响性能,因为你并没有丢失太多信息;并且可以减少列的数量。

  1. 接下来,如果在前一步之后,你仍然得到很多列(例如如果所有类别的数量相同),你可以使用一些降维技术,比如PCA。简单来说,它们会找到最佳的列保留下来,并丢弃其余的列。

希望我回答了你的问题。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注