逻辑回归

tensorFlow(三)逻辑回归

♀尐吖头ヾ 提交于 2020-04-07 19:31:33
tensorFlow 基础见前博客 逻辑回归广泛应用在各类分类,回归任务中。本实验介绍逻辑回归在 TensorFlow 上的实现 理论知识回顾 逻辑回归的主要公式罗列如下: 激活函数(activation function): 损失函数(cost function): 其中 损失函数求偏导(derivative cost function): 训练模型 数据准备 首先我们需要先下载MNIST的数据集。使用以下的命令进行下载: wget https://devlab-1251520893.cos.ap-guangzhou.myqcloud.com/t10k-images-idx3-ubyte.gz wget https://devlab-1251520893.cos.ap-guangzhou.myqcloud.com/t10k-labels-idx1-ubyte.gz wget https://devlab-1251520893.cos.ap-guangzhou.myqcloud.com/train-images-idx3-ubyte.gz wget https://devlab-1251520893.cos.ap-guangzhou.myqcloud.com/train-labels-idx1-ubyte.gz 创建代码 #-*- coding:utf-8 -*- import

线性回归与逻辑回归的正则化

匆匆过客 提交于 2020-04-06 08:24:31
线性回归与逻辑回归的正则化 一、为什么要正则化? 说起正则化要从过拟合问题说起。 当我们拥有相当多的特征时,机器学习出来的假设可能在训练集上符合的很好,但是却未能在新的测试集上取得好的效果,这就是我们通常意义上所说的过拟合现象。 通常意义上可以采用舍弃一部分特征的方法来避免过拟合,但是相对的会舍弃一些特征信息。当我们需要保留所有特征变量时,我们就会使用正则化的方法。在正则化过程中,我们将保留所有的特征变量,但是我们会减少参数的量级或者参数的大小。另一方面,通过正则化也可以有效地帮助我们简化模型。 二、代价函数 例如我们有100个特征,事实上我们很难预先知道哪些特征变量有较低的相关性,即缩小哪些参数。因此,以线性回归为例,我们在线性回归的代价函数后加上一个额外的正则化项来缩小每个系数的值,如下所示: \[J(\theta)=\frac{1}{2m}[\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{i=1}^n\theta^2_j] \] λ不宜特别大。 三、线性规划的正则化 1.梯度下降法 在没有用正则化时,梯度下降法被用来去最小化代价函数,如下所示 \[\theta_j=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j(j

4.机器学习之逻辑回归算法

时光总嘲笑我的痴心妄想 提交于 2020-03-21 18:05:57
理论上讲线性回归模型既可以用于回归,也可以用于分类。解决回归问题,可以用于连续目标值的预测。但是针对分类问题,该方法则有点不适应,因为线性回归的输出值是不确定范围的,无法很好的一一对应到我们的若干分类中。即便是一个二分类,线性回归+阈值的方式,已经很难完成一个鲁棒性很好的分类器了。为了更好的实现分类,逻辑回归诞生了。逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某件事情发生的可能性。 逻辑回归是假设数据服从Bernoulli分布的,因此LR也属于参数模型,他的目的也是寻找到最优参数。 logistic回归是一种广义线性回归(generalized linear model)。 【补充】在统计学中,参数模型通常假设总体(随机变量)服从某一个分布,该分布由一些参数确定(比如正太分布由均值和方差确定),在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设,只是知道总体是一个随机变量,其分布是存在的(分布中也可能存在参数),但是无法知道其分布的形式,更不知道分布的相关参数,只有在给定一些样本的条件下,能够依据非参数统计的方法进行推断。 首先回顾一下简单线性回归(只考虑一个输入变量,一个输出变量的线性回归)。 表示输入变量(自变量),第一部分例子中的X。 表示输出变量(因变量),第一部分例子中的Y。一对 表示一组训练样本。m个训练样本

逻辑回归 C++

我的梦境 提交于 2020-03-14 15:36:04
#include <iostream> #include <string> #include <fstream> #include <sstream> #include <vector> #include <cmath> template <typename DataType> double sigmoid(DataType z) { return 1.0/(1+exp((-1)*z)); } template <typename DataType, typename WeightType> double getMatResult(typename::std::vector<DataType> &data, typename::std::vector<WeightType> &weights) { double result=0.0; for(size_t i=0;i<data.size();++i) { result+=data.at(i)*weights.at(i); } return result; } template <typename DataType> void DisplayData(typename::std::vector<std::vector<DataType> > &vv) { std::cout<<"the number of data: "<<vv

逻辑回归(logistic regression)

孤街浪徒 提交于 2020-03-11 05:42:39
logistic regression能够解决分类问题,即输出的结果仅仅有0和1两种,比方,对于邮件的推断仅仅有是或者否。这样的分类问题使用传统的线性回归并不能非常好的解决。 一个小样例 比如,当我们依据肿瘤的大小推断一个肿瘤是不是良性的时候,输出结果仅仅有是或者否,用1和0表示,给定的样本点,而且我们使用传统的线性回归问题解决拟合的函数图像例如以下: 图像中我们能够依据拟合曲线,当输出值大于0.5(依据图像推断的值)的时候,确定输出的为恶性(即为1);当输出值小于0.5(依据图像推断的值)的时候,确定输出的为良性(即为0)。可是,当我们有新的样本点增加的时候,例如以下图: 我们会发现,对于新的拟合曲线使用上面的方法和标准(0.5)并不能非常好的做出预測。因此我们须要新的回归形式,即以下要说的logistic回归。 sigmoid function(logistic function) sigmoid函数,又称为逻辑函数。是一个单调上升的函数,函数的形式例如以下: 1/(1 + EXP(-A*(X-C))) 当中A和C为參数,A控制着函数的陡峭程度,C控制着函数的对称点的水平坐标位置,以下用三个函数图像说明: 图像1,A=1,C=0: 图像2,A=10,C=0: 图像3,A=1,C=5: 逻辑回归(logistic regression) 从上面的图像能够看出

第七章 逻辑回归 - 二分类

折月煮酒 提交于 2020-03-10 19:39:20
转专业意向调查 问题描述 0 导入相关库 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn import metrics # 评估 import statsmodels.api as sm 1 加载数据 df = pd.read_csv('Regression/Regression7/sampling_survey.csv') df.info() features = ['x1', 'x2'] labels = ['y'] X = sm.add_constant(df[features]) y = df[labels] 2 模型拟合 model = sm.Logit(y, X) result = model.fit() print(result.summary()) 2.1 拟合结果 # 计算概率 y_prob = result.predict(X) y_prob = pd.DataFrame(y_prob, columns=['y_prob']) y_prob y_prob.join(df['y']) 2.2 判别(阈值p=0.6) # 预测因变量归类 alpha=0.6 #设定阈值 y_pred = y_prob.apply(lambda x: 1 if x[0

04 基于神经网络的逻辑回归实现 - 神经网络和深度学习 [Deep Learning Specialization系列]

巧了我就是萌 提交于 2020-03-07 03:11:54
本文是 Deep Learning Specialization 系列课程的第1课《 Neural Networks and Deep Learning 》中Logistic Regression with a Neural Network mindset练习部分的笔记。 在《 02 神经网络 - 神经网络和深度学习 [Deep Learning Specialization系列] 》中,我们了解了神经网络的大部分理论知识。通过该编程实例,我们能构建一个简答的逻辑回归的分类器来识别猫,以复习神经网路的知识并了解具体的编程实现。 概述 本试验使用的是 h5 格式的数据集,该数据集包含有标注结果的训练数据和测试数据,通过以下7个步骤来完成神经网络的训练和预测: 数据加载 数据处理 参数初始化 逻辑回归函数的实现(正向传播) 损失/代价函数的实现(正向传播) 梯度递减算法的实现(反向传播) 预测 1. 数据加载 h5 格式的数据的读取是通过 h5py 库来实现的,简单的介绍可以参考我的上一篇文章《 h5py - HDF5 for Python的简单入门 》。 首先构建一个 load_dataset() 函数来完成数据的加载,该函数通过 h5py.File() 函数来读取 h5 格式的数据文件,将训练数据和测试数据做一个简单处理后,输出 train_set_x_orig , train

逻辑斯谛回归模型

泄露秘密 提交于 2020-03-01 11:59:22
目录 一、逻辑斯谛分布 二、二项逻辑斯谛回归模型 三、损失函数 一、逻辑斯谛分布 logistic分布函数形式: 在该方程式中,x是随机变量,μ是平均值,s是与标准偏差成比例的比例参数。这个方程我们只需要了解,在逻辑回归模型中真正用到的是sigmoid函数: 当上式中的 μ = 0,s = 1 时,即为sigmoid函数: S ( z ) = 1 1 + e ( − z ) S(z) = \frac{1}{1+e^{(-z)}} S ( z ) = 1 + e ( − z ) 1 ​ 二、二项逻辑斯谛回归模型 逻辑回归(Logistic Regression)是一种用于解决二分类(0 or 1)问题的机器学习方法,用于估计某事件发生的可能性。可以看到,虽然带有回归二字,但是 逻辑回归模型是一种分类模型。 逻辑回归与线性回归有密不可分的关系: 1.逻辑回归与线性回归都是一种广义线性模型。 2.逻辑回归假设因变量 y 服从伯努利分布(二项分布),而线性回归假设因变量 y 服从高斯分布(正态)。 3. 如果去除Sigmoid映射函数的话,逻辑回归算法就是一个线性回归。 可以说,逻辑回归是以线性回归为理论支持的,但是逻辑回归通过Sigmoid函数引入了非线性因素,因此可以轻松处理0/1分类问题。 上面介绍了sigmod函数: S ( z ) = 1 1 + e ( − z ) S(z) =

逻辑回归输出的值是真实的概率吗?

我的梦境 提交于 2020-02-28 07:30:28
本文只在 博客 基础上,在 三、指数分布族 中有所改动。 逻辑回归作为被广泛使用的二分类模型,面试中自然是不可缺少的。但要深刻理解逻辑回归又不是那么容易的,比如说,逻辑回归输出的值是0到1之间的值,这个值是真实的概率吗?逻辑回归为什么要选择sigmoid函数的形式,而不是其他将数值映射到0到1之间的形式?本文试图给出一个尽可能简单明了的分析。 一、从一个例子开始 假设你在一家金融公司工作,老板交给你一个任务,建一个模型,用来预测一个借款人是否会违约,公司拥有一个借款人的特征数据,比如年龄。 将是否违约作为标签变量y,0表示没有违约,1表示违约。在给定特征x的情况下, 我们假设 y 是一个服从伯努利分布的二值随机变量。注意,这是我们做的第一个假设哦!从某种意义上讲,模型准不准,首先要看假设合不合理。 我们的任务用数学语言描述就是,寻找一个模型,输入x后,可以告诉我们y所服从的随机分布的参数,知道参数后,就可以计算y的期望作为预测。 具体到违约预测,上面所说的随机分布就是指伯努利分布,该分布的参数就是Φ=P(y=1),同时也是该分布的期望。 请认真体会一下我们的思路: 1、对每一个确定的x,y仍然是一个随机变量 2、该随机变量服从某个随机分布 3、努力求出这个随机分布的参数 4、求出该随机分布的期望 5、将期望作为预测值 二、从更高的层次看待伯努利分布 那么

02-12 Logistic(逻辑)回归

*爱你&永不变心* 提交于 2020-02-26 23:29:50
文章目录 逻辑回归 逻辑回归学习目标 逻辑回归引入 逻辑回归详解 线性回归与逻辑回归 二元逻辑回归的假设函数 让步比 Sigmoid函数图像 二元逻辑回归的目标函数 不同样本分类的代价 二元逻辑回归目标函数最大化 梯度上升法 线性回归和逻辑回归的参数更新 拟牛顿法 二元逻辑回归模型 二元逻辑回归的正则化 L1正则化 L2正则化 多元逻辑回归 OvR MvM 逻辑回归流程 输入 输出 流程 逻辑回归优缺点 优点 缺点 小结 逻辑回归   虽然逻辑回归的名字里有“回归”两个字,但是它并不是一个回归算法,事实上它是一个分类算法。 逻辑回归学习目标 二元逻辑回归的目标函数 最小化二元逻辑回归目标函数 二元逻辑回归的正则化 多元逻辑回归 逻辑回归的流程 逻辑回归的优缺点 逻辑回归引入 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1O9UxwXA-1582719512430)(…/新配图/恶搞图/06-09-操场2.jpg)]   曾经在感知机引入时我们讲过,操场上男生和女生由于受传统思想的影响,男生和女生分开站着,并且因为男生和女生散乱在操场上呈线性可分的状态,因此我们总可以通过感知机算法找到一条直线把男生和女生分开,并且最终可以得到感知机模型为 f ( x ) = s i g n ( ( w ∗ ) T x ) f(x)=sign((w^*)^Tx) f