英文官方教程链接:
https://scikit-learn.org/stable/modules/sgd.htmlhttps://scikit-learn.org/stable/modules/sgd.html很抱歉,因为学着学着就感觉到了一丝厌倦,不知道自己到底在学习什么东西,但是走走停停又回来了。这也导致可能有些文章的内容质量不行,还望谅解,等我到达另一个境界的时候还是会回来完善的。
这一节讲的是随机梯度下降法 SGD。它被成功用在大规模且稀疏的机器学习问题。严格来说,它只是一个优化技巧,并不能真正算作机器学习模型家族的一员。
它的优点:高效,易于实施
它的不足:需要许多超参数,对特征缩放很敏感
SGDClassifier 支持多类别分类,它的基本方案是结合多个二分类器。对于 K 类中的每一个,一个二进制分类器就用在了这一类和其他的 K-1 类。
参数 | 描述 |
loss | str,default='hinge',还可以是 'log' 'modified_huber' 'squared_hinge' 'preceptron' 'squared_error' 'huber' 'epsilon_insensitive' 'squared_epsilon_insensitive'。 |
penalty | {'l2','l1','elasticnet'},default='l2'。 |
alpha | float,default=0.0001。 |
l1_ratio | float,default=0.15。取值在0到1之间,0是 l2 惩罚,1是 l1。只在penalty='elasticnet' 有效。 |
fit_intercept | bool,default=True |
max_iter | int,default=1000。传入的训练数据的最大值。 |
tol | float,default=1e-3。停止标准。 |
shuffle | bool,default=True |
verbose | int,default=0。详细程度。 |
epsilon | float,default=0.1 |
n_jobs | int,default=None。用于 one-versus-all 的 CPU 数量。None 表示用1个,-1表示用所有的。 |
random_state | int,default=None |
learning_rate | str,default='optimal','constant' 'optimal' 'invscaling' 'adaptive' 可选 |
eta0 | float,default=0.0,初始学习率 |
power_t | float,default=0.5,逆标度的学习率指数。 |
early_stopping | bool,default=False。是否在验证分数没什么改善的时候对终端训练采取提前停止。 |
validation_fration | float,default=0.1,为提前停止设置为验证集的训练数据的比例,在0到1之间。只在 early_stopping=True 的时候有效。 |
n_iter_no_change | int,default=5。停止拟合前没有可等待改进的迭代次数 |
class_weight | 字典,{class_label:weight} or balanced,default=None。 |
warm_start | bool,default=False。当设置为True,重新使用上一次的解决方案作为拟合的初始化。否则就将之前的解决方案抹去。 |
average | bool or int,default=False。当设置为True,对所有的更新计算平均 SGD 权重并将结果存到 'coef_' 属性。如果设为大于1的整数,一旦看到的样本总数达到“平均值”,将开始平均。 |
类属性 | |
.coef_ | 形如 (1,n_features) 的数组,如果 n_classes==2,否则就是 (n_classes,n_features)。给特征的权重。 |
.intercept_ | 形如 (1,) 或 (n_classes,) 的数组,在决策函数中的常量。 |
.loss_function_ | 具体的损失函数。 |
.classes_ | 形如 (n_classes,) 的数组。 |
.t_ | int,在训练过程中更新的权重数量。 |
.n_features_in_ | 略 |
.feature_names_in_ | 略 |
.n_iter_ | 略 |
SGDRegression 大家就自己去看一下吧。
说真的,这后面的难度一下就上来了,希望有人能指导我一下。