我正在使用sklearn的DictVectorizer来构造一个大型的稀疏特征矩阵,该矩阵被输入到ElasticNet模型中。当预测器(特征矩阵中的列)居中和缩放时,弹性网络(和类似的线性模型)工作得最好。推荐方法的目的是构建一个在回归器之前使用StandardScaler的Pipeline,但是这并不适用于稀疏特性,如文档中所述。
我想在normalize=True中使用ElasticNet标记,它似乎支持稀疏数据,但是还不清楚在对测试数据的预测过程中是否也应用了规范化。有没有人知道normalize=True是否也申请了预测?如果没有,在处理稀疏特性时,是否有方法在培训和测试集上使用相同的标准化?
发布于 2015-03-24 15:40:01
深入研究学习代码,看上去就像当fit_intercept=True和normalize=True,在标准化数据上估计的系数被投影回到数据的原始规模。这类似于R中的glmnet处理标准化的方式。相关的代码片段是方法_set_intercept of LinearModel,参见型号/base.py#L 158。因此,对未见数据使用系数的预测在最初的尺度上,即normalize=True是安全的使用。
https://stackoverflow.com/questions/29218826
复制相似问题