一、逻辑斯谛回归原理

逻辑斯谛回归是经典的分类方法,它属于对数线性模型,原理是根据现有的数据对分类边界线建立回归公式,以此进行分类。(主要思想)

定义:

在线性回归模型的基础上,使用Sigmoid函数,将线性模型的结果压缩到[0,1]之间,使其拥有概率意义,它可以将任意输入映射到[0,1]区间,实现值到概率转换。

属于概率性判别式模型

线性分类算法

Sigmoid 函数满足的性质:1.单调增函数  2、饱和函数 3.函数值有极限,使用符号表示

二、损失函数

逻辑斯谛回归输出的是分布。计算的是的差异。

和等于0的概率。

的概率和等于0的概率。

例:求如下两分布的差异:

        

        

用这个式子表示这连个分布直接的差异

因此损失函数为:

如果y=1     大,则尽量大(越接近1越大)

如果y=0      越小,则接近0

三、代码实现

import torch.nn
#3*1的矩阵
x_data=torch.Tensor([[1.0],[2.0],[3.0]])
#3*1的矩阵
y_data=torch.Tensor([[0],[0],[1]])#继承类Module,自动会实现反向计算图
class LogisticRegressModel(torch.nn.Module):#构造方法def __init__(self):super(LogisticRegressModel, self).__init__()self.linear=torch.nn.Linear(1,1) #类(),构造了一个对象。def forward(self, x):y_pred=torch.sigmoid(self.linear(x))#对象(),实现了一个可调用的对象return y_predmodel=LogisticRegressModel()criterion=torch.nn.BCELoss(size_average=False)
optimizer=torch.optim.SGD(model.parameters(),lr=0.01)for epoch in range(1000):y_pred=model(x_data)loss=criterion(y_pred,y_data)print(epoch,loss.item())optimizer.zero_grad()loss.backward()optimizer.step()print('w=',model.linear.weight.item())
print('b=',model.linear.bias.item())x_test=torch.Tensor([[4.0]])
y_test=model(x_test)
print('y_pred=',y_test.data)输出:997 1.1030402183532715
998 1.1024994850158691
999 1.101959466934204
w= 1.1029601097106934
b= -2.6689109802246094
y_pred= tensor([[0.8511]])

利用逻辑斯谛回归实现分类相关推荐

  1. Caffe实践】如何利用Caffe训练ImageNet分类网络

    Caffe实践]如何利用Caffe训练ImageNet分类网络 源文章:https://github.com/BVLC/caffe/tree/master/examples/imagenet 由于要使 ...

  2. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测daiding

    ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...

  3. ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测

    ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...

  4. EL之GB(GBC):利用GB对多分类问题进行建模(分层抽样+调1参)并评估

    EL之GB(GBC):利用GB对多分类问题进行建模(分层抽样+调1参)并评估 目录 输出结果 设计思路 核心代码 输出结果 T1. T2. 设计思路 核心代码 #T1. nEst = 500 dept ...

  5. EL之GB(GBC):利用GB对二分类问题进行建模并评估

    EL之GB(GBC):利用GB对二分类问题进行建模并评估 目录 输出结果 T1.纯GB算法 T2.以RF为基学习器的GB算法 设计思路 核心代码 输出结果 T1.纯GB算法 T2.以RF为基学习器的G ...

  6. Keras之DNN::基于Keras(sigmoid+binary_crossentropy+predict_classes)利用DNN实现二分类——DIY二分类数据集预测新数据点

    Keras之DNN::基于Keras(sigmoid+binary_crossentropy+predict_classes)利用DNN实现二分类--DIY二分类数据集&预测新数据点 目录 输 ...

  7. php 递归格式化数组,PHP利用递归实现无限分类,格式化数组的简单示例

    这篇文章主要为大家详细介绍了PHP利用递归实现无限分类,格式化数组的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!我们要做一个商品的无限分类 ...

  8. 利用SVM 实现文本分类的实例

    原文来自:http://blog.csdn.net/zhzhl202/article/details/8197109 之前做过一些文本挖掘的项目,比如网页分类.微博情感分析.用户评论挖掘,也曾经将li ...

  9. (NO.1)利用sklearn进行鸢尾花分类

    文章目录 利用sklearn进行鸢尾花分类 preheat 联库 版本查询 practice summary 利用sklearn进行鸢尾花分类 preheat 联库 sklearn是基于Numpy和S ...

最新文章

  1. thrift - C#(CSharp)客户端连接池(ConnectionPool)
  2. oracle中decode函数用法及应用
  3. 开源android豆瓣电影阅读器
  4. 电费结算(electric)
  5. P4480-[BJWC2018]餐巾计划问题【三分,贪心】
  6. 信息学奥赛C++语言:斐波那契第n项
  7. android: 记录及回复lisView的位置
  8. C++中嵌入python程序——命令行模式
  9. 使用Fastjson解析List对象时出现:{$ref:$.data[0].task.OBJECTS[0]}的问题原因及解决方法...
  10. codevs 4189 字典
  11. intellij HTTP状态 404 - 未找到_IntelliJ静态分析竟有代码检测优化,删除冗余等功能...
  12. Restlet 指南
  13. linux系统可安装博途吗,安装博途V14是在什么系统下?
  14. leapftp怎么下载文件,用leapftp怎么下载文件
  15. 3d游戏的总体设计框架
  16. 【教程】安装torch_sparse、torch_cluster、torch_scatter、torch_spline
  17. win怎么在计算机里按日期搜索文件,win10系统如何按指定修改日期搜索文件
  18. 如何提升百度竞价推广的转化率?
  19. Mark(转载)古人读书十二法
  20. git pull报错:Your configuration specifies to...from the remote, but no such ref was fetched

热门文章

  1. MySQL函数少传参数,MySQl函数(1)
  2. 卷积神经网络:汇聚层
  3. redhat/openssl生成自签ca证书并使用
  4. 利用PS滤镜及图层叠加制作水墨荷花
  5. Arduino Uno开发板+电机驱动扩展版CNC Shield V3.0硬件说明
  6. 光通信器件与系统(西交大朱京平笔记) -5-6 EDFA的工作原理
  7. 虚拟仪器课程设计-音乐喷泉
  8. swiper 点击分页器之后不能继续轮播
  9. RTX3090 与GTX1080Ti Tensorflow1.15训练YOLOv3对比
  10. idea 编辑器如何输入自增序号