首页 > 编程语言 >机器学习--Logistic回归分类算法及应用

机器学习--Logistic回归分类算法及应用

时间:2022-12-08 10:00:56浏览次数:41  
标签:sigmoid -- 样本 算法 Logistic 拟合 x1 数据

1. Lineage逻辑回归分类算法

1.1 概述

Lineage逻辑回归是一种简单而又效果不错的分类算法

什么是回归:比如说我们有两类数据,各有50十个点组成,当我门把这些点画出来,会有一条线区分这两组数据,我们拟合出这个曲线(因为很有可能是非线性),就是回归。我们通过大量的数据找出这条线,并拟合出这条线的表达式,再有新数据,我们就以这条线为区分来实现分类。

下图是一个数据集的两组数据,中间有一条区分两组数据的线。

机器学习--Logistic回归分类算法及应用_拟合

显然,只有这种线性可分的数据分布才适合用线性逻辑回归

1.2 算法思想

Lineage回归分类算法就是将线性回归应用在分类场景中

在该场景中,计算结果是要得到对样本数据的分类标签,而不是得到那条回归直线

1.2.1 算法图示

机器学习--Logistic回归分类算法及应用_数据_02

1) 算法目标()?

大白话:计算各点的y值到拟合线的垂直距离,如果

距离>0, 分为类A

距离<0, 分为类B

2) 如何得到拟合线呢?

大白话:只能先假设,因为线或面的函数都可以表达成

y(拟合)=w1*x1 + w2*x2 + w3*x3 + ...

其中的w是待定参数

而x是数据的各维度特征值

因而上述问题就变成了 样本y(x) - y(拟合) >0 ? A : B

3) 如何求解出一套最优的w参数呢?

基本思路:代入“先验数据”来逆推求解

但针对不等式求解参数极其困难

通用的解决办法,将对不等式的求解做一个转换:

a. 将“样本y(x) - y(拟合) ”的差值压缩到一个0~1的小区间,

b. 然后代入大量的样本特征值,从而得到一系列的输出结果;

c. 再将这些输出结果跟样本的先验类别比较,并根据比较情况来调整拟合线的参数值,从而是拟合线的参数逼近最优

从而将问题转化为逼近求解的典型数学问题

1.2.2 sigmoid函数

上述算法思路中,通常使用sigmoid函数作为转换函数

l 函数表达式:

机器学习--Logistic回归分类算法及应用_拟合_03

注:此处的x是向量

 

l 函数曲线:

机器学习--Logistic回归分类算法及应用_拟合_04

之所以使用sigmoid函数,就是让样本点经过运算后得到的结果限制在0~1之间,压缩数据的巨幅震荡,从而方便得到样本点的分类标签(分类以sigmoid函数的计算结果是否大于0.5为依据)

1.3 算法实现分析

1.3.1 实现思路

算法思想的数学表述

把数据集的特征值设为x1,x2,x3......

求出它们的回归系数wi

设z=w1*x1+w2*x2..... ,然后将z值代入sigmoid函数并判断结果,即可得到分类标签

问题在于如何得到一组合适的参数wi?

通过解析的途径很难求解,而通过迭代的方法可以比较便捷地找到最优解

简单来说,就是不断用样本特征值代入算式,计算出结果后跟其实际标签进行比较,根据差值来修正参数,然后再代入新的样本值计算,循环往复,直到无需修正或已到达预设的迭代次数

注:此过程用梯度上升法来实现。

 

1.3.2梯度上升算法

梯度上升是指找到函数增长的方向。在具体实现的过程中,不停地迭代运算直到w的值几乎不再变化为止。

如图所示:

机器学习--Logistic回归分类算法及应用_特征值_05

机器学习--Logistic回归分类算法及应用_数据_06

2. Lineage逻辑回归分类Python实战

2.1 需求

对给定的先验数据集,使用logistic回归算法对新数据分类

机器学习--Logistic回归分类算法及应用_特征值_07

2.2 python实现

2.2.1定义sigmoid函数

 

​def loadDataSet():

    dataMat = []; labelMat = []

    fr = open('d:/testSet.txt')

    for line in fr.readlines():

        lineArr = line.strip().split()

        dataMat.append([1.0, float(lineArr[0]), float(lineArr[1])])

        labelMat.append(int(lineArr[2]))

    return dataMat,labelMat


def sigmoid(inX):

    return 1.0/(1+exp(-inX))​

 2.2.2 返回回归系数

对应于每个特征值,for循环实现了递归梯度上升算法。

​def gradAscent(dataMatIn, classLabels):

    dataMatrix = mat(dataMatIn)             #将先验数据集转换为NumPy 矩阵

    labelMat = mat(classLabels).transpose()  #将先验数据的类标签转换为NumPy 矩阵


    m,n = shape(dataMatrix)

    alpha = 0.001      #设置逼近步长调整系数

    maxCycles = 500   #设置最大迭代次数为500

    weights = ones((n,1))     #weights即为需要迭代求解的参数向量


    for k in range(maxCycles):              #heavy on matrix operations

        h = sigmoid(dataMatrix*weights)    #代入样本向量求得“样本y”sigmoid转换值

        error = (labelMat - h)              #求差

        weights = weights + alpha * dataMatrix.transpose()* error  #根据差值调整参数向量

    return weights​

我们的数据集有两个特征值分别是x1,x2。在代码中又增设了x0变量。

结果,返回了特征值的回归系数:

[[ 4.12414349]

 [ 0.48007329]

 [-0.6168482 ]]

我们得出x1和x2的关系(设x0=1),0=4.12414349+0.48007329*x1-0.6168482*x2

2.2.3 线性拟合线

画出x1与x2的关系图——线性拟合线

机器学习--Logistic回归分类算法及应用_特征值_08


标签:sigmoid,--,样本,算法,Logistic,拟合,x1,数据
From: https://blog.51cto.com/u_15130867/5920460

相关文章

  • 文本查看及处理工具
    文本查看及处理工具wc、cut、sort、uniq、diff、patch;wc命令:其功能是用于统计文件的字节数、单词数、行数等信息,并将统计结果输出到终端界面。使用方式:wc[选项]...[文......
  • 介绍一个不错的页面分析工具,很强悍
    之前用过httpwatch等,这次试用了一个国产的不错的页面分析工具:睿思页面分析专家,功能很齐全,尤其适合门户网站和中小型网站用,提升速度,还有给编辑......
  • 创赢未来,零数科技入选2022年度科创独角兽TOP50
    12月7日,年度重磅榜单“2022年度科创独角兽TOP50”公布,零数科技作为唯一一家区块链厂商入选该榜单。独角兽企业一般是指未上市的高成长性企业,作为近年来发展速度最快,具备最高......
  • ORA-12514 监听程序当前无法识别连接描述符中请求
    问题描述:在安装完数据库后,无法进行正常连接,提示ORA-12514错误,环境为WindowsServer2008R2+Oracle11.2.0.4,之前安装11.2.0.1的时候没有遇到这个问题,不清楚是否和版本有关。......
  • dojo,jquery,mootools三种框架实现的ajax效果
    经常在微BLOG上,或者象tudou,ku6等视频网站上,看到"查看评论"的按钮,点后就显示列表,是AJAX效果的,找到老外的一篇文,讲这个实现:​​​http://davidw......
  • Java线程中断机制
    在阅读AQS源码以及juc包很多基于AQS的应用源码过程中,会遇到很多interrupted相关的方法,这里复习一下java线程中断相关。要点:使用interrupt()中断一个线程,该方法只是标记中......
  • 损失高达3亿美元|如何保护源代码安全?
    源代码是所有软件开发公司最宝贵的资产之一。因此,如果源代码被盗或泄露,可能会对企业的业务造成巨大损失。从长远来看,源代码盗窃可能会对企业的财务和声誉造成不可估量的损......
  • 虹桥滨海新区高防BGP物理机租用托管
    很大的关系,在我们不知道机房线路的质量是好是坏的时候,我们可以通过测试IP来解决这样的问题,通过输入cmd程序,来测试IP到我们本地速度的快慢和稳定性。这样的检测可以看出机房......
  • 跨机房ES同步实战
    作者:谢泽华背景众所周知单个机房在出现不可抗拒的问题(如断电、断网等因素)时,会导致无法正常提供服务,会对业务造成潜在的损失。所以在协同办公领域,一种可以基于同城或异地......
  • 虹桥滨海新区网站BGP物理机租用
    相对的价格也很低,选择高性价比的服务器可以节省我们本身的本钱。在服务器硬件性价比方面,主要注意以下几点:1、CPU可以说是服务器的核心,CPU的好坏决定服务器在处理问题上速度......