7-感知机-二分类-分类-监督学习-机器学习

参考:李航《统计学习方法》

感知机(perceptron)

   输入一个或多个变量X(组成特征向量),输出两个Y值(正类和负类,如+1和-1)。找到从X到Y的 线性函数,f(x)=sign(w*x+b)。
    其中f(x)成为 感知机,w称为 权值向量(weight vector),b称为 偏置(bias),w*x表示w和x的内积。
    w*x+b=0是一个超平面S,w是S的法向量,b是S的截距。超平面将输入空间X划分为两部分,分别称为正类和负类,该超平面称为 分离超平面(separating hyperplane)

    不是任何数据集都可以对应这样一个超平面的。对于一个数据集,如果能找到一个超平面,将正负两类点完全正确划分为两部分,那么该数据集为 线性可分数据集(linearly separable data set),否则称它为非线性可分数据集。

如何评价超平面的性能?如何选择损失函数?

1)通过误分类的总点数来度量超平面性能,损失函数选择0-1函数

缺点:只能通过枚举法来确定函数f(x)的参数w,b,但无法求w,b的最优解

2)通过误分类点到超平面的总距离来度量超平面性能

S1  任意一点到超平面S的距离:|w*x+b|  /  ||w||
S2  若某点正确分类,则 y * (  w*x+b) >0;
      若某点分类错误,则 y * ( w*x+b) < 0; - y * ( w*x+b) > 0 ;且  -y * ( w*x+b) = |w*x+b| (y=±1)
S3  所有分类错误的点集合为M ,则到超平面的总距离为 ∑ [-y*(w*x+b)]  /  ||w||   (x∈M)
      去掉||w||,则损失函数可设置为  L(w,b) =   ∑ [-y*(w*x+b)]  【为什么去掉||w||?】
      对该函数而言,其值非负,没有误分类点,其值为0;误分类点越少,误分类点离超平面越近,       则其值越小。
S4 如何求出最小值的L(w,b),从而确定w和b?
前提:只有当数据集是线性可分时,才存在最小值的L(w,b)
解法一:原始形式
s1 随机选取一组(w,b)值
s2 随机选取一个误分类点,通过梯度下降法修改(w,b)值,使得该误分类点被正确分类
s3 基于新的(w,b)值,再重复s2,直到所有误分类点都被正确分类
     可以证明,当数据集是线性可分时,是能找到将所有误分类点正确分类的一组(w,b)值,该算法是收敛的。但当数据集不是线性可分时,找不到这样的(w,b)值,该算法是震荡的。
    同时,也可以发现,符合条件的(w,b)值不是唯一的,这取决于(w,b)的初始值和每次选择误分类点的顺序。为了得到唯一的(w,b),必须加约束条件,这就是 线性支持向量机
解法二:对偶形式
这里引用知乎上一个高票答案,非常清晰。https://www.zhihu.com/question/26526858

分类的应用场景

1.在银行业务中, 可以构建一个客户分类模型, 对客户按照贷款风险的大小进行分类
2.在网络安全领域,可以利用日志数据的分类对非法入侵进行检测
3.在图像处理中 , 分类可以用来检测图像中是否有人脸出现
4.在手写识别中, 分类可以用于识别手写的数字
5.在互联网搜索中, 网页的分类可以帮助网页的抓取、索引与排序

猜你喜欢

转载自blog.csdn.net/yeziand01/article/details/80581912