逻辑回归与线性回归的联系与区别
逻辑回归和线性回归都是属于广义上的回归模型,线性回归是属于监督学习的其中一种方法,就是预测具有一串具有连续变量的数据。而逻辑回归呢,就是比较偏向于分类,但它也是属于回归,所以本质还是线性回归,可以对数据预测进行概率计算,但最主要还是偏向于分类
逻辑回归的原理
运用回归方程来近可能的接近真实值,通过二类线性对数据进行分类,可以直接用在sigmoid函数上的映射。来更容易的看出概率的大小从而做出决策
逻辑回归损失函数推导和优化
经过假设函数二分类后得到联合概率统一公式p(y|x,θ)=hθ(x)y⋅(1−hθ(x))1−y,
最大化样本后的概率公式:
然后通过转化为最小化,这差集就是损失函数
用来优化的方法可以使用牛顿法,随机梯度下降等等。
正则化与模型评估指标
正则化可以防止过度拟合,
拟合的主要原因:具有过多的特征项
解决方法:选择性的减少特征数量模型选择算法
正则化十结构化风险最小策略的实现,是在经验风险上加一个正则化或惩罚项,模型越复杂,正则化项就越大。
逻辑回归的优缺点
优点:
速度快,适合二分类问题
简单,容易分辨区分
能很容易的嵌入新模型
缺点:
在数据和场景应用过程中具有局限性
样本不均衡问题解决办法:
1.可以扩大数据的采集项
2.尝试一些其他指标
3.对数据进行重采集,重新训练
4.加入人工数据
5.尝试不同的模型方法
6.增加模型的惩罚项
Sklearn参数
class sklearn.linear_model.LogisticRegression(
penalty=’l2’, 参数类型:str,可选:‘l1’ or ‘l2’, 默认: ‘l2’。该参数用于确定惩罚项的范数
dual=False, 参数类型:bool,默认:False。双重或原始公式。使用liblinear优化器,双重公式仅实现l2惩罚。
tol=0.0001, 参数类型:float,默认:e-4。停止优化的错误率
C=1.0, 参数类型:float,默认;1。正则化强度的导数,值越小强度越大。
fit_intercept=True, 参数类型:bool,默认:True。确定是否在目标函数中加入偏置。
intercept_scaling=1, 参数类型:float,默认:1。仅在使用“liblinear”且self.fit_intercept设置为True时有用。
class_weight=None, 参数类型:dict,默认:None。根据字典为每一类给予权重,默认都是1.
random_state=None, 参数类型:int,默认:None。在打乱数据时,选用的随机种子。
solver=’warn’, 参数类型:str,可选:{‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’}, 默认:liblinear。选用的优化器。
max_iter=100, 参数类型:int,默认:100。迭代次数。multi_class=’warn’, 参数类型:str,可选:{‘ovr’, ‘multinomial’, ‘auto’},默认:ovr。如果选择的选项是’ovr’,
那么二进制问题适合每个标签。对于“多项式”,最小化的损失是整个概率分布中的多项式损失拟合,即使数据是二进制的。当solver ='liblinear’时,'multinomial’不
可用。如果数据是二进制的,或者如果solver =‘liblinear’,‘auto’选择’ovr’,否则选择’multinomial’。
verbose=0, 参数类型:int,默认:0。对于liblinear和lbfgs求解器,将详细设置为任何正数以表示详细程度。
warm_start=False, 参数类型:bool,默认:False。是否使用之前的优化器继续优化。
n_jobs=None,参数类型:bool,默认:None。是否多线程