sklearn学习笔记——SGDClassifier 随机梯度下

2019-10-08  本文已影响0人  龙鹰图腾223

1、主要应用在大规模稀疏数据

SGD主要应用在大规模稀疏数据问题上,经常用在文本分类及自然语言处理。假如数据是稀疏的,该模块的分类器可轻松解决如下问题:超过10^5的训练样本、超过10^5的features。利用梯度来求解参数。

ng从特征数量n和样本数量m的关系给出了如下推荐:

如果特征数量大到和样本数量差不多,或者特征数量远远大于样本数量,则选用LR或者线性核的SVM;(eg.n=10000,m=10-1000)

如果特征的数量小,样本的数量正常,则选用SVM+高斯核函数;(eg.n=1-1000,m=10-10000)

如果特征的数量小,而样本的数量很大,则需要手工添加一些特征从而变成第一种情况。

2.可以选择损失函数

loss=”hinge”: (soft-margin)线性SVM.

loss=”modified_huber”: 带平滑的hinge loss.

loss=”log”: logistic回归

3.通过penalty参数,可以设置对应的惩罚项。SGD支持下面的罚项:

penalty=”l2”: 对coef_的L2范数罚项

penalty=”l1”: 对coef_的L1范数罚项

penalty=”elasticnet”: L2和L1的convex组合; (1 - l1_ratio) * L2 + l1_ratio * L1

SGD需要许多超参数:比如正则项参数、迭代数。

SGD对于特征归一化(feature scaling)是敏感的。

【1】https://blog.csdn.net/Invokar/article/details/86767943    梯度下降法(GD)与随机梯度下降法(SGD)的理解

上一篇下一篇

猜你喜欢

热点阅读