逻辑回归

ex2、逻辑回归

拜拜、爱过 提交于 2019-12-01 07:51:16
介绍:   在本练习中,您将实现逻辑回归,并将其应用于两个不同的数据集。在开始编程练习之前,我们强烈要求建议观看视频讲座并完成相关主题的问题。要开始练习,您需要下载起始代码并将其内容解压缩到要完成练习的目录。如果需要,请在开始本练习之前使用octave/matlab中的cd命令更改到此目录。您也可以在课程网站的“环境设置说明”中找到安装Octave/Matlab的说明。 本练习中包含的文件 ex2.m-octave/matlab脚本,指导您完成练习 ex2 reg.m-octave/matlab脚本,用于练习的后面部分 ex2data1.txt-练习前半部分的训练集 ex2data2.txt-练习后半部分的训练集 submit.m-将解决方案发送到我们服务器的提交脚本 map.Feature.m-多项式生成函数 plotDecisionBoundary.m -绘制分类器决策边界的函数 [*] plotData.m - Function to plot 2D classification data(用于绘制二维分类数据的函数) [*] sigmoid.m - Sigmoid Function(逻辑函数S型函数) [*] costFunction.m - Logistic Regression Cost Function(逻辑回归代价函数) [*] predict.m -

机器学习(6)——逻辑回归

穿精又带淫゛_ 提交于 2019-12-01 06:57:00
什么是逻辑回归 逻辑回归虽然名字有回归,但解决的是分类问题。 逻辑回归既可以看做回归算法,也可以看做是分类算法,通常作为分类算法用,只可以解决二分类问题。 Sigmoid函数: import numpy as np import matplotlib.pyplot as plt def sigmoid(t): return 1 / (1+np.exp(-t)) x=np.linspace(-10,10,500) y=sigmoid(x) plt.plot(x,y) plt.show() 逻辑回归的损失函数 推导过程这里就不赘述了,高等数学基本知识。 向量化: 逻辑回归的向量化梯度: LogisticRegression.py: import numpy as np from .metrics import accuracy_score class LogisticRegression: def __init__(self): """初始化Logistic Regression模型""" self.coef_ = None self.intercept_ = None self._theta = None def _sigmoid(self, t): return 1. / (1. + np.exp(-t)) def fit(self, X_train, y_train, eta=0

机器学习笔记(三)逻辑回归

大兔子大兔子 提交于 2019-12-01 06:08:58
Classification(分类) 1、问题背景: 特殊的样本点会使得分界点发生漂移,影响准确性。 Hypothesis representation(假设函数表达式) 1、Logistic regression Model(逻辑回归模型): (1)Sigmoid function / Logistic function S型函数/逻辑函数: (2)g(z)图像: (3)h θ (x) 表示在给定参数θ对于某个特征值x的情况下,y=1的概率: Decision boundary(决策边界) 1、什么是决策边界? If h θ (x) = g(θ T x) ≥ 0.5,则 y = 1 (即 θ T x ≥ 0时); If h θ (x) = g(θ T x)< 0.5,则 y = 0(即 θ T x< 0时). 举例:对于 ,θ=[-3,1,1] T ,则 y=1,if -3+x 1 +x 2 ≥ 0,即分界线为 x 1 +x 2 = 3,如下图所示。 该边界线称为“决策边界”,边界上方部分y=1,下方部分y=0. 2、Non-linear decision boundaries(非线性决策边界): 例如: 对于θ = [-1,0,0,1,1] T 时,决策边界为x 1 ² + x 2 ² = 1,如下图所示。 Cost function(代价函数) 1、数据量化: 训练集:

吴恩达机器学习-逻辑回归

牧云@^-^@ 提交于 2019-11-30 22:52:25
1. 确定模型函数 首先明确逻辑回归的问题归属,逻辑回归属于分类问题,逻辑回归的分布属于多项式分布(包括二项分布,也叫伯努利分布)。这个笔记我们讨论二项分布的分类问题,通俗地讲二项分布是指我们要研究的问题只有两个结果,通常这两个结果为:是和否。我们一般喜欢用0和1分别代表否和是,那么什么样的函数能描述这样一种模型呢?这种函数模型叫sigmoid函数。 函数如下图所示: 函数的公式为 2. 确定代价函数 首先,我们假设分类结果为1的概率为 那么结果为0的概率为 将上述两个概率写为一个公式 假设输入特征值是独立随机分布的,那么我们可以通过计算极大似然值来确定当输入取x时,y的最可能取值 为了简化计算我们同时对两个式子取对数 以上是我们推导出代价函数的过程 3. 确定优化算法 我们在第二步计算出了代价函数,我们希望代价函数越大越好,借鉴梯度下降算法,我们可以给出参数的就计算公式: 下面给出代价函数的偏导数的证明过程 将偏导数带入到第一个公式,得出我们的梯度上升公式 在这里提出一个小问题,线性回归使用的梯度下降算法跟逻辑回归使用的梯度上升算法是同一个吗? 除了使用梯度上升算法来求解参数外,我们还可以适用牛顿算法来求解参数,牛顿法的核心是要求出一个Heassian矩阵,矩阵中每个元素的值为 可以从上面公式得出Heassian矩阵为代价函数矩阵的二阶导数 4. python代码实现

编程作业ex2:Logistic 回归

不羁的心 提交于 2019-11-30 15:52:29
1、logistic回归 1.1 可视化数据 打开ex2data1.txt观察数据 第一列和第二列为两次考试的成绩,第三列代表该生是否能被录取,1代表录取,0代表不录取 读取数据: data = load('ex2data1.txt'); X = data(:, [1, 2]); y = data(:, 3); % 将数据集前两列赋给X,将数据集最后一列赋给y 将样本数据绘制在图上,坐标轴是两次考试的成绩,两种标记代表了他们能否被录取。 function plotData(X,y) figure; hold on; % 用find函数寻找1和0的项,返回的位置分别存在pos和neg中 pos = find(y == 1); neg = find(y == 0); % 画图 plot(X(pos, 1), X(pos, 2), 'k+','LineWidth', 2, 'MarkerSize', 7);% X(pos,1),X(pos,2)为能够被录取样本的两次考试成绩,k+表示线型为加号型,黑色,线宽为2,标记大小为7 plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'y','MarkerSize', 7);% X(neg,1),X(neg,2)为不能被录取样本的两次考试成绩值,ko表示线型为圆圈,黑色,填充色为黄色

ML:逻辑回归的梯度下降算法

末鹿安然 提交于 2019-11-30 09:42:13
ML:极大似然估计 概率密度(质量)函数:用来描述随机变量取某个值的时候,取值点对应的概率的函数。 概率:已知概率分布,推断样本的概率值 似然:已经有观测样本,寻找最符合当前数据分布的参数 似然函数: L ( μ , σ ∣ X ) = ∏ i = 1 N P ( x i ∣ μ , σ ) \mathcal{L}(\mu, \sigma | X)=\prod_{i=1}^{N} P\left(x_{i} | \mu, \sigma\right) L ( μ , σ ∣ X ) = ∏ i = 1 N ​ P ( x i ​ ∣ μ , σ ) 对数似然函数: L ( μ , σ ∣ X ) = ∑ i = 1 N log ⁡ P ( x i ∣ μ , σ ) \mathcal{L}(\mu, \sigma | X)=\sum_{i=1}^{N} \log P\left(x_{i} | \mu, \sigma\right) L ( μ , σ ∣ X ) = ∑ i = 1 N ​ lo g P ( x i ​ ∣ μ , σ ) 损失函数: J ( θ ) = − ∑ i m Y log ⁡ ( Y ^ ) − ( 1 − Y ) log ⁡ ( 1 − Y ^ ) J(\theta)=-\sum_{i}^{m} Y \log (\hat{Y})-(1-Y) \log (1-

名叫“重归”的分类器器

情到浓时终转凉″ 提交于 2019-11-30 05:53:08
名叫“重归”的分类器器 以前人们触碰了不不少带“重归”两字的优化算法,重归树,随机森林的重归,线性回归,无一例外。她们全是差别于分类算法们,用于解决理和预测分析连续型标识的优化算法。殊不知逻辑回归,是这种名叫“重归”的线形分类器器,其实质是由线性回归转变而成的,这种普遍应用于归类难题中的理论重归优化算法。要理理解逻辑回归究竟是从哪里而来的呢?,得要先从线性回归刚开始。线性回归是设备器学习培训中非常简单的的重归优化算法,对随意样版,它创作1个基本上每个人了解的式子: w 被通称为实体模型的主要参数,在其中 w0被称作截距(intercept), w1~ wn被称作指数(coefficient),这一表述 式,我觉得就和人们中小学时就极其了解的 y=ax+b是一样的特性。人们能够应用向量来表达这一式子, 在其中x和w 能够被看作是1个列向量,则有: 线性回归的每日任务,就是说结构1个预测分析涵数 来投射输⼊入的特点向量x和标识值y的线性相关,而结构预测分析涵数的关键就是说找到实体模型的主要参数:wT 和 w0,知名的最小二乘法就是说用于求出线性回归中主要参数的数学方法。 根据涵数 ,线性回归应用键入的特点向量X来輸出1组连续型的标识值y_pred,以进行各种各样预测分析连续型自变量量的每日任务(例如预测分析商品销售量量,预测分析股票价格这些)。那假如人们的标识是离开型自变量量

机器学习(四)——逻辑回归

久未见 提交于 2019-11-30 05:20:09
机器学习(四)——逻辑回归 文章目录 机器学习(四)——逻辑回归 关于分类问题 逻辑回归 隐含变量模型——probit回归 逻辑分布与sigmoid函数 逻辑回归 多分类问题 one-vs-all one-vs-one 多元逻辑回归 正则化 小结 关于分类问题 在前面的博文中,我介绍了线性回归、岭回归、Lasso回归三种回归模型,以及求解机器学习优化问题最重要、应用最广泛的优化算法——梯度下降法。接下来我们把目光投向另一类问题,也是更加广泛的问题—— 分类问题 。 在实际机器学习的应用领域中,我们更多地碰到的是这样的问题,我们通常需要预测的变量并不是连续的,而是离散的,举几个例子: 确定一封邮件是否为垃圾邮件;(这一类只有两个可能结果的问题被称为 二分类问题 ) 根据医学检测影像判断肿瘤是良性或者恶性; 预测一个产品属于优良中差中的哪一等;(这一类有多个可能结果的问题被称作 多分类问题 ) 对于这一类问题,回归模型往往起不到作用,这时我们就需要另一种模型—— 分类模型 。 逻辑回归 (Logistic Regression)就是一个非常经典的分类模型, 逻辑回归 我们以一个二分类的问题为例,讲解二元逻辑回归的基本原理。假设我们要分析一批学生在概率论与数理统计考试中能否及格。我们目前已经采集到了过去几届的人是否通过的数据,以及他们在大一时的各科成绩。我们希望能通过这些数据建立模型

从零开始构建逻辑回归模型

自闭症网瘾萝莉.ら 提交于 2019-11-30 04:32:10
逻辑回归模型是针对线性可分问题的一种易于实现而且性能优异的分类模型。我们将分别使用Numpy和TensorFlow实现逻辑回归模型训练和预测过程。 从零构建 首先,我们通过Numpy构建一个逻辑回归模型。 我们定义shape如下: \(X\) :(n,m) \(Y\) :(1,m) \(w\) :(n,1) \(b\) :(1) 其中 \(n\) 代表特征维数, \(m\) 代表样本个数。 对于逻辑回归二分类模型,其损失函数如下: \[ J(\theta)=-\frac{1}{m}\sum_{i=1}^N{[y_i\log{h_\theta(x_i)}+(1-y_i)\log{(1-h_\theta(x_i))}]} \] 对 \(\theta\) 求导得 \(\theta\) 的更新方式是: \[ \theta_j:= \theta_j-\alpha \frac{1}{m}\sum_{i=1}^m (h_\theta(x_i)-y_i)x_i^j \] 所以,在代码中, \(\theta\) 的更新方式为: dw = np.dot(X,(A-Y).T)/m 各个函数作用如下: sigmoid(x):激活函数实现 initialization(dim):零值初始化w以及b propagate(w,b,X,Y):前向传播得到梯度以及代价函数值 optimize(w,b,X,Y

Python3入门机器学习 经典算法与应用(网盘免费分享)

瘦欲@ 提交于 2019-11-30 03:37:42
Python3入门机器学习 经典算法与应用(网盘免费分享) 部分课程学习资料截图: 免费课程资料领取目录: Python Flask构建微信小程序订餐系统 (网盘免费分享) Python分布式爬虫必学框架Scrapy打造搜索引擎(网盘免费分享) Python3实战Spark大数据分析及调度 (网盘免费分享) Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享) 链接:https://pan.baidu.com/s/1rB7h53iNOweyqWTZXQv4cg 提取码:o9el ps:免费分享,如若链接失效请加群( 注意是免费免费免费分享 ) 私聊管理员即可免费领取;群——517432778,点击加群,或扫描二维码 第1章 欢迎来到 Python3 玩转机器学习 欢迎大家来到《Python3玩转机器学习》的课堂。在这个课程中,我们将从0开始,一点一点进入机器学习的世界。本门课程对机器学习领域的学习,绝不不仅仅只是对算法的学习,还包括诸如算法的评价,方法的选择,模型的优化,参数的调整,数据的整理,等等一系列工作。准备好了吗?现在开始我们的机器学习之旅!... 1-1 什么是机器学习 试看 1-2 课程涵盖的内容和理念 试看 1-3 课程所使用的主要技术栈 试看 第2章 机器学习基础 机器学习到底是什么鬼?这一章将带领大家深入理解机器学习的世界