Sklearn专题五 逻辑回归

逻辑回归

一、概述

1、逻辑回归是用于分类的回归算法,可做二分类,也可做多分类
2、逻辑回归的sigmoid函数(记住公式和图像)
z越大g(z)越靠近1,z越小g(z)越靠近0,将任何数据压缩到(0,1)
3、逻辑回归的优点:对线性关系拟合效果极好;计算速度快;返回不是固定0、1,而是小数形式类概率数字
4、逻辑回归的目的:求解使模型拟合效果最好的参数θ,方式是梯度下降SGD

二、linear_model.LogisticRegression

1、损失函数:

  • 求解最优参数的工具,用来衡量参数为θ的模型拟合训练集产生的信息损失的大小。
  • 追求损失函数最小化的参数组合。(不求解参数的模型就没有损失函数,比如KNN,决策树)
  • 对逻辑回归过拟合的控制,通过正则化实现。

2、控制过拟合的两个参数

1)penalty

  • 默认=“l2”,若选择"l1”,参数solver只能使用"liblinear"和"saga"
  • l1正则化会把参数压缩到0,本质特征选择,越强、0越多、参数越稀疏,防止过拟合。数据维度高:l1正则化。
  • l2正则化只会让参数尽量小,不会取到0。

2)C

  • 正则化强度倒数,默认1.0(正则项:损失函数=1:1),越小,对模型惩罚越大,正则化强度越大。

3、梯度下降:重要参数max_iter

1)max_iter(最大迭代次数)人为设置的步数限制,越大,步长越小,模型迭代时间越长
2)多元函数的梯度:多元函数对各个自变量求偏导,求解梯度(向量)=损失函数 J(θ1,θ2)对其自身自变量θ1,θ2求偏导
3)θj+1 = θj -a*dj, a为步长,是梯度向量大小dj上的一个比例,dj为梯度向量大小

4、二元回归与多元回归:重要参数solver,multi_class

1)multi_class
“ovr”,二分类;“multinormial”,多分类,在solver="liblinear"时不可用;“auto” 自动选择,默认

2)solver:选择求解器

  • “liblinear”:求解方式为坐标下降法,默认,二分类专用
  • “lbfgs”,"newton-cg"利用海森矩阵求解,只支持l2正则化,不适合
  • “sag”:随机平均梯度下降,只支持l2正则化
  • “saga”:"sag"的进化,支持l1,l2正则化

5、样本不平衡参数class_weight

1)样本不平衡:标签某一类占有很大比例,或误分类代价很高,该参数给少量标签更多权重
2)默认为None,所有标签相同权重;误分类代价很高,选”balanced"
3) 参数很难用,处理样本不平衡一般用采样法。上采样:增加少数类样本;下采样:减少多数类的样本

6、重要属性

1)coef_:每个特征对应参数,值越大,对逻辑回归的贡献越大
2)n_iter:本次求解中真正的迭代次数
3)intercept_:用来导出截距

三、逻辑回归中的特征工程

一般不用PCA,SVD,因为会抹去特征的可解释性;统计方法可以使用,但不必要;嵌入法较高效(尽量保留数据信息&降维);系数累加法复杂不用;包装法快速简单。这里介绍嵌入法:

x_embedded=SelectFromModel(LR_,norm_order=1).fit_transform(x,y)

#参数1:模型
#参数2:threshold是筛选特征的阈值,可以取到的最大值是系数的最大值
abs(LR_.fit(x,y).coef_).max()
#参数3:norm_order=1,使用l1范式,模型删除所有在l1范式下判断无效的特征

其它:

1、逻辑回归模型评估指标:metric.confusion_matrix,metric.roc_auc_score,metric.accuracy_score
2、向量一般写成列向量
3、模型属性都是在fit之后查看
4、np.linspace(start,end,num)包括end
5、predict返回的是一个预测的值,predict_proba返回的是对于预测为各个类别的概率
6、如何取到列表最大值的索引?fsx.index(max(fsx))

你可能感兴趣的:(逻辑回归,sklearn,机器学习)