热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

建立分类感知器二元模型对样本数据进行分类

本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logisticregression的实现示例。

给你一堆样本数据(xi,yi),并标上标签[0,1],让你建立模型(分类感知器二元),对于新给的测试数据进行分类。

 

 

要将两种数据分开,这是一个分类问题,建立数学模型,(x,y,z),z指示[0,1],那么假设模型是线性的,如下图所示。有一道线ax+b=y

 

 

那么左右两边数据实际上并不等量,那么这时最小二乘并不好用,因为它没有考虑到可能性的大小等因素。那么用最小二乘建模的比较粗糙。(并没有用到标签数据……?用到了。)而感知器又比较粗暴简单的分为0、1两种情况。实际上属于0的可能性和属于1的可能性都是有可能的,只是大或小而已。因此用Logistic回归建模的方法是最好的?(也许还有神经网络、遗传算法、灰度模型等模型)

x1(x)

x2(y)

z(z)标签

7

31

0

12

22

0

13

42.5

0

15

34

0

18

9

0

22.5

35

0

23

44.5

0

25

25

0

25

34

0

25

54.5

0

32

19

0

34

45

0

36

37

0

36

36

0

45

51

0

40

42

1

48

9

1

48

24

1

54

16

1

56

6

1

56

38

1

61

30.5

1

64.5

23

1

69

13

1

74

40

1

76

4

1

由标签可知这是监督分类。

设每个样本为0和为1的可能性符合sigmoid分布。

设模型x=w0+w1x1+w2x2

按sigmoid函数的形式求出:

 

由于sigmoid函数的定义域为(-∞,∞),值域为(0,1),因此最基本的LR分类器适合对两类目标进行分类。

所以Logistic回归最关键的问题就是研究如何求得w0,w1,…,wn这组权值。这个问题是用极大似然估计来做到。

怎样分类效果最好呢?

下面正式地来讲Logistic回归模型。

考虑具有2个独立变量的向量x=(x1,x2),设条件概率

P(y=1|x)=p为根据观测量相对于某事件x发生的概率。那么Logistic回归模型可以表示为

 

这里称为Logistic函数。其中

 

那么在x条件下y不发生的概率为

 

所以事件发生与不发生的概率之比为

 

这个比值称为事件的发生比(the odds of experiencing an event),简记为odds。

对odds取对数得到

 

可以看出Logistic回归都是围绕一个Logistic函数来展开的。接下来就讲如何用极大似然估计求分类器的参数。

假设有个观测样本,观测值分别为,设为给定条件下得到的概率,同样地,

的概率为,所以得到一个观测值的概率为

因为各个观测样本之间相互独立,那么它们的联合分布为各边缘分布的乘积。得到似然函数为

 

然后我们的目标是求出使这一似然函数的值最大的参数估计,最大似然估计就是求出参数

,使得

取得最大值,对函数取对数得到

 

继续对这分别求偏导,得到个方程,比如现在对参数求偏导,由于

 

所以得到

这样的方程一共有个,所以现在的问题转化为解这个方程形成的方程组。

上述方程比较复杂,一般方法似乎不能解之,所以我们引用了牛顿-拉菲森迭代方法求解。

利用牛顿迭代求多元函数的最值问题以后再讲。。。

简单牛顿迭代法:http://zh.m.wikipedia.org/wiki/%E7%89%9B%E9%A1%BF%E6%B3%95

 

实际上在上述似然函数求最大值时,可以用梯度上升算法,一直迭代下去。梯度上升算法和牛顿迭代相比,收敛速度

慢,因为梯度上升算法是一阶收敛,而牛顿迭代属于二阶收敛。

http://blog.csdn.net/ariessurfer/article/details/41310525

参考文献:

 

1. 公式法

 

>>X=[7 31;12 22;13 22;15 34;18 9;22.5 35;23 44.5;25 25;25 34;25 54.5;32 19;34 45;36 37;36 36;45 51;40 42;48 9;48 24;54 16;56 6;56 38;61 30.5;64.5 23;69 13;74 40;76 4];

>>Y=[-1;-1;-1;-1;-1;-1;-1;-1;-1;-1;-1;-1;-1;-1;-1;1;1;1;1;1;1;1;1;1;1;1]

>>A=inv(X'*X);

>>theta=A*X'*Y;

2. logistic regression

 

?

 


推荐阅读
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 机器学习核心概念与技术
    本文系统梳理了机器学习的关键知识点,涵盖模型评估、正则化、线性模型、支持向量机、决策树及集成学习等内容,并深入探讨了各算法的原理和应用场景。 ... [详细]
  • 随着技术的发展,黑客开始利用AI技术在暗网中创建用户的‘数字孪生’,这一现象引起了安全专家的高度关注。 ... [详细]
  • 吴恩达推出TensorFlow实践课程,Python基础即可入门,四个月掌握核心技能
    量子位报道,deeplearning.ai最新发布了TensorFlow实践课程,适合希望使用TensorFlow开发AI应用的学习者。该课程涵盖机器学习模型构建、图像识别、自然语言处理及时间序列预测等多个方面。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 在互联网信息爆炸的时代,当用户需求模糊或难以通过精确查询表达时,推荐系统成为解决信息过载的有效手段。美团作为国内领先的O2O平台,通过深入分析用户行为,运用先进的机器学习技术优化推荐算法,提升用户体验。 ... [详细]
  • 2017年人工智能领域的十大里程碑事件回顾
    随着2018年的临近,我们一同回顾过去一年中人工智能领域的重要进展。这一年,无论是政策层面的支持,还是技术上的突破,都显示了人工智能发展的迅猛势头。以下是精选的2017年人工智能领域最具影响力的事件。 ... [详细]
  • 本文档旨在帮助开发者回顾游戏开发中的人工智能技术,涵盖移动算法、群聚行为、路径规划、脚本AI、有限状态机、模糊逻辑、规则式AI、概率论与贝叶斯技术、神经网络及遗传算法等内容。 ... [详细]
  • 本文探讨了亚马逊Go如何通过技术创新推动零售业的发展,以及面临的市场和隐私挑战。同时,介绍了亚马逊最新的‘刷手支付’技术及其潜在影响。 ... [详细]
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 强人工智能时代,区块链的角色与前景
    随着强人工智能的崛起,区块链技术在新的技术生态中扮演着怎样的角色?本文探讨了区块链与强人工智能之间的互补关系及其在未来技术发展中的重要性。 ... [详细]
  • 本文探讨了图像标签的多种分类场景及其在以图搜图技术中的应用,涵盖了从基础理论到实际项目实施的全面解析。 ... [详细]
author-avatar
jimscloudy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有