大多数与“智能”有点关系的问题,都可以归结为一个在多维空间进行模式分类的问题。而人工神经网络所擅长的正是模式分类。
我写这篇文章主要就是受到这句话的启发,我现在才体会到机器学习的两个基本问题“回归(预测)与“分类”这两个基本问题的价值。原来看似很复杂的问题最终都可以化解为这两个基本问题的组合。下面我就从简单的例子开始谈谈我对于“分类”这概念的理解。
1 一个特征的情况
其实我们在日常中就在自觉或者不自觉的使用分类的思考方式,分类的目的是分情况处理的前提。比如说,我们在设置告警阀值的时候,端口使用率超过75%的时候告警提醒,或者我们说某只股票跌过50的时候我们就抛售等等。其实我们就是把一个数量空间分成两部分,以告警为例子,使用率的空间就是[0,100],那么[0,74]不告警,[75,100]的时候告警。于是我们把这个数值空间分成了两个部分,每个部分都是一个集合,属于[0,74]这个空间的数值属于“不告警”的情况,属于[75,100]这个空间的数值属于“告警”的情况,如果把“不告警”这种情况用数字“0”来表示,告警用数字“1”来表示,那么我们建立了空间和单个数字的一个映射关系,我们用字母y来表示可能出现的状态,那么它有两个取值 y∈0,1 ,用字母x来表示[0,100]之间的取值,即 x∈[0,100] ,那么有这种关系
x = 75 叫做决策边界,这个就是把日常中我们对于事物的分类方法用数学的语言描述的结果
从这个简单的例子我们可以看到分类问题首先要有个空间,其次要有一些分界线(决策边界)把空间进行划分,把空间划分出几个结果就有几个分类(或者说几种情况)。
现实中我们经常是知道有几种情况,以及空间的总量,然后找那些分界线(这里就用到机器学习了),把空间划分成不同的区域,这样再来一个新的样本的时候如果它落到哪个空间就属于哪个类别了。
比如说我们划分客户的类型,用资产或者用消费来评估(日常中基本上一个纬度的特征就够用了)
在给空间进行划分的时候,其实就是各种可能性的划分,把概率的东西引入进来,就很自然的和贝叶斯相关的知识联系起来了。
2 两个特征的情况
举些稍微复杂一点的例子,还是线性的,但是有两个纬度的。首先是两个工作生活比较常见的例子
2.1 线性二维例子1:考试科目
比如想就读某一个学校的学生需要通过两门科目入学考试(我们小升初的时候就考两门语文、数学),那么对没有通过入学考试的学生和通过入学考试的学生进行分类,对于这个问题中的每个样本来说,它有两个特征,它们构成的特征空间是一个平面(其实类似这个还有很多了,比如职称考试是否能通过等等)。这样划分边界就是二维空间的一条直线。
2.2 线性二维例子2:零件误差
再来一个例子,比如我们检测一个零件(比如螺丝)是否合格,这个零件可能有两个指标(比如一个是长度,一个是头部的直径的尺寸)这两个尺寸的误差都不能超过某一个值,比如长度误差不能超过正负0.8mm,螺丝头直径误差不能超过正负0.5mm。这种情况下,决策边界就是一个曲线(圆形)
2.3 线性二维例子3:逻辑运算
我们再看一个例子,利用感知机来实现逻辑运算的例子,通过这个例子你会发现原来用分类器还能实现逻辑运算(竟然还有这种操作?)。
2.3.1 逻辑与
x1 | x2 | y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
从分类的角度来看,研究对象有两个纬度,
那么在二维平面中将样本区分开就是找一条直线(或者曲线)把样本分开,在这张图上可以看到,其实这样的直线非常好找,如下图。只要找一条直线,这条直线满足同时过“(0,1)和(1,1)组成的直线”以及“(1,1)和(1,0)组成的直线”即可,可以看到这样的直线其实不止一条,但是我们可以选择一条比较简单的,我们另这条直线斜率为 −1 ,截距为1.5。于是决策边界为 x1+x2−1.5=0
之后再在这个决策边界上套上一个阶跃函数变成