Machine learning 如何在线性回归中管理分类特征的大量值
我是机器学习新手,尝试编写一个线性回归算法,其中我有一个分类特征-关键字。我的模型中可以有大约1000万个关键字 按照此处给出的说明- 我似乎应该把分类特征一分为二。这是否意味着我将有23个特征变量(10米级别的虚拟编码)Machine learning 如何在线性回归中管理分类特征的大量值,machine-learning,linear-regression,Machine Learning,Linear Regression,我是机器学习新手,尝试编写一个线性回归算法,其中我有一个分类特征-关键字。我的模型中可以有大约1000万个关键字 按照此处给出的说明- 我似乎应该把分类特征一分为二。这是否意味着我将有23个特征变量(10米级别的虚拟编码) 这是处理这种情况的最佳方法吗?是。你基本上有1000万个预测变量。如果您正在进行回归/分类,这是不可避免的,除非您希望将“相似”关键字组合在一起以减少预测变量的数量。例如,如果关键字_1、关键字_2、关键字_3之间存在特定关系,则可以将它们合并为单个关键字,以此类推 为了减少
这是处理这种情况的最佳方法吗?是。你基本上有1000万个预测变量。如果您正在进行回归/分类,这是不可避免的,除非您希望将“相似”关键字组合在一起以减少预测变量的数量。例如,如果关键字_1、关键字_2、关键字_3之间存在特定关系,则可以将它们合并为单个关键字,以此类推 为了减少这么多的关键词(10米),你可以使用套索()和岭()惩罚等技术。我们的想法是,这些10 M预测变量中的大多数在预测结果时并不重要,因此您希望在学习阶段的早期删除它们,以提高可解释性并避免结果的过度拟合
严格来说,RIDGE是为了避免过度拟合,LASSO是为了减少预测值的数量。如果您将数据转换为稀疏矩阵,例如一个热编码,然后使用任何特征选择技术(正向/反向选择,LASSO),您将获得更好的结果。希望这有帮助 如何处理诸如userId之类的特性?您的响应变量是什么?你认为userId是一个很好的预测工具吗?如果是,那么您需要将例如响应变量UserId29(0或1)UserId30(0或1)的数据帧从长帧转换为宽帧UserId31,即转换为稀疏矩阵。特征散列将比稀疏矩阵更快?是的,这是另一种方法。。内存更少,只需很少的预处理。我从未使用过它,但这两种方法的模型性能通常不同。如果你使用它,一定要让我知道哪种方法效果更好。功能散列作为一种技术怎么样?“除非你想把“相似”的关键字组合在一起以减少预测变量的数量”。这种相似性可以是一种散列技术。