数据模型:并不是简单地二维数据,多个维度或者对象的数据聚合起来
     {
          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. Unity iOS混合开发界面切换思路

    Unity iOS混合开发界面切换思路 最近有很多博友QQ 私信 或则 留言联系我,请教iOS和Unity界面之前相互切换的问题,源代码就不私下发你们了,界面跳转功能的代码我直接贴到下面好了,顺带说i ...

  2. sql server查询可编程对象定义的方式对比以及整合

    本文目录列表: 1.sql server查看可编程对象定义的方式对比 2.整合实现所有可编程对象定义的查看功能的存储dbo.usp_helptext2 3.dbo.helptext2的选择性测试 4. ...

  3. UWP简单示例(一):快速合成音乐MV

    准备 IDE:Visual Studio 2015 为你的项目安装Nuget包 SharpDx.XAudio2 为你的项目安装Nuget包 Win2D.UWP 了解并学习:Win2D官方博客 了解并学 ...

  4. java类的初始化顺序

    在java中,当我们new一个对象时,对象中的成员,初始化块以及构造方法的加载是有一定的顺序的,看下面一副图: 一.单类(无基类)下的初始化顺序: public class Parent { stat ...

  5. 随机数(random)

    需求 Random rd=new Random(); 需要十以内的随机数  (0---10) System.out.println((int)((rd.nextDouble()*100)/10)); ...

  6. TypeSDK总体设计思路和架构

    引言:本文旨在提供读者制作一个自己的聚合SDK的思路,抛砖引玉,让更多的读者对聚合SDK有好的理解. 这是最好的时代,这是最坏的时代,这是智慧的时代,这是愚蠢的时代:这是信仰的时期,这是怀疑的时期:这 ...

  7. Struts2入门(二)——配置拦截器

    一.前言 之前便了解过,Struts 2的核心控制器是一个Filter过滤器,负责拦截所有的用户请求,当用户请求发送过来时,会去检测struts.xml是否存在这个action,如果存在,服务器便会自 ...

  8. Spring 4 + Quartz 2.2.1 Scheduler Integration Example

    In this post we will see how to schedule Jobs using Quartz Scheduler with Spring. Spring provides co ...

  9. JS正则表达式(JavaScript regular expression)

    RegExp直接量和对象的创建 就像字符串和数字一样,程序中每个取值相同的原始类型直接量均表示相同的值,这是显而易见的.程序运行时每次遇到对象直接量(初始化表达式)诸如{}和[]的时候都会创建新对象. ...

  10. hexo+next博客添加搜索

    1.为什么添加algolia搜索 第一当然是可以方便的查找所需文章,第二点就是之前常用的swiftype插件不再免费.我的个人博客是这个月初搭建完成的,这时候swiftype已经不再免费,而且只开放企 ...