逻辑回归

机器学习(七)逻辑回归之代价函数

筅森魡賤 提交于 2019-12-24 18:47:39
机器学习(七)逻辑回归之代价函数 前言: 由机器学习(六)我们得到了二分类问题的假设函数 hθ(x),那么下一步我们需要确定代价函数 J(θ),然后通过梯度下降法确定拟合参数θ。 一、代价函数 1、假设函数: 2、对于线性回归的代价函数 3、但是因为 hθ(x)是S型的非线性函数,因此我们得到的J(θ)图形,可能是如下图所示的非凸函数 4、那么对于这样的代价函数J(θ),我们就很难用梯度下降法得到全局收敛的最小值,我们需要代价函数是凸函数,类似下图所示,这样我们就一定可以通过梯度下降法得到代价函数的全局收敛的最小值。 5、为了解决上面提到的J(θ)是非凸函数的问题,我们寻找其它的数学等价代换,来使得逻辑回归的代价函数为凸函数, 首先,对于代价函数做如下代换: 6、我们观察如下y = -ln(x)和y = -ln(1-x)两个函数的图像 该图像最明显的特性是当x=1时,则y=0;当x=0时,则y趋向于无穷。 该图像最明显的特性是当x=0时,则y=0;当x=1时,y趋向于无穷。 7、对于cost函数 ,自变量hθ(x (i) )∈(0,1),因变量y (i) ∈ (0 | 1),因此,假设 令y=1,则cost(hθ(x (i) ),y (i) ) = -ln(hθ(x (i) )) 令y=0,则cost(hθ(x (i) ),y (i) ) = -ln(1-hθ(x (i) ))

机器学习笔记 逻辑回归

瘦欲@ 提交于 2019-12-24 18:04:29
逻辑回归 逻辑回归和线性回归其实有不少类似的地方,不同的是逻辑回归的$\hat y$是离散的.线性回归的$\hat y$是连续的. 逻辑回归:拟合样本数据发生的概率,根据概率进行分类处理. 逻辑回归,拟合样本发生的概率. $\hat p = f(x)$,之后根据概率的大小对样本做分类. 通常,将逻辑回归用来解决分类问题.作为分类算法时,解决的是二分类问题. 在 线性回归 一文中,我们知道$\hat y = \theta ^T X_b$,但是这个值的取值范围是负无穷到正无穷,如果我们想要表达概率的话,希望找到一个函数,取值范围在0-1. Sigmoid函数 在 一文读懂svm 中,我们也提到过这个函数,是常见核函数的一种.以后在讲神经网络的时候也会再看到它. $\hat p = \sigma(X_b \theta) =\frac 1 {1+e^{-X_b \theta}}$ 这个函数,我想不用多解释了,学过高中数学的应该都能明白其取值在0-1之间. 通过这个函数,我们可以把一个预测值转化为概率值,所以逻辑回归的概率模型可以表达为$$\hat p = \frac 1 {1+e^{-\theta ^T X_b}}$$. 我们做这样一个假设. 这样当有一个样本x过来,我们可以先计算出$\hat p$,再进而得到一个$\hat y$。 那么此时我们的问题转变为:怎样求得这样的$\theta$

机器学习-逻辑回归

别来无恙 提交于 2019-12-23 08:51:08
#原理 逻辑回归是分类问题。 对x的输入特征进行学习,输出y值属于哪一类的分类算法。 比如:在titanic机器学习中,给出乘客的姓名/年龄/性别等一系列的值(X的值),通过对一些列值的学习,得出最终乘客是幸存还是死亡(最终的y值是0还是1,0代表死亡,1代表幸存)。 首先,y=wx+b,这是最基本的线性公式。即x和y呈现线性对应关系。. 但是,在很多实际问题处理时,输入变量x和输出变量y之间,是非线性的关系。这就要在x和y中间引入一个中间变量z。使得z=wx+b,y=g(z)。最终的等于变为y=g(wx+b)。 逻辑回归的目的是,根据给定的x,判断y属于哪一类。即希望输出结果y是0或者是1的离散值。 z=wx+b,该式得到的z是一个连续的值。通过函数y=g(z)的映射,将该值映射到y上的离散值。在熟悉函数中,有这么一个sigmoid函数可以做到。 该公式的图像如图所示: 可以看出,该函数z<0的区间,y<0.5;在z>0的区间,y>0.5。 在这里,z即使x通过特征值的计算,得出的生存几率。我们给定一个评价标准,如:当z>0.5,即乘客的生存几率大于0.5时,认为乘客是可以活着的。通过这种方式,可以得到y和z的对应关系。 问题: 现在的问题是,在z=wx+b中如何得到w和b的值,使得训练数据尽可能的准确。 在预测P(y=1|x),即给定x的情况下,y=1的概率时。可以用 P(y

【分类算法】逻辑回归

只谈情不闲聊 提交于 2019-12-23 03:54:44
目录 什么是逻辑回归 逻辑回归模型推导 为何不能用线性模型 线性模型转二分类模型(Sigmoid) 代价函数 使用最小二乘法估计 最大似然法 代码样例 总结 什么是逻辑回归 之前我们讲过 线性回归 的原理以及推导过程。今天,我们回家另外一个算法,叫逻辑回归。简单归类一下,这个算法不是归类预测算法,大家千万不要被名字不会了。它其实属于分类算法。说到 分类算法 ,大家有没有联想到?没错,逻辑回归属于监督学习。所以它需要带标签的数据。 这里简单的列举一下逻辑回归的使用场景: 垃圾邮件分类 网络诈骗分类 恶行肿瘤鉴定 逻辑回归模型推导 为何不能用线性模型 下面以恶行肿瘤来举例子。假如我们有个数据集,他们他描述的是肿瘤大小,以及是否为和兴肿瘤。大致如下: 肿瘤大小 是否恶性 1 否 5 否 10 是 10.5 否 15 是 假设x是肿瘤的大小,y代表否恶性。最终我们可以得到下图左边的8个红色交叉点。假如我们线性回归预测这8个点时,我们可以得到蓝色的一条线。若我们假设蓝色线上面的是恶行肿瘤,下面的是良性肿瘤。这里看上去预测的结果好像还可以。 但假如这时候出现一个右边蓝色肩头上点,我们重新用线性模型预测出回归线,然后得到粉色的线。这时候问题就出现了,新增的点的x其实非常的大,但是却被模型判定成良性肿瘤。这样是不是就不对了。所以,我们需要修改我们的模型。我们要把我们的线性模型改成二分类模型

案例:逻辑回归Logistic Regression做乳腺癌预测

谁都会走 提交于 2019-12-23 00:30:15
使用逻辑回归算法解决乳腺癌检测问题,使用sk-learn自带的乳腺癌数据集 1 导入数据 from sklearn . datasets import load_breast_cancer cancer = load_breast_cancer ( ) X = cancer . data y = cancer . target print ( 'data shape:{0};positive:{1},negative:{2}' . format ( X . shape , y [ y == 1 ] . shape , y [ y == 0 ] . shape ) ) print ( '腺癌数据的前两行为:' ) print ( cancer . data [ 0 : 2 ] ) data shape:(569, 30);positive:(357,),negative:(212,) 腺癌数据的前两行为: [[ 1.79900000e+01 1.03800000e+01 1.22800000e+02 1.00100000e+03 1.18400000e-01 2.77600000e-01 3.00100000e-01 1.47100000e-01 2.41900000e-01 7.87100000e-02 1.09500000e+00 9.05300000e-01 8

线性回归,感知机,逻辑回归(GD,SGD)

你。 提交于 2019-12-20 00:53:30
线性回归 线性回归是一个 回归问题 ,即用一条线去拟合训练数据 线性回归的模型: 通过训练数据学习一个 特征的线性组合 ,以此作为预测函数。 训练目标:根据训练数据学习参数(w 1 ,w 2 , ... , w n ,b) 学习策略: 要确定参数(w 1 ,w 2 , ... , w n ,b),即关键在于如何衡量 预测函数f(x)与训练数据y之间的差别。 如果要使得预测函数 f(x)尽可能准确,那么即要求f(x)-y尽可能小,而 f(x)-y便是一个样本(x,y)的损失函数。 对于整个训练数据的损失函数,用 均方误差损失函数 (1/2是为了求导方便) 即当均方误差损失函数J最小时的参数(w 1 ,w 2 , ... , w n ,b),便是最终线性模型中的参数。 所以目标就是求: 求解这个损失函数的方法主要有两个: 最小二乘法,梯度下降法 使用 梯度下降法 求解 (梯度下降,批量梯度下降,随机梯度下降) 我们知道 曲面上沿着梯度的方向是函数值变化(增大)最快的方向,因此要得到J(w)最小值,应该沿着梯度的反方向 。 使用沿着梯度的反方向进行权重的更新,可以有效的找到全局的最优解。 更新过程如下: 说明: 1. 上述是对参数向量W的分量w j 进行更新的表达式。由更新表达式可知,每次更新使用所有的训练数据(m个样本)。 2. 在对参数w j 更新时,使用到了样本x i (样本x i

机器学习笔记 DAY1-逻辑回归

半腔热情 提交于 2019-12-18 02:05:55
机器学习定义: 假设用P(Performace)来评估计算机程序在某类任务T(Task)上的性能,若一个程序通过利用经验E(Experience)在T中任务上获得了性能改善,则我们就说关于T和P,该程序对E进行了学习。 机器学习笔记 DAY1-逻辑回归 https://blog.csdn.net/malele4th/article/details/89891430 以下是对DAY1的链接中部分名词解释 什么是分类算法、回归算法 https://blog.csdn.net/kwame211/article/details/81706552 1.分类问题的应用场景 分类问题是用于将事物打上一个标签,通常结果为离散值。例如判断一幅图片上的动物是一只猫还是一只狗,分类通常是建立在回归之上,分类的最后一层通常要使用softmax函数进行判断其所属类别。分类并没有逼近的概念,最终正确结果只有一个,错误的就是错误的,不会有相近的概念。最常见的分类方法是逻辑回归,或者叫逻辑分类 2.回归问题的应用场景 回归问题通常是用来预测一个值,如预测房价、未来的天气情况等等,例如一个产品的实际价格为500元,通过回归分析预测值为499元,我们认为这是一个比较好的回归分析。一个比较常见的回归算法是线性回归算法(LR)。另外,回归分析用在神经网络上,其最上层是不需要加上softmax函数的

模型实例_逻辑回归

时光怂恿深爱的人放手 提交于 2019-12-17 10:30:07
模型实例_逻辑回归 关于泰坦尼克号乘客的⽣还率 利用Python进行数据分析(第二版).pdf Introduction to scikit - learn¶ # 举个例⼦,我⽤⼀个Kaggle竞赛的经典数据集,关于泰坦尼克号 # 乘客的⽣还率。我们⽤pandas加载测试和训练数据集: # 13.4 scikit-learn介绍 # scikit-learn是⼀个⼴泛使⽤、⽤途多样的Python机器学习库。它 # 包含多种标准监督和⾮监督机器学习⽅法和模型选择和评估、数 # 据转换、数据加载和模型持久化⼯具。这些模型可以⽤于分类、 # 聚合、预测和其它任务。 ​ # 举个例⼦,我⽤⼀个Kaggle竞赛的经典数据集,关于泰坦尼克号 # 乘客的⽣还率。我们⽤pandas加载测试和训练数据集: train = pd . read_csv ( 'C:/data/titanic/train.csv' ) test = pd . read_csv ( 'C:/data/titanic/test.csv' ) train [ : 4 ] PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked 0 1 0 3 Braund , Mr . Owen Harris male 22.0 1 0 A /

逻辑回归与线性回归的区别

白昼怎懂夜的黑 提交于 2019-12-16 00:19:17
logistic回归与线性回归实际上有很多相同之处,最大的区别就在于他们的因变量不同,其他的基本都差不多,正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalized linear model)。这一家族中的模型形式基本上都差不多,不同的就是因变量不同,如果是连续的,就是多重线性回归,如果是二项分布,就是logistic回归。logistic回归的因变量可以是二分类的,也可以是多分类的,但是二分类的更为常用,也更加容易解释。所以实际中最为常用的就是二分类的logistic回归。 与线性回归不同,逻辑回归主要用于解决分类问题,那么线性回归能不能做同样的事情呢?下面举一个例子。比如恶性肿瘤和良性肿瘤的判定。假设我们通过拟合数据得到线性回归方程和一个阈值,用阈值判定是良性还是恶性: 如图,size小于某值就是良性,否则恶性。但是“噪声”对线性方程的影响特别大,会大大降低分类准确性。例如再加三个样本就可以使方程变成这样:      那么,逻辑斯特回归是怎么做的呢?如果不能找到一个绝对的数值判定肿瘤的性质,就用概率的方法,预测出一个概率,比如>0.5判定为恶性的。 2.2 Sigmoid函数   逻辑回归首先把样本映射到[0,1]之间的数值,这就归功于sigmoid函数,可以把任何连续的值映射到[0,1]之间,数越大越趋向于0,越小越趋近于1。   函数的图像如下图,x

泰坦尼克号的逻辑回归模型

我是研究僧i 提交于 2019-12-15 17:11:09
逻辑回归算是机器学习中最基础的模型了,回归模型在做分类问题中有着较好的效果。下面介绍下利用sklearn做逻辑回归模型 做模型一般分为:提取数据---->了解数据(所谓的探索性数据)---->数据预处理(包括但不限于填充缺失值,特征提取,转换哑变量)---->选择模型---->验证模型---->模型优化 下面先简单介绍下逻辑回归的原理: 说到逻辑回归就不得不提一下线性回归,线性回归用wiki百科的定义来解释就是:在统计学中,线性回归是一种用来建立响应标量(因变量)和一个或多个解释变量(自变量)之间的模型关系的线性方法。线性回归分为一元线性回归和多元线性回归。均方误差是回归模型中常用的度量方法。一般用最小二乘法来最小化均方误差。 线性回归用的最多的是做预测,而逻辑回归最适合的有二分预测,比如是否垃圾邮件,广告是否点击等等;今天的模型用kaggle比赛中的泰坦尼克预测数据集来做逻辑回归模型,故此次我们做的是监督学习。 1.在数据集从kaggle中下载后我们先读取数据和数据预览: 通过DataFrame的函数info(),我们可以详细看到数据的分布等情况 import pandas as pd train=pd.read_csv('D:\\pycm\\kaggle\\titanic\\train.csv',index_col=0) #read train data test=pd