数据模型:并不是简单地二维数据,多个维度或者对象的数据聚合起来
     {
          persion1's attr1:value1,...,persion1's attrN:valueN,persion2's attr1:value1,...,persion2's attrN:value1,whetherSuccess:value
     }
 
同一个问题:不同的分类方法的类比
          决策树:存在多个数值型输入,且这些数值所呈现的关系并不简单,决策树往往不是最有效的方法
          简单的线性分类:它只能找出一条分界线来,如果找不到,或者实际存在多条直线时,分类器会得到错误的答案
 
算法思想:
          核方法和SVM都是线性分类(类发现群组的聚类)的方法,不同的是在更高维度上计算两个向量间的点积,而简单的线性分类只是在二维空间里用点积来计算距离
          核方法:
                    用新的函数来取代原来的点积函数,将数据映射到更高维度的坐标空间去,并返回高维度空间内的点积,实际中会采取少数几种变换方法,常用径向基函数(radial-basis function):
                    接受两个向量作为输入,返回一个标量值,和点积不同的是,其是非线性的         
        通过调整gamma来得到最佳的线性分离
                    先用向量A和一个分类中的每个向量求距离,然后再求平均距离
 
          SVM:
                    使用LibSVM
 
数据的线性化是重点:
          1.是否问题:yes->1,no->0
          2.兴趣类的:
          单人的:可以用是否的方法处理
          成对的:则两人出现计数累加1次
          某些不同的兴趣爱好也是可能配对成功的,如滑雪与滑板;如果为每一个兴趣都建立一个变量,则分类器更加复杂;一种好的处理方法是将兴趣爱好按层级排列:第一级-第二级-第三级:滑雪和滑板都是雪地运动,雪地运行又是体育运动,如果两个人都对第三级的项目感兴趣,则分值为1,否则如果两个人都是对第二级的项目感兴趣,则分支为1,第一级的感兴趣,分值为0.5;即层级越高,赢取的分值越低
           
          3.数据的缩放:对不同度量单位的数值进行衡量时,需要将数据缩放为统一尺度[0,1],做归一化处理,即m(x)=(x-min(X))/(max(X)-min(X));或者构建成本函数,获得每个属性的权重  
 

1.数据的处理:

     婚介数据集:
          年龄、是否吸烟、是否要孩子、兴趣列表、家庭住址
 
     每一行数据包含了一对男女的信息以及是否匹配成功的标志(0和1)
  

     数据集中的数据是相互作用和非线性的,所以先用年龄和是否配对成功来分析各种分类算法的使用场景
 
2.决策树
     i.适用场景:
          根据数值边界来对数据进行划分的
 
     ii.处理过程:
          使用年龄来最决策树
            
               决策树更加适合自动分类

          
     iii.不使用场景:
          存在多个数值型输入,且这些数值所呈现的关系并不简单,决策树往往不是最有效的方法
 
3.基本的线性分类:
     i.思想:
          寻找每个分类中所有数据的平均值,并构造一个代表该分类中心位置的点,根据和每个中心位置的距离远近来进行分类
 
     ii.计算方法:
          
     
     iii.分类结果图:
          
 
     iv.距离的计算方法:
          a.欧几里得距离
          b.向量和点积
               先计算两个分类的中心点
               然后根据两个向量的点积的正负(夹角的大小)来判断属于哪个分类:
                    class="sign"((X-(M0+M1)/2)*(M0-M1))=sign(XM0-XM1+(M0*M0-M1*M1)/2)
 
     v.优劣性:
          它只能找出一条分界线来,如果找不到,或者实际存在多条直线时,分类器会得到错误的答案
 
4.数据的线性化:
     数据有数值型,也有分类型,决策树不需对数据进行预处理,但是其他分类器只能处理数值型数据,所有需要进行数据的数值化:
     i.是否问题:
          yes --> 1
          no --> 0
     ii.兴趣列表:
          单人的:可以用是否的方法处理
          成对的:则两人出现计数累加1次
          某些不同的兴趣爱好也是可能配对成功的,如滑雪与滑板;如果为每一个兴趣都建立一个变量,则分类器更加复杂;一种好的处理方法是将兴趣爱好按层级排列:第一级-第二级-第三级:滑雪和滑板都是雪地运动,雪地运行又是体育运动,如果两个人都对第三级的项目感兴趣,则分值为1,否则如果两个人都是对第二级的项目感兴趣,则分支为1,第一级的感兴趣,分值为0.5;即层级越高,赢取的分值越低
 
     iii.地理位置的距离:
          利用Yahoo Maps来根据地址为邮编得到经度和纬度,然后将两地的纬度差*69.1,经度差*53,求欧几里得距离
 
     iv.对数据进行缩放:(也可用成本函数进行计算)
          对不同度量单位的数值进行衡量时,需要将数据缩放为统一尺度[0,1],做归一化处理,即m(x)=(x-min(X))/(max(X)-min(X))
            
5.核方法:(超越线性分类的方法,来解决寻找一条分界线额局限性)
     i.通过对数据进行变换实现线性分类是有可能的
    
          
          可以对x、y求平方,进行变化后,可以寻找一条分界线,或者数据的多维变换:a=x^2,b=x*y,c=y^2,在多维空间里寻找两个分类的分界线,但是将数据投影到很多维度上又不切实际
 
     ii.核技法:
          用新的函数来取代原来的点积函数,将数据映射到更高维度的坐标空间去,并返回高维度空间内的点积,实际中会采取少数几种变换方法,常用径向基函数(radial-basis function):
               接受两个向量作为输入,返回一个标量值,和点积不同的是,其是非线性的通过调整gamma来得到最佳的线性分离
 
     iii.坐标点与均值点间的距离:
          先对一组向量求均值点,然后向量A与均值点的点积,与先用向量A和向量组中的每一个向量求点积,然后在求均值的效果一样,所有直接计算某个坐标点与分类中其余每个坐标点的点积或者径向基函数,然后再求均值
                
          offset参数是偏移量,在转换后的空间中也会变化,因其计算过程费时,所以预先为某个数据集计算一次偏移量,然后调用的时候传入
 
6.支持向量机
     i.数据集
          
               大多数的数据都是远离分界线的,所以判断坐标点的分类与是否位于直线的某一侧并没有太大的实际意义
 
     ii.支持向量机:
          广为认知的一组方法的统称,用来解决上述问题的分类器:尝试找出一条尽可能远离所有分类的线,这条线被称为最大间隔超平面(Maximun-Margin hyperplan)
 
     iii.例子:
          此处选择分界线的依据是:寻找两条分别经过各分类相应坐标点的平行线,使其与分界线的距离尽可能的远;而对于新数据点,通过观察位于分界线的哪一侧类判断其所属的分类;同时,只有位于间隔区边缘的坐标点才是确定分界线位置所必须的,因此可以去掉冗余的数据,而分界线处于相同的位置,将这条分解称为支持向量;而寻找支持向量,并利用其来寻找分界线的算法及时支持向量机
         
 
     iv.应用:
          面部表情分类
          军事数据侦测入侵者
          预测蛋白质结构
          笔迹识别
          确定地震期间的潜在危害
 
     v.LIBSVM支持向量机的使用
          a.从包含两个列表的元组中读取数据,一个列表含有分类数据,另一个函数输入数据
          b.示例:
    

                

          
               c.对于婚介数据集:
    
          使用交叉验证来训练模型,接收一个参数n,将数据拆为n个子集,每次将一个子集作为测试集,利用其它子集对模型展开训练;将结果与最初的列表进行对比,answer与guesses差异数为116,即得到了500行数据中的384匹配项
    

          

高介分类:核方法与支持向量机(SVM)的更多相关文章

  1. 基于核方法的模糊C均值聚类

    摘要: 本文主要针对于FCM算法在很大程度上局限于处理球星星团数据的不足,引入了核方法对算法进行优化.  与许多聚类算法一样,FCM选择欧氏距离作为样本点与相应聚类中心之间的非相似性指标,致使算法趋向 ...

  2. SVM 核方法

    在 SVM 中引入核方法便可使得 SVM 变为非线性分类器,给定非线性可分数据集 $\left \{ (x_i,y_i)\right\}_{i=1}^N$,如下图所示,此时找不到一个分类平面来将数据分 ...

  3. paper 6:支持向量机系列三:Kernel —— 介绍核方法,并由此将支持向量机推广到非线性的情况。

    前面我们介绍了线性情况下的支持向量机,它通过寻找一个线性的超平面来达到对数据进行分类的目的.不过,由于是线性方法,所以对非线性的数据就没有办法处理了.例如图中的两类数据,分别分布为两个圆圈的形状,不论 ...

  4. Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法

    这一章主要解说Ng的机器学习中SVM的兴许内容.主要包括最优间隔分类器求解.核方法. 最优间隔分类器的求解 利用以一篇讲过的的原始对偶问题求解的思路,我们能够将相似思路运用到SVM的求解上来. 详细的 ...

  5. 吴裕雄 python 机器学习——支持向量机SVM非线性分类SVC模型

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model,svm fr ...

  6. 机器学习之支持向量机—SVM原理代码实现

    支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...

  7. 支持向量机SVM原理_python sklearn建模乳腺癌细胞分类器(推荐AAA)

    项目合作联系QQ:231469242 sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?cours ...

  8. 复习支持向量机(SVM)没空看书时,掌握下面的知识就够了

    支持向量机(support vector machines, SVM)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器:支持向量机还包括核技巧,这使它成为实质上的非线性分类器. ...

  9. OpenCV支持向量机(SVM)介绍

    支持向量机(SVM)介绍 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 CvSVM::train 训练一个SVM分类器, 以及用 CvSVM::predict 测试训练结果. 什么是支持向 ...

随机推荐

  1. JSTL标签 参考手册

    前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...

  2. C# 视频编辑

    VidCoder VidCoder是一个开源免费的DVD/蓝光视频抓取和转码软件.使用HandBrake做为编码引擎.比Handbrake拥有更友好的用户界面. 可裁剪.剪切.字幕编辑.转码等. 官网 ...

  3. MSSQL练习题

    下列属于SQL Server的系统数据库是( ) A.modelB.publicC.NorthwindD.System 答案:http://hovertree.com/tiku/bjaf/06nvv7 ...

  4. 解决VS调试时断点不会命中

    断点调试是VS中的一大利器,有了它我们可以快速定位到代码的问题所在.在某些情况下会导致设置了断点后程序无法在断点处停下,下面分4种情况来解决断点不会命中的问题 百度经验:jingyan.baidu.c ...

  5. 第三篇 Entity Framework Plus 之 Query Cache

    离上一篇博客,快一周,工作太忙,只能利用休息日来写一些跟大家分享,Entity Framework Plus 组件系列文章,之前已经写过两篇 第一篇 Entity Framework Plus 之 A ...

  6. 第二篇 Entity Framework Plus 之 Query Future

    从性能的角度出发,能够减少 增,删,改,查,跟数据库打交道次数,肯定是对性能会有所提升的(这里单纯是数据库部分). 今天主要怎样减少Entity Framework查询跟数据库打交道的次数,来提高查询 ...

  7. 【转】将grub2安装到u盘的方法

    将grub2安装到u盘的方法 时间:2015-03-21来源:linux网站 作者:linux人 grub2在各大linux发行版中广泛采用,它非常强大,基本上大多数操作系统都是通过它引导起来的,它的 ...

  8. JavaScript数组方法reduce解析

    Array.prototype.reduce() 概述 reduce()方法是数组的一个实例方法(共有方法),可以被数组的实例对象调用.reduce() 方法接收一个函数作为累加器(accumulat ...

  9. 中国式商业智能报表ActiveReports免费公开课,10月20日开讲

    ActiveReports公开课全方位报表解决方案,满足商业报表五大需求 [开课时间]10月20日[主讲老师]葡萄城报表产品经理[开课形式]网络在线公开课[活动费用]前50名免费 适合人群:报表开发人 ...

  10. javascript中需要自行定义的函数

    1.toString()与String() 使用方式:x.toString();-----String(x); String是万能的方法,而x.toString()则有局限性,无法将undefined ...