1、原理 2、参数 3、score_card

1、原理

https://zhuanlan.zhihu.com/p/101334183

2、重要参数

2.1 正则化参数

penalty、c




python 损失函数 衰减 sklearn损失函数_迭代


penalty:可以输入"l1"或"l2"来指定使用哪一种正则化方式,不填写默认"l2"。L1正则化会将参数压缩为0,L2正则化只会让参数尽量小,不会取到0。

C: 正则化强度的倒数。大于0的浮点数,默认为1(正则项与损失项比例为1:1)。c越大,正则效力越弱。

2.2特征选择参数

threshold: 即模型线性表达式系数。调节SelectFromModel这个类中的参数threshold,这是嵌入法的阈值,表示删除所有参数的绝对值低于这个阈值的特征。现在threshold默认为None。由于是线性表达式,所以系数大小代表重要性。

2.3 梯度

max_iter:最大迭代次数


python 损失函数 衰减 sklearn损失函数_python 损失函数 衰减_02


python 损失函数 衰减 sklearn损失函数_迭代_03


我们的目的是在可能的o取值上进行遍历,一次次计算梯度向量,并在梯度向量的反方向上让损失函数 下降至最小值。遍历过程可以描述为:


python 损失函数 衰减 sklearn损失函数_迭代_04


梯度是一个向量,因此它有大小也有方向。它的大小,就是偏导数组成的向量的大小,又叫做向量的模,记作d 。它的方向,几何上来说,就是损失函数的值增加最快的方向。

a为步长,步长不是任何物理距离,它甚至不是梯度下降过程中任何距离的直接变化,它是梯度向量的大小 d上的一个比例,影响着参数向量 o每次迭代后改变的部分。可以调节损失函数下降的速率.

max_iter:最大迭代次数

在sklearn当中,我们设置参数max_iter最大迭代次数来代替步长,帮助我们控制模型的迭代速度并适时地让模型停下。max_iter越大,代表步长越小,模型迭代时间越长,反之,则代表步长设置很大,模型迭代时间很短。

2.4 解决多分类问题

multi_class:ovr、 multinomial、auto

  • ovr':表示分类问题是二分类,或让模型使用"一对多"的形式来处理多分类问题。
  • 'multinomial':表示处理多分类问题,这种输入在参数solver是'liblinear'时不可用。
  • "auto":表示会根据数据的分类情况和其他参数来确定模型要处理的分类问题的类型。比如说,如果数据是二分类,或者solver的取值为"liblinear","auto"会默认选择"ovr"。反之,则会选择"nultinomial"。
  • 注意:默认值将在0.22版本中从"ovr"更改为"auto"
from sklearn.datasets import load_iris
iris = load_iris()
iris.target#三分类数据集

for multi_class in ('multinomial', 'ovr'):
    clf = LR(solver='sag', max_iter=100, random_state=42,
                             multi_class=multi_class).fit(iris.data, iris.target)
 
    print("training score : %.3f (%s)" % (clf.score(iris.data, iris.target), multi_class))


2.5 求解目标函数的方法

solver参数

。。。。。。。。。。。。。。

2.6 样本不平衡与参数

class_weigh:默认1:1

处理样本不均衡的各种方法,其中主流的是采样法,是通过重复样本的方式来平衡标签,可以进行上采样(增加少数类的样本),比如SMOTE,或者下采样(减少多数类的样本)

3、score card

。。。。。。。。。。。。。。。