利用逻辑斯谛回归实现分类
一、逻辑斯谛回归原理
逻辑斯谛回归是经典的分类方法,它属于对数线性模型,原理是根据现有的数据对分类边界线建立回归公式,以此进行分类。(主要思想)
定义:
在线性回归模型的基础上,使用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]])
利用逻辑斯谛回归实现分类相关推荐
- Caffe实践】如何利用Caffe训练ImageNet分类网络
Caffe实践]如何利用Caffe训练ImageNet分类网络 源文章:https://github.com/BVLC/caffe/tree/master/examples/imagenet 由于要使 ...
- ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测daiding
ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...
- ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测
ML之kNNC:基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 目录 基于iris莺尾花数据集(PCA处理+三维散点图可视化)利用kNN算法实现分类预测 设计思路 ...
- EL之GB(GBC):利用GB对多分类问题进行建模(分层抽样+调1参)并评估
EL之GB(GBC):利用GB对多分类问题进行建模(分层抽样+调1参)并评估 目录 输出结果 设计思路 核心代码 输出结果 T1. T2. 设计思路 核心代码 #T1. nEst = 500 dept ...
- EL之GB(GBC):利用GB对二分类问题进行建模并评估
EL之GB(GBC):利用GB对二分类问题进行建模并评估 目录 输出结果 T1.纯GB算法 T2.以RF为基学习器的GB算法 设计思路 核心代码 输出结果 T1.纯GB算法 T2.以RF为基学习器的G ...
- Keras之DNN::基于Keras(sigmoid+binary_crossentropy+predict_classes)利用DNN实现二分类——DIY二分类数据集预测新数据点
Keras之DNN::基于Keras(sigmoid+binary_crossentropy+predict_classes)利用DNN实现二分类--DIY二分类数据集&预测新数据点 目录 输 ...
- php 递归格式化数组,PHP利用递归实现无限分类,格式化数组的简单示例
这篇文章主要为大家详细介绍了PHP利用递归实现无限分类,格式化数组的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!我们要做一个商品的无限分类 ...
- 利用SVM 实现文本分类的实例
原文来自:http://blog.csdn.net/zhzhl202/article/details/8197109 之前做过一些文本挖掘的项目,比如网页分类.微博情感分析.用户评论挖掘,也曾经将li ...
- (NO.1)利用sklearn进行鸢尾花分类
文章目录 利用sklearn进行鸢尾花分类 preheat 联库 版本查询 practice summary 利用sklearn进行鸢尾花分类 preheat 联库 sklearn是基于Numpy和S ...
最新文章
- thrift - C#(CSharp)客户端连接池(ConnectionPool)
- oracle中decode函数用法及应用
- 开源android豆瓣电影阅读器
- 电费结算(electric)
- P4480-[BJWC2018]餐巾计划问题【三分,贪心】
- 信息学奥赛C++语言:斐波那契第n项
- android: 记录及回复lisView的位置
- C++中嵌入python程序——命令行模式
- 使用Fastjson解析List对象时出现:{$ref:$.data[0].task.OBJECTS[0]}的问题原因及解决方法...
- codevs 4189 字典
- intellij HTTP状态 404 - 未找到_IntelliJ静态分析竟有代码检测优化,删除冗余等功能...
- Restlet 指南
- linux系统可安装博途吗,安装博途V14是在什么系统下?
- leapftp怎么下载文件,用leapftp怎么下载文件
- 3d游戏的总体设计框架
- 【教程】安装torch_sparse、torch_cluster、torch_scatter、torch_spline
- win怎么在计算机里按日期搜索文件,win10系统如何按指定修改日期搜索文件
- 如何提升百度竞价推广的转化率?
- Mark(转载)古人读书十二法
- git pull报错:Your configuration specifies to...from the remote, but no such ref was fetched