数据模型:并不是简单地二维数据,多个维度或者对象的数据聚合起来
     {
          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. 「译」JUnit 5 系列:扩展模型(Extension Model)

    原文地址:http://blog.codefx.org/design/architecture/junit-5-extension-model/ 原文日期:11, Apr, 2016 译文首发:Lin ...

  2. JavaScript结构三层——思想快速介绍

    本文版权归博客园和作者吴双本人所有,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/,我是博客园蜗牛,我们共同进步. 今天讨论的是什么 如果你的工作中需要写JavaS ...

  3. C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理

    前面一篇随笔企业号的一些基础信息,以及介绍如何配置企业号的回调方式实现和企业号服务器进行沟通的桥梁.本篇主要还是继续介绍企业号的开发工作的开展,介绍微信企业号通讯录管理开发功能,介绍其中组织机构里面如 ...

  4. 从Google工程师到创业CTO,他的8项理念也许可以帮到你

    Lan Langworth是前Google软件工程师.O'Reily作者,现在他是Artillery的co-founder/CTO,致力于把游戏机质量的游戏带进网页浏览器.下文是他从Google离职到 ...

  5. (原创)解决.net 下使用uploadify,在火狐浏览器下的error 302

    简单粗劣说下哈,通过uploadify中flash在火狐下上传,造成了erroe 302, 是因为其session丢失,并修改了其sessionID. 网上有很多案列,可并没有这么直接.感觉绕了点弯. ...

  6. php中实现的一个curl批处理的实例

    curl是利用URL语法在命令行方式下工作的开源文件传输工具 本文在php中实现了的一个curl批处理的实例. 代码如下: header("Content-Type:text/html;ch ...

  7. 充电时间 Go中的数组、切片、map简单示例

    数组是固定长度的,依稀让我想起了VB:切片是动态的:map一般是键值对 package main import ( "fmt" ) func main() { var userna ...

  8. 在Word中输入数学公式

    office官方说明:https://support.office.com/en-us/article/Linear-format-equations-and-Math-AutoCorrect-in- ...

  9. glibc 各版本发布时间以及内核默认glibc版本

    最近有些软件要求glibc 2.14+,centos 6.x自带的版本是2.12的,特查了下glibc 各版本发布时间以及与对应的内核,如下: Complete glibc release histo ...

  10. 基于rem的移动端自适应解决方案

    代码有更新,最好直接查看github: https://github.com/finance-sh/adaptive adaptivejs原理: 利用rem布局,根据公式 html元素字体大小 = d ...