Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 如何在线性回归中管理分类特征的大量值_Machine Learning_Linear Regression - Fatal编程技术网

Machine learning 如何在线性回归中管理分类特征的大量值

Machine learning 如何在线性回归中管理分类特征的大量值,machine-learning,linear-regression,Machine Learning,Linear Regression,我是机器学习新手,尝试编写一个线性回归算法,其中我有一个分类特征-关键字。我的模型中可以有大约1000万个关键字 按照此处给出的说明- 我似乎应该把分类特征一分为二。这是否意味着我将有23个特征变量(10米级别的虚拟编码) 这是处理这种情况的最佳方法吗?是。你基本上有1000万个预测变量。如果您正在进行回归/分类,这是不可避免的,除非您希望将“相似”关键字组合在一起以减少预测变量的数量。例如,如果关键字_1、关键字_2、关键字_3之间存在特定关系,则可以将它们合并为单个关键字,以此类推 为了减少

我是机器学习新手,尝试编写一个线性回归算法,其中我有一个分类特征-关键字。我的模型中可以有大约1000万个关键字

按照此处给出的说明-

我似乎应该把分类特征一分为二。这是否意味着我将有23个特征变量(10米级别的虚拟编码)


这是处理这种情况的最佳方法吗?

是。你基本上有1000万个预测变量。如果您正在进行回归/分类,这是不可避免的,除非您希望将“相似”关键字组合在一起以减少预测变量的数量。例如,如果关键字_1、关键字_2、关键字_3之间存在特定关系,则可以将它们合并为单个关键字,以此类推

为了减少这么多的关键词(10米),你可以使用套索()和岭()惩罚等技术。我们的想法是,这些10 M预测变量中的大多数在预测结果时并不重要,因此您希望在学习阶段的早期删除它们,以提高可解释性并避免结果的过度拟合


严格来说,RIDGE是为了避免过度拟合,LASSO是为了减少预测值的数量。

如果您将数据转换为稀疏矩阵,例如一个热编码,然后使用任何特征选择技术(正向/反向选择,LASSO),您将获得更好的结果。希望这有帮助

如何处理诸如userId之类的特性?您的响应变量是什么?你认为userId是一个很好的预测工具吗?如果是,那么您需要将例如响应变量UserId29(0或1)UserId30(0或1)的数据帧从长帧转换为宽帧UserId31,即转换为稀疏矩阵。特征散列将比稀疏矩阵更快?是的,这是另一种方法。。内存更少,只需很少的预处理。我从未使用过它,但这两种方法的模型性能通常不同。如果你使用它,一定要让我知道哪种方法效果更好。功能散列作为一种技术怎么样?“除非你想把“相似”的关键字组合在一起以减少预测变量的数量”。这种相似性可以是一种散列技术。