逻辑回归分类算法

逻辑回归由于其简单、高效、可解释性强的特点,在实际用途中十分的广泛:从购物预测到用户营销响应,从流失分析到信用评价,都能看到其活跃的身影。可以说逻辑回归占据了分类算法中非常重要的地位。

逻辑回归:logistic regression,LR。模型公式是Logistic函数,也叫Sigmoid函数。图像形如S型曲线。它可以将实数映射到[0,1]区间用来做二分类。一般选择0.5作为阀值,大于阀值的归为类1,小于阀值的归为类0。公式(Y为决策值,x为特征值,e为自然对数):

如果希望对正例样本有更高的准确率,则可以把阈值适当地调高,例如调高到0.6。

如果希望对正例样本有更高的召回率,则可以把阈值适当地降低,例如降低到0.4。

用python拟合了不同的自变量取值下,与因变量的成像。结果都是S型曲线,取值集中在0和1上。

1.自变量是线性连续值:

x = np.arange(-20, 20, 0.1)

y =1/( 1+math.e**(-x))

plt.scatter(x, y, c = ‘r‘, marker = ‘o‘)

2.自变量是一元三次方程式的取值:

z = np.arange(-20, 20, 0.1)

x = 2*z**3+4*z**2+3*z+10

y =1/( 1+math.e**(-x))

plt.scatter(x, y, c = ‘r‘, marker = ‘o‘)

损失函数定义与最小化:对数损失函数/梯度下降法求极值

先来回顾下线性回归的损失函数:

如果逻辑回归也用这个,这会引发损失函数为非凸函数的问题,简单来说就是有很多个局部最低点。

而理想的损失函数是一个如下图所示的碗状结构的凸函数,这样求解到局部最低点,就一定是全局最小值。

用极大似然思想推导出其损失函数,参考https://blog.csdn.net/programmer_wei/article/details/52072939。结论:

汇总所有点的损失,即:

如果y = 1, 判断Y(x)=1,则Cost = 0:预测值和真实值相等,损失本该为0;

如果y = 1, 判断Y(x)=0,则Cost ->∞:预测值和真实值相反,损失无穷大。

 

用梯度下降法求损失最小值,即可求得Logistic函数中的参数:各特征的特征向量、唯一截距。

比如下图的:

z=w0+w1x1+w2x2+...+wnxn

表示有n个特征Xi,最后会求出每个特征对应的特征向量Wi,以及截距W0。

疑问:Z为什么是线性函数?为什么不是多项式函数?暂未看到相关资料说明。

简单代码示例

import numpy as np

import math

import matplotlib.pyplot as plt

from sklearn import linear_model

x = [[20,3],[23,7],[31,10],[42,13],[50,7],[60,5]]

y = [0,1,1,1,0,0]

lr = linear_model.LogisticRegression()

lr.fit(x,y)

testX = [[28,10]]

label = lr.predict(testX)

print(label)#预测分类值

prob = lr.predict_proba(testX)

print(prob)#预测分类分别是0和1的概率

print lr.coef_,lr.intercept_,lr.n_iter_ #输出特征向量、截距、迭代次数

#根据上述输出的特征向量和截距,输出Logistic函数图像

x1 = np.arange(20, 60, 1)

x2 = np.arange(30, -10, -1)#也可以写成x2 = np.arange(-10, 30, 1)

#x1和x2不光个数要相同,还要和模拟样本数据吻合,如果x2 = np.arange(20, 60, 1)就看不到S型图像了

x = (-0.19730001)*x1+(0.91555745)*x2-0.04131838

y =1/( 1+math.e**(-x))

plt.scatter(x, y, c = ‘r‘, marker = ‘o‘)

plt.show()

#用预测点计算Logistic函数结果,即预测分类较大的概率值

x1=28

x2=10

x= (-0.19730001)*x1+(0.91555745)*x2-0.04131838

y =1/( 1+math.e**(-x))

print y

输出:

原文地址:https://www.cnblogs.com/myshuzhimei/p/11743599.html

时间: 2024-10-19 14:54:06

逻辑回归分类算法的相关文章

Lineage逻辑回归分类算法

Lineage逻辑回归分类算法 1.概述 Lineage逻辑回归是一种简单而又效果不错的分类算法 什么是回归:比如说我们有两类数据,各有50十个点组成,当我门把这些点画出来,会有一条线区分这两组数据,我们拟合出这个曲线(因为很有可能是非线性),就是回归.我们通过大量的数据找出这条线,并拟合出这条线的表达式,再有新数据,我们就以这条线为区分来实现分类. 下图是一个数据集的两组数据,中间有一条区分两组数据的线. 显然,只有这种线性可分的数据分布才适合用线性逻辑回归  2.算法思想 Lineage回归

用Python开始机器学习(7:逻辑回归分类) --好!!

from : http://blog.csdn.net/lsldd/article/details/41551797 在本系列文章中提到过用Python开始机器学习(3:数据拟合与广义线性回归)中提到过回归算法来进行数值预测.逻辑回归算法本质还是回归,只是其引入了逻辑函数来帮助其分类.实践发现,逻辑回归在文本分类领域表现的也很优秀.现在让我们来一探究竟. 1.逻辑函数 假设数据集有n个独立的特征,x1到xn为样本的n个特征.常规的回归算法的目标是拟合出一个多项式函数,使得预测值与真实值的误差最小

统计学习方法五 逻辑回归分类

逻辑回归分类 1,概念 2,算法流程 3,多分类逻辑回归 4,逻辑回归总结 优点: 1)预测结果是界于0和1之间的概率: 2)可以适用于连续性和类别性自变量: 3)容易使用和解释: 缺点: 1)对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转.?需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性: 2)预测结果呈"S"型,因此从log(odds)向概率转化的过程是非线性的,在

python逻辑回归分类MNIST数据集

一.逻辑回归的介绍 logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域.例如,探讨引发疾病的危险因素,并根据危险因素预测疾病发生的概率等.以胃癌病情分析为例,选择两组人群,一组是胃癌组,一组是非胃癌组,两组人群必定具有不同的体征与生活方式等.因此因变量就为是否胃癌,值为"是"或"否",自变量就可以包括很多了,如年龄.性别.饮食习惯.幽门螺杆菌感染等.自变量既可以是连续的,也可以是分类的.然后通

朴素贝叶斯和逻辑回归分类

朴素贝叶斯 用p1(x, y)表示(x, y)属于类别1的概率,P2(x, y)表示(x, y)属于类别2的概率: 如果p(c1|x, y) > P(c2|x, y), 那么类别为1 如果p(c1|x, y) < P2(c2|x, y), 那么类别为2 根据贝叶斯公式: p(c|x, y) = (p(x, y|c) * p(c)) / p(x, y) (x, y)表示要分类的特征向量, c表示类别 因为p(x, y),对不同类别的数值是一样的,只需计算p(x, y|c) 和 p(c) p(c)

使用逻辑回归分类手写数字MNIST

英文原文请参考http://www.deeplearning.net/tutorial/logreg.html 这里,我们将使用Theano实现最基本的分类器:逻辑回归,以及学习数学表达式如何映射成Theano图. 逻辑回归是一个基于概率的线性分类器,W和b为参数.通过投射输入向量到一组超平面,每个对应一个类,输入到一个平面的距离反应它属于对应类的概率. 那么输入向量x为i类的概率,数值表示如下: 预测类别为概率最大的类,及: 用Theano实现的代码如下: # initialize with

10 逻辑回归

10 逻辑回归 分类算法-逻辑回归 应用场景 (二分类) 广告点击率 (典型的二分类问题,点了或者没点,也能得出) 是否为垃圾邮件 是否患病 金融诈骗 虚假账号 逻辑回归定义 逻辑回归: 是一种分类算法,使用线性回归的式子作为输入,通过sigmoid函数转换为概率问题. sigmoid函数:1/(1+e^-x), 将输入值x,映射到(0,1), 与概率值联系起来 逻辑回归公式 线性回归的输入 --> sigmoid 转换 -->分类 [0,1] 概率值, 阈值一般取0.5 逻辑回归的损失函数.

机器学习:逻辑回归

************************************** 注:本系列博客是博主学习Stanford大学 Andrew Ng 教授的<机器学习>课程笔记.博主深感学过课程后,不进行总结很容易遗忘,根据课程加上自己对不明白问题的补充遂有此系列博客.本系列博客包括线性回归.逻辑回归.神经网络.机器学习的应用和系统设计.支持向量机.聚类.将维.异常检测.推荐系统及大规模机器学习等内容. ************************************** 逻辑回归 分类(C

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

一.逻辑回归问题 二分类的问题为是否的问题,由算出的分数值,经过sign函数输出的是(+1,-1),想要输出的结果为一个几率值,则需要改变函数模型 ,其中,, 则逻辑回归的函数为 二.逻辑回归错误评价 线性分类和线性回归的模型为: 其中的线性分数函数均为,逻辑回归有同样的分数函数,模型为 逻辑回归的理想函数为 对于函数f(x),在数据情况下,D的所有数据在函数下的联合概率为 ,我们想要的模型h要使,则对于h来说,在数据D中也符合, 要使需要找到一个g使它发生的可能性最大,即 由 p(x1),p(