美文网首页
逻辑回归

逻辑回归

作者: 61etj | 来源:发表于2018-11-07 00:30 被阅读0次

逻辑回归

常用于分类中将线性回归转换为概率值[0,1]

image

损失函数重新定义

image

当有多个样本时

image

代入

image

scikit_learn

image

使用逻辑回归会默认自动使用L2正则化,为了必须使用正则化,所以我们前面说的正则化前的比重参数就被删除了, 转而为之的是超参数C,这个C是乘以损失函数的。也就是让我们用来调节损失函数的比重,但正则化一定会存在

from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler

def PolynomialLogisticRegression(degree, C, penalty='l2'):
    return Pipeline([
        ('poly', PolynomialFeatures(degree=degree)),
        ('std_scaler', StandardScaler()),
        ('log_reg', LogisticRegression(C=C, penalty=penalty))#C为损失函数权重,penalty为使用的正则算法
    ])

poly_log_reg = PolynomialLogisticRegression(degree=2,C=0.1)
poly_log_reg.fit(X_train, y_train)
poly_log_reg.score(X_train, y_train)

也可以单独使用

from sklearn.multiclass import OneVsRestClassifier

ovr = OneVsRestClassifier(log_reg)
ovr.fit(X_train, y_train)
ovr.score(X_test, y_test)

逻辑回归解决多分类

  • OvR (One vs Rest)

    image

    一针对剩余。原理是 在有多分类的情况下,先将多分类问题转变为2分类问题。具体:将其中一分类变为1,其余都为0.再使用逻辑回归,看样本属于1的概率。之后以此类推,所有分类都使用一针对剩余。最终会得到每个样本的对应概率,选择最大的就为分类值

      import numpy as np
      import matplotlib.pyplot as plt
      from sklearn import datasets
      from sklearn.linear_model import LogisticRegression
      
      iris = datasets.load_iris()
      X = iris.data
      y = iris.target 
      from sklearn.model_selection import train_test_split
      
      X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=666)
      
      log_reg = LogisticRegression()#默认使用OvR
      log_reg.fit(X_train, y_train)
      log_reg.score(X_test, y_test)
    
  • OvO (One vs One)

    image

    一对一。原理是 在有多分类的情况下,将数据分割成两两分类的情况。转换为2分类后使用逻辑回归。判断样本在哪个分类中的概率最大,选择最大的分类值。这种方式事件复杂度更高

    log_reg = LogisticRegression(multi_class="multinomial", solver="newton-cg")#multi_class默认使用OvR,这里使用OvO。当使用OvO时,因为scikit-learn不是使用梯度下降,是使用更快的算法,所以这里要重新指定算法来计算OvO

也可以单独使用

from sklearn.multiclass import OneVsOneClassifier

ovo = OneVsOneClassifier(log_reg)
ovo.fit(X_train, y_train)
ovo.score(X_test, y_test)

相关文章

  • 机器学习day7-逻辑回归问题

    逻辑回归 逻辑回归,是最常见最基础的模型。 逻辑回归与线性回归 逻辑回归处理的是分类问题,线性回归处理回归问题。两...

  • ML03-逻辑回归(下部分)

    本文主题-逻辑回归(下部分):逻辑回归的应用背景逻辑回归的数学基础逻辑回归的模型与推导逻辑回归算法推导梯度下降算法...

  • ML02-逻辑回归(上部分)

    本文主题-逻辑回归(上部分):逻辑回归的应用背景逻辑回归的数学基础逻辑回归的模型与推导逻辑回归算法推导梯度下降算法...

  • 逻辑回归模型

    1.逻辑回归介绍2.机器学习中的逻辑回归3.逻辑回归面试总结4.逻辑回归算法原理推导5.逻辑回归(logistic...

  • Task 01|基于逻辑回归的分类预测

    知识背景 关于逻辑回归的几个问题 逻辑回归相比线性回归,有何异同? 逻辑回归和线性回归最大的不同点是逻辑回归解决的...

  • 11. 分类算法-逻辑回归

    逻辑回归 逻辑回归是解决二分类问题的利器 逻辑回归公式 sklearn逻辑回归的API sklearn.linea...

  • 机器学习100天-Day4-6逻辑回归

    逻辑回归(Logistic Regression) 什么是逻辑回归 逻辑回归被用于对不同问题进行分类。在这里,逻辑...

  • SKlearn_逻辑回归小练习

    逻辑回归 逻辑回归(Logistic regression 或logit regression),即逻辑模型(英语...

  • R glm

    R 逻辑回归 R 怎么做逻辑回归

  • 逻辑斯蒂回归在二分类中的应用

    逻辑回归简介 逻辑斯蒂回归(logistic regression,又称“对数几率回归”)是经典的分类方法。逻辑斯...

网友评论

      本文标题:逻辑回归

      本文链接:https://www.haomeiwen.com/subject/nsxmxqtx.html