在今天的课程视频中,我一直在听老师讲算法,感觉重在理解,老师讲的内容也比较好理解,没有什么好截图,于是在课下总结时参看算法书进行再次学习。算法书是真的难,我觉得可能这部分知识本身就很难,不过老师讲的是理论知识,而且老师水平高超,使我理解较快,但是实践是真的难。看书时发现部分代码真的难以理解,先记录一下吧。

一.算法概述

1.Sigmoid函数于logistic算法的关系


2.Sigmoid函数的向量表示,以及各个参数的含义

二.训练算法:使用梯度上升找到最佳参数


Logistic 梯度上升优化算法

def loadDataSet():dataMat = [] ; lableMat = []fr = open('testSet.txt')for line in fr.readline();# readline(size) 方法用于从文件读取整行,包括 "\n" 字符。如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符。lineArr = line.strip().split()#Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符#Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串dataMat.append([1.0,float(lineArr[0]),float(lineArr[1])])lableMat.append(lineArr[2])return dataMat,lableMat
def sigmoid (inX)return 1.0/(1+exp(-inX))
def gradAscent(dataMatIn,classLabels):dataMatrix = mat(dataMatIn) # 转化成矩阵labelMat = mat(classLabels).transpose()m,n = shape(dataMatrix)alpha = 0.001maxCycles = 500weights = ones((n,1))for k in range (maxCycles)h =sigmoid(dataMatrix*weights)error = (labelMat - h)weights+=alpha*dataMatrix.transpose()*errorreturn weights

决策边界的画法(自己目前对代码也不咋理解,先机械的敲了一遍)

def plotBestFit(wei)import matplotlib.pyplot as pltweights = wei.getA()dataMat ,lableMat = loadDataSet()dataArr = array(dataMat)n = shape(dataArr)[0]xcord1 = [] ;ycord1 = []xcord2 = [];  ycord2 = []for i in range(n):if int(lableMat[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];as.plot(x,y)plt.xlabel('X1');plt.ylabel('X2');plt.show()

改进的随即上升梯度算法

def stocGradAscent1(dataMatrix,classLabels,numIter=150)m,n =shape(dataMatrix)weights = ones(n)for j in range (numIter):   dataIndex = range(m)for i in range(m)alpha = 4/(1.0+j+i)+0.01randIndex = int(random.uniform(0,len(dataIndex)))h = sigmoid(sum(dataMatrix[randIndex]*weights))error = classLabels[randIndex]-hweights+=alpha*error*dataMatrix[randIndex]del(dataIndex[randIndex])return weights

机器学习第三回——logistic回归算法相关推荐

  1. 机器学习(三)---Logistic回归

    目录 概念了解 线性模型与回归 最小二乘与参数求解 对数线性回归 Logistic回归 梯度下降 代码实现 线性模型与回归 逻辑回归 借鉴 概念了解 线性模型与回归 线性模型一般形式 最小二乘与参数求 ...

  2. 机器学习第三回——逻辑回归 (Logistic Regression)

    分类问题 属于监督学习的一种,要预测的变量

  3. python实现logistic_用Python实现机器学习算法—Logistic 回归算法

    在 Logistic 回归中,我们试图对给定输入特征的线性组合进行建模,来得到其二元变量的输出结果.例如,我们可以尝试使用竞选候选人花费的金钱和时间信息来预测选举的结果(胜或负).Logistic 回 ...

  4. 机器学习中的Logistic回归算法(LR)

    Logistic回归算法(LR) 算法简介 LR名为回归,实际是一种分类算法.其针对输入样本集 x x,假设的输出结果 y=hθ(x)y=h_{\theta}(x) 的取值范围为 y=[0,1] y= ...

  5. Logistic回归算法实战

    实战--预测病马的死亡率 前面,我简单介绍了「Logistic分类器」. Logistic回归算法 今天,我们将进行实战操练:使用Logistic分类器来预测患有疝病的马的存活率. 疝病是描述马胃肠痛 ...

  6. 数学解析Logistic回归算法

    数学解析Logistic回归算法 在<Logistic回归算法(分类问题)>一节,我们学习了 Logistic 回归算法,并且重点认识了 Logistic 函数.我们知道分类问题的预测结果 ...

  7. ML之回归预测:机器学习中的各种Regression回归算法、关键步骤配图

    ML之回归预测:机器学习中的各种Regression回归算法.关键步骤配图 目录 机器学习中的各种回归算法 1.回归算法代码 2.各种回归算法 3.各种回归算法大PK 机器学习中的各种回归算法 1.回 ...

  8. 吴恩达机器学习(三)—— Logisitic回归

    文章目录 1. 分类问题 2. 假设表示 3. 决策边界 4. 代价函数 5. 梯度下降 6. 高级优化 7. 多类别分类 Logistic回归是一种广义的线性回归分析模型.它是一种分类方法,可以适用 ...

  9. 机器学习03:使用logistic回归方法解决猫狗分类问题

    机器学习03:使用logistic回归方法解决猫狗分类问题 文章目录 机器学习03:使用logistic回归方法解决猫狗分类问题 前言 1. Logistic回归原理 1.1 从线性回归说起 1.2 ...

  10. Python实现 logistic 回归算法

    Python实现 logistic 回归算法 1.算法介绍 模型描述: sigmoid函数: 原理: 优化目标:最小化 sigmoid(f(x)) 和真实标签的差别(有不同的 cost functio ...

最新文章

  1. CI框架css引入出现问题
  2. C# List Sort
  3. Cissp-【第8章 软件开发安全】-2021-3-15(822页-918页)【完】
  4. 通过 UserAgent 判断是否在我们自己的安卓APP中
  5. 关于在n-1的数组中找到那个被减去的数及异或与位与
  6. Android开发 - 掌握ConstraintLayout(一)传统布局的问题
  7. SpringBoot集成Editor.md 流程详细
  8. 什么是 AWS Data Pipeline
  9. Recurrent Neural Network系列1--RNN(循环神经网络)概述
  10. vue的computed单向绑定(如淘宝的购物车中使用)
  11. 【Python配置】Win10配置Python3、Numpy、PyCharm、Anaconda
  12. 数据库查询·聚合分支格式化日期·思维导图要点误点(含示例)
  13. linux系统root用户忘记密码的重置方法
  14. 虚拟机安装教程win7_VMware15虚拟机软件安装教程
  15. 酒店预订微信小程序怎么开发?
  16. 第一阶段✦第一章☞信息化知识
  17. 树莓派安装中文拼音输入法和五笔输入法
  18. 微信文件夹储存在什么位置?如何修改保存路径
  19. 控制器c语言编程,如何用C语言对DMA控制器编程 - 全文
  20. Qt中关于emit和moc_*.cpp的自动生成

热门文章

  1. 三菱plc pwm指令_2020福建三菱PLCFX3GA60MT回收回收厂家回收气动元件回收
  2. koa2与php比较,模仿KOA,用php来写一个极简的开发框架
  3. 减小编译bin文件大小_两个奇技淫巧,将 Docker 镜像体积减小 99%
  4. vmnet0 子网ip和子网掩码_IP地址知识介绍及子网划分与汇总
  5. Openlayer:学习笔记之图标与提示信息
  6. Pannellum:实例之全景图预览
  7. Guava学习笔记(二):Optional优雅的使用null
  8. 静态对象和非静态对象的区别
  9. JSP简介以及各种内置对象的用法
  10. ML/DL-复习笔记【七】- 偏差和方差