我是机器学习的新手,并尝试编写线性回归算法,其中我有一个分类特征 - 关键词。我的模型中可以有大约1000万个关键字。
根据此处给出的说明 - http://www.psychstat.missouristate.edu/multibook/mlt08m.html
似乎我应该对分类特征进行二分法。这是否意味着我将拥有23个特征变量(具有10M级别的虚拟编码)?
这是处理这种情况的最佳方法吗?
答案 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),您将获得更好的结果。希望这有帮助!