一天,某人问我什么是logstic回归。虽然做数据分析这么长时间经常用,仅仅是import some * 而已,没有深入思考,然而很遗憾,我在网上看到的logstic回归的数学推导都是错的,包括几本机器学习的经典教科书。花了几天时间推导一下,发现其背后的数学思想比较复杂,涉及到矩阵点乘和矩阵微分的概念
logstic回归就是对p/(1-p)进行线性回归)



from numpy import *def loadDataSet():dataMat = []; labelMat = []fr = open('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,labelMatdef sigmoid(inX):return 1.0/(1+exp(-inX))def gradAscent(dataMatIn, classLabels):dataMatrix = mat(dataMatIn)             #convert to NumPy matrixlabelMat = mat(classLabels).transpose() #convert to NumPy matrixm,n = shape(dataMatrix)alpha = 0.001maxCycles = 5000weights = ones((n,1))for k in range(maxCycles):              #heavy on matrix operationsh = sigmoid(dataMatrix*weights)     #matrix multerror = (labelMat - h)              #vector subtractionweights = weights + alpha * dataMatrix.transpose()* error #matrix multreturn weightsdef plotBestFit(weights):import matplotlib.pyplot as pltdataMat,labelMat=loadDataSet()dataArr = array(dataMat)n = shape(dataArr)[0] xcord1 = []; ycord1 = []xcord2 = []; ycord2 = []for i in range(n):if int(labelMat[i])== 1:xcord1.append(dataArr[i,1]); ycord1.append(dataArr[i,2])else:xcord2.append(dataArr[i,1]); ycord2.append(dataArr[i,2])fig = plt.figure()ax = fig.add_subplot(111)ax.scatter(xcord1, ycord1, s=30, c='red', marker='s')ax.scatter(xcord2, ycord2, s=30, c='green')x = arange(-3.0, 3.0, 0.1)y = (-weights[0]-weights[1]*x)/weights[2]ax.plot(x, y)plt.xlabel('X1'); plt.ylabel('X2');plt.show()#import logRegres    dataArr,labelMat=loadDataSet() weights=gradAscent(dataArr,labelMat)
plotBestFit(weights.getA())


输出的weight=

matrix([[ 9.35184677],[ 0.87401362],[-1.28891422]])

xw=9.35+0.87x-1.28y
令9.35+0.87x-1.28y=0,这就是分类曲线,为什么要这么做,在logstic 回归中,在分类中以概率值0.5为分类界限,ln(p/1-p)=xw,p=0.5,得xw=0

代码下载

logstic 回归相关推荐

  1. 七层神经网络 PK logstic 回归

    logstic链接    在这 篇文章中,我们讨论了logstic 回归,但是logstic回归的正确率太低了 在那个算例中,正确率只有66.2% import pandas as pdinputfi ...

  2. logstic 回归文章链接

    1 2 3 彻底理解logstic 5

  3. 逻辑斯蒂(logistic)回归深入理解、阐述与实现

    第一节中说了,logistic 回归和线性回归的区别是:线性回归是根据样本X各个维度的Xi的线性叠加(线性叠加的权重系数wi就是模型的参数)来得到预测值的Y,然后最小化所有的样本预测值Y与真实值y'的 ...

  4. 被掰弯的线性函数,海王一样的logstic

    目录 1.直男 线性回归 2.海王logistic,被掰弯的线性回归 3.海王征服的妹子 3.1 Word2Vector 3.2 XGBoost 3.3 深度学习中的sigmod 摘要 本文将要讲述的 ...

  5. 机器学习 Logistic回归

    目录 一.线性模型及回归: 1.一维数据线性模型: 2.多维数据: 二.对数线性回归: 三.Logistic回归: 1.极大似然估计: 2.梯度下降: 三.本次实验数据集介绍: 1.数据集信息介绍: ...

  6. 逻辑斯蒂回归java_逻辑斯蒂回归模型

    http://blog.csdn.net/hechenghai/article/details/46817031 主要参照统计学习方法.机器学习实战来学习.下文作为参考. 第一节中说了,logisti ...

  7. 吴恩达 神经网络和深度学习 第一课 第三周 (代码)planar data classify

    (主要是记录自己的学习轨迹,顺便可以为需要的提供一些需要,仅供参考) 主要实现代码和使用.py文件: 1)主要代码部分实现流程: 1.获取数据 2.初始化参数(w1,b1,w2,b2返回参数) 3.向 ...

  8. 深度学习基础知识整理

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/kwame211/article/details/81165381 本文是在七月的BAT机器学习面试1 ...

  9. BAT机器学习面试1000题系列(第1~305题

    1 请简要介绍下SVM,机器学习 ML模型 易SVM,全称是support vector machine,中文名叫支持向量机.SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同 ...

最新文章

  1. 记一次 HTTP信息头管理器使用 的重要性
  2. tcp报文格式_面试必备TCP(一):三次握手
  3. 用Transformer定义所有ML模型,特斯拉AI总监Karpathy发推感叹AI融合趋势
  4. 一个可以显示具体时间的日历控件应用
  5. hp 导出日志 远程管理卡_惠普服务器远程管理卡安装详解
  6. HashMap Hashtable TreeMap的异同点
  7. hashmap扩容线程安全问题_HashMap线程不安全的体现
  8. matlab基本使用指南
  9. 基于卷积神经网络的草莓病害检测(新数据+基础算法?=SCI)
  10. 【GitHub】cmder下载地址
  11. X64Dbg手动去WinRAR广告
  12. [日常] Apache Order Deny,Allow的用法
  13. PDMS软光刻加工过程
  14. python如何退出虚拟环境_python 虚拟环境
  15. Flutter Connection to **** was not upgraded to websocket
  16. 黑客专用文本编辑器Emacs中文手册
  17. Visual Studio中输入英文会在字母之间自动增加空格
  18. 魅族16php7.3系统,魅族16th官方稳定版固件rom系统刷机包:Flyme 7.3.0.0A
  19. 3通道高清视频编码电路 转接IC GM7123:TTL转VGA芯片
  20. 《工程伦理》网课1-13章作业单元考核答案完整版

热门文章

  1. Python--day61--Django中的app
  2. 二进制日志和数据更新的关系
  3. iOS开发多线程篇—自定义NSOperation
  4. Python 性能剖分工具
  5. PHP上传图片到数据库和存储到本地文件夹的方法
  6. 大量视频教程下载,全部是微软最新技术
  7. 定位ARM Hard Fault 的方法
  8. WPA/WPA2安全认证加密原理详解
  9. Geany编辑器怎么使中文不报错?
  10. PAT甲级1053 Path of Equal Weight (30分) :[C++题解]dfs求树的路径长度、邻接表