【机器学习算法-python实现】逻辑回归的实现(LogicalRegression)

2023-05-16

(转载请注明出处:http://blog.csdn.net/buptgshengod)

1.背景知识

      在刚刚结束的天猫大数据s1比赛中,逻辑回归是大家都普遍使用且效果不错的一种算法。
 

(1)回归     

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

   (2)sigmoid函数

         我们看到了上图中两组数据的划分,那么我们怎么来找出两组数据的边界表达式呢,这里用到sigmoid函数。它的形状大致是(如下),公式
把数据集的特征值设为x1,x2,x3......。我们要求出它们的回归系数。只要设z=w1*x1+w2*x2.....用sigmoid函数出理是防止数据从0到1发生跳变,因为目标函数是0到1,我们要把带入x1,x2...多项式数据控制在这之间。

 (3)梯度上升算法

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

2.代码

   数据集在工程中有。
导入数据集,并定义sigmoid函数
def loadDataSet():
    dataMat = []; labelMat = []
    fr = open('/Users/hakuri/Desktop/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))


返回回归系数,对应于每个特征值,for循环实现了递归梯度上升算法。
def gradAscent(dataMatIn, classLabels):
    dataMatrix = mat(dataMatIn)             #convert to NumPy matrix
    labelMat = mat(classLabels).transpose() #convert to NumPy matrix
    
    m,n = shape(dataMatrix)
    alpha = 0.001
    maxCycles = 500
    weights = ones((n,1))
    
    for k in range(maxCycles):              #heavy on matrix operations
        h = sigmoid(dataMatrix*weights)     #matrix mult
        error = (labelMat - h)              #vector subtraction
        weights = weights + alpha * dataMatrix.transpose()* error #matrix mult
    return weights


结果,返回了特征值的回归系数。我们的数据集有两个特征值分别是x1,x2。我们又增设了了x0变量。得到的结果

[[ 4.12414349]

 [ 0.48007329]

 [-0.6168482 ]]

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

3.代码

 
下载地址(Logical Regression)

作者微信公众号:凡人机器学习

长期分享机器学习实战相关信息,感谢关注!


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【机器学习算法-python实现】逻辑回归的实现(LogicalRegression) 的相关文章

随机推荐

  • 基于K近邻法的手写数字图像识别

    数字图像处理课程论文 题目 xff1a 数字图像识别 摘要 模式识别 PatternRecognition 是一项借助计算机 xff0c 就人类对外部世界某一特定环境中的客体 过程和现象的识别功能 xff08 包括视觉 听觉 触觉 判断等
  • Android apk图片资源目录存放规则(drawable和mipmap的区别)

    mipmap mdpi 48 48 mipmap hdpi 72 72 mipmap xhdpi 96 96 mipmap xxhdpi 144 144 mipmap xxxhdpi 192 192 drawable ldpi xff1a
  • 动态代理实现AOP

    阅读目录 代理静态代理动态代理动态代理的应用场景AOPAOP实例1AOP实例2 回到顶部 代理 代理顾名思义 xff1a 代为处理 不是对目标对象的直接操作 xff0c 而是通过代理对目标对象进行包装 xff0c 此时可以在目标对象的基础上
  • 使用linux系统提供的信号量集和共享内存实现生产者和消费者问题

    使用linux系统提供的信号量集和共享内存实现生产者和消费者问题 实验目的 了解和熟悉linux系统下的信号量集和共享内存 实验任务 使用linux系统提供的信号量集和共享内存实现生产者和消费者问题 实验要求 1 写两个程序 xff0c 一
  • XML学习准备(HTML、CSS、JavaScript)

    1 学习前的准备html 1 每个网站开发人员都有必要了解以下几方面的知识 xff1a 万维网如何工作 HTML 语言 如何使用层叠样式表 CSS JavaScript 编程 XML 标准 服务器脚本技术 使用 SQL 来管理数据 2 HT
  • 如何判断系统是32位的还是64位的?

    1 最简单的一种方法 xff1a xff08 1 xff09 XP系统 右击 我的电脑 34 属性 34 xff0c 如果是32为系统 xff0c 则显示 Microsoft Windows XP Professional xff0c 即不
  • No embedded stylesheet instruction for file:奇怪的错误

    今天在看Spring的一些东西 xff0c 刚开始看 xff0c 编写了一个HelloWorld xff0c 中间除了不少错误 xff0c 但是都排除了 xff1b 但是 xff0c 最后的一个错误实在是摸不着头脑 xff1a 21 11
  • 修改Windows的默认文件查看方式

    Windows文件夹中查看文件的方式有 xff1a 缩略图 xff0c 平铺 xff0c 列表 xff0c 图标 xff0c 详细信息 xff0c 默认方式为平铺 那么如何修改成其它的默认方式呢 xff1a 进入一个文件夹 xff0c 选择
  • windows右键添加cmd

    1 运行regedit打开注册表 2 在注册表 HKEY CLASSES ROOT Directory shell分支下新建一项命名为 CommandPrompt xff0c 修改右侧窗口中的 默认 键 值为 命令提示符 xff08 你想要
  • 如何查看端口被哪个程序占用

    假如我们需要确定谁占用了我们的3306端口 1 Windows平台 在windows命令行窗口下执行 xff1a C gt netstat aon findstr 34 3306 34 TCP 127 0 0 1 9050 0 0 0 0
  • 写个心得

    唉 xff0c 菜鸟就是悲哀啊 刚刚花了将近一个小时来学习for命令 xff0c 以前一看这么复杂 xff0c 就不想学了 xff0c 总想着虽然复杂 xff0c 但也是简单的 xff0c 将来用的时候 xff0c 查查就知道了 就这样 x
  • 视图绑定功能

    文章目录 前言 以下为Kotlin语言环境在android官方文档中 视图绑定可以用于替代findViewById 并且 当启用视图绑定之后 系统会为项目中的每个XML文件生成一个绑定类 绑定类的实例包含其布局中的所有具有ID的直接引用 一
  • Android 一键分享功能

    之前在做项目时遇到这么个需求 xff0c 就是用户点击Menu或者一个按钮可以把文字分享到各大微博例如新浪微博 腾讯 人人 开心 校内等 现在我给大家演示一下 xff08 一 xff09 先建一个工程文件ShareDemo xff08 二
  • 怎么根据Comparable方法中的compareTo方法的返回值的正负 判断升序 还是 降序?

    public int compareTo Student o return this age o age 比较年龄 年龄的升序 应该理解成return 1 this age o age 计算机没有所谓的正序和逆序 xff0c 他只管大还是小
  • 自动驾驶技术-环境感知篇:V2X技术的介绍

    V2X技术概述 在前面的几篇文章分别介绍了自动驾驶在环境感知领域的相关技术点 xff0c 主要介绍了如何通过雷达配合视觉技术实现车辆自身的智能 其实在环境感知方面 xff0c 除了利用车辆自身的智能 xff0c 还可以借助外部环境实现信息的
  • 深度学习分布式策略优化、显存优化、通信优化、编译优化综述

    综述 因为我个人最近在从事可能是AI领域对性能挑战最大的方向 xff0c 自动驾驶领域 xff0c 所以对整个深度学习训练的优化尤为关注 xff0c 最近一直在学习相关内容 xff0c 谨以此篇文章做一个总结 我一直很看好深度学习训练优化这
  • 量子计算机的优势和建设挑战

    1 为什么需要量子计算机 目前大家日常使用的计算机都是经典计算机 xff0c 经典计算机计算性能的发展遵循摩尔定律 xff0c 在价格不变时 xff0c 集成电路上可容纳的晶体管数目 xff0c 约每隔18个月便会增加一倍 性能也将提升一倍
  • 浅谈ChatGPT对生产关系及工具的颠覆影响

    xff08 先歪个楼 xff0c 配图是三体乱纪元 xff0c 证明三体问题无解 xff0c 而ChatGPT证明了AIGC问题是可解的 xff09 最近ChatGPT越来越热 xff0c 仿佛看到了资本市场又一次的爆发 最近周末也会跟几个
  • 蓟门边studio-码农创业路的起点

    蓟门边工作室 xff0c 开张了 先简单介绍下lz的情况吧 xff01 lz是北邮在读硕士 xff0c 码农一枚 断断续续写代码也有一两个年头了 xff0c 但是感觉总是在外面飘着 xff0c 没写过什么大的项目 xff0c 也没真正依靠技
  • 【机器学习算法-python实现】逻辑回归的实现(LogicalRegression)

    转载请注明出处 xff1a http blog csdn net buptgshengod 1 背景知识 在刚刚结束的天猫大数据s1比赛中 xff0c 逻辑回归是大家都普遍使用且效果不错的一种算法 xff08 1 xff09 回归 先来说说