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)的理解