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

时间:2015-02-25 16:05:37

标签: machine-learning linear-regression

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

根据此处给出的说明 - http://www.psychstat.missouristate.edu/multibook/mlt08m.html

似乎我应该对分类特征进行二分法。这是否意味着我将拥有23个特征变量(具有10M级别的虚拟编码)?

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

2 个答案:

答案 0 :(得分:1)

是。您将基本上拥有1000万个预测变量。如果您正在进行回归/分类,这是不可避免的,除非您想要俱乐部"类似"关键字一起减少预测变量的数量。例如。你可以将关键字_1,关键字_2,关键字_3加入一个关键字,如果它们之间共享特定关系等等。

要减少这么多的关键字(10 M),你会有像LASSO(http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html)和RIDGE(http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html)惩罚这样的技巧。这个想法是这些10 M预测变量中的大多数在预测结果时并不重要,因此您希望在学习阶段的早期删除它们,以提高可解释性并避免过度拟合结果。

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

答案 1 :(得分:1)

如果将数据转换为稀疏矩阵,诸如One Hot Encoding之类的技术,然后使用任何特征选择技术(前向/后向选择,Lasso),您将获得更好的结果。希望这有帮助!