sklearn Logistic

Logistic 知识点


linear_model.LogisticRegression
函数
Sigmoid函数
g(z) = 1/(1+e^-z)
z = θ^(T) x
g(z) 就是Logistic的一个标签值(概率)

几率概念(二分类模型)
p/(1-p)
在Logistic中 对数几率log(p/1-p) = θ^(T) x

优点
拟合效果好
逻辑回归计算快

损失函数
衡量θ优劣的评估指标(没有‘求解参数’就没有损失函数 如KNN、决策树无损失函数)

损失函数由极大似然估计求出(记得加负号)

正则化
L1:J(θ)+∑|θj|
L2:J(θ)+根号∑(θj)^2

参数
penalty : ‘l1’ ‘l2’
C(0,1) :控制正则化程度的超参数 C越小越稀疏 正则化程度越大

LR中的特征工程
不用PCA以及SVD 会抹除特种的可解释性

使用embedded(嵌入法)
利用模型训练结果对特征进行处理

sklearn.feature_selection.SelectFromModel

estimator

object
用来构建变压器的基本估算器。
既可以是拟合的(如果prefit设置为True),也可以是不拟合的估计量。
拟合后,估算器必须具有 feature_importances_或coef_属性

threshold: str, float, optional default None
用于特征选择的阈值。
保留重要性更高或相等的要素,而其他要素则被丢弃。
如果为“中位数”(分别为“平均值”),
则该threshold值为要素重要性的中位数(分别为平均值)。
也可以使用缩放因子(例如,“ 1.25 *平均值”)。
如果为None且估计器的参数惩罚显式或隐式设置为l1(例如Lasso),
则使用的阈值为1e-5。
否则,默认使用“均值”。

prefit: bool, default False
预设模型是否期望直接传递给构造函数。
如果为True,transform必须直接调用和
SelectFromModel不能使用cross_val_score, GridSearchCV而且克隆估计类似的实用程序。
否则,使用训练模型fit,然后transform进行特征选择。

norm_order: 非零 int, inf, -inf, default 1
在估算器threshold的coef_属性为维度2 的情况下,
用于过滤以下系数矢量的范数的顺序 。

max_features:int or None, optional
要选择的最大功能数。
若要仅基于选择max_features,请设置threshold=-np.inf。

Attributes

estimator_:一个估算器
用来建立变压器的基本估计器。
只有当一个不适合的估计器传递给SelectFromModel时,
才会存储这个值,即当prefit为False时。

threshold_:float
用于特征选择的阈值。

embedded简单代码
from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier as RFC

RFC_ = RFC(n_estimators =10,random_state=0)#估计器

X_embedded = SelectFromModel(RFC_,threshold=0.005).fit_transform(X,y)
#在这里我只想取出来有限的特征。0.005这个阈值对于有780个特征的数据来说,是非常高的阈值,因为平均每个特征
只能够分到大约0.001的feature_importances_

X_embedded.shape

也可以用包装法、系数累加法等方法对特征进行筛选

Logistic的重要参数

penalty

C

max_iter
走多少步 类似于SGD中的step
LR.n_iter_ 显示走多少步达到拟合

多元 VS 二元回归
multi_class
‘ovr’ 二分类
‘multinomial’ 多分类
‘auto’ 自动判断

solver 求解器
‘liblinear’ 坐标下降法 L1 L2
‘lbfgs’拟牛顿法的一种 利用损失函数二阶来优化损失函数 L1 L2
‘newton-cg’ L2 正则
‘sag’ 需要对特征进行标准化 随机平均梯度下降 与普通梯度下降法的区别是每次迭代仅使用一部分样本来计算梯度
L2
‘saga’ L1 L2 需要标准化

在这里插入图片描述

解决数据问题

去重
data.drop_duplicates(inplace=True)
上采样
from imblearn.over_sampling import SMOTE
sm = SMOTE.fit_resample(X,Y)
将Y中不均衡的样本复制 直至均衡 举个栗子 原来20% 1 80% 0
现在50% 1 50% 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值