首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
机器学习之支持向量机(SVM)学习笔记
】的更多相关文章
机器学习框架ML.NET学习笔记【4】多元分类之手写数字识别
一.问题与解决方案 通过多元分类算法进行手写数字识别,手写数字的图片分辨率为8*8的灰度图片.已经预先进行过处理,读取了各像素点的灰度值,并进行了标记. 其中第0列是序号(不参与运算).1-64列是像素值.65列是结果. 我们以64位像素值为特征进行多元分类,算法采用SDCA最大熵分类算法. 二.源码 先贴出全部代码: namespace MulticlassClassification_Mnist { class Program { static readonly string TrainDa…
机器学习框架ML.NET学习笔记【3】文本特征分析
一.要解决的问题 问题:常常一些单位或组织召开会议时需要录入会议记录,我们需要通过机器学习对用户输入的文本内容进行自动评判,合格或不合格.(同样的问题还类似垃圾短信检测.工作日志质量分析等.) 处理思路:我们人工对现有会议记录进行评判,标记合格或不合格,通过对这些记录的学习形成模型,学习算法仍采用二元分类的快速决策树算法,和上一篇文章不同,这次输入的特征值不再是浮点数,而是中文文本.这里就要涉及到文本特征提取. 为什么要进行文本特征提取呢?因为文本是人类的语言,符号文字序列不能直接传递给算法.而…
机器学习框架ML.NET学习笔记【2】入门之二元分类
一.准备样本 接上一篇文章提到的问题:根据一个人的身高.体重来判断一个人的身材是否很好.但我手上没有样本数据,只能伪造一批数据了,伪造的数据比较标准,用来学习还是蛮合适的. 下面是我用来伪造数据的代码: string Filename = "./figure_full.csv"; StreamWriter sw = new StreamWriter(Filename, false); sw.WriteLine("Height,Weight,Result"); Ran…
机器学习框架ML.NET学习笔记【1】基本概念与系列文章目录
一.序言 微软的机器学习框架于2018年5月出了0.1版本,2019年5月发布1.0版本.期间各版本之间差异(包括命名空间.方法等)还是比较大的,随着1.0版发布,应该是趋于稳定了.之前在园子里也看到不少相关介绍的文章,对我的学习提供了不少帮助.由于目前资料不是很丰富,所以学习过程中也走了不少弯路,本系列的文章主要记录我学习过程中的一些心得体会,并对一些细节会做详细的解释,希望能为机器学习零基础的同学提供一些帮助.(C#零基础可不行) 二.基本概念 1.什么是机器学习?定义:一个电脑程序要完成任…
机器学习框架ML.NET学习笔记【5】多元分类之手写数字识别(续)
一.概述 上一篇文章我们利用ML.NET的多元分类算法实现了一个手写数字识别的例子,这个例子存在一个问题,就是输入的数据是预处理过的,很不直观,这次我们要直接通过图片来进行学习和判断.思路很简单,就是写一个自定义的数据处理通道,输入为文件名,输出为float数字,里面保存的是像素信息. 样本包括6万张训练图片和1万张测试图片,图片为灰度图片,分辨率为20*20 .train_tags.tsv文件对每个图片的数值进行了标记,如下: 二.源码 全部代码: namespace MulticlassCl…
机器学习框架ML.NET学习笔记【6】TensorFlow图片分类
一.概述 通过之前两篇文章的学习,我们应该已经了解了多元分类的工作原理,图片的分类其流程和之前完全一致,其中最核心的问题就是特征的提取,只要完成特征提取,分类算法就很好处理了,具体流程如下: 之前介绍过,图片的特征是不能采用像素的灰度值的,这部分原理的台阶有点高,还好可以直接使用通过TensorFlow训练过的特征提取模型(美其名曰迁移学习). 模型文件为:tensorflow_inception_graph.pb 二.样本介绍 我随便在网上找了一些图片,分成6类:男孩.女孩.猫.狗.男人.女人…
机器学习框架ML.NET学习笔记【7】人物图片颜值判断
一.概述 这次要解决的问题是输入一张照片,输出人物的颜值数据. 学习样本来源于华南理工大学发布的SCUT-FBP5500数据集,数据集包括 5500 人,每人按颜值魅力打分,分值在 1 到 5 分之间.其中包括男性.女性.中国人.外国人四个分类. SCUT-FBP5500_full.csv文件标记了每个图片人物的颜值打分数据.(我把分值一项乘以了20,变成了满分100分,不影响计算结果) 整个程序处理流程和前一篇图片分类的基本一致,唯一的区别,分类用的是多元分类算法,这次采用的是回归算法. 二.…
机器学习框架ML.NET学习笔记【8】目标检测(采用YOLO2模型)
一.概述 本篇文章介绍通过YOLO模型进行目标识别的应用,原始代码来源于:https://github.com/dotnet/machinelearning-samples 实现的功能是输入一张图片,对图片中的目标进行识别,输出结果在图片中通过红色框线标记出来.如下: YOLO简介 YOLO(You Only Look Once)是一种最先进的实时目标检测系统.官方网站:https://pjreddie.com/darknet/yolo/ 本文采用的是TinyYolo2模型,可以识别的目标类型包…
机器学习框架ML.NET学习笔记【9】自动学习
一.概述 本篇我们首先通过回归算法实现一个葡萄酒品质预测的程序,然后通过AutoML的方法再重新实现,通过对比两种实现方式来学习AutoML的应用. 首先数据集来自于竞赛网站kaggle.com的UCI Wine Quality Dataset数据集,访问地址:https://www.kaggle.com/c/uci-wine-quality-dataset/data 该数据集,输入为一些葡萄酒的化学检测数据,比如酒精度等,输出为品酒师的打分,具体字段描述如下: Data fields Inpu…
神经网络与机器学习第3版学习笔记-第1章 Rosenblatt感知器
神经网络与机器学习第3版学习笔记 -初学者的笔记,记录花时间思考的各种疑惑 本文主要阐述该书在数学推导上一笔带过的地方.参考学习,在流畅理解书本内容的同时,还能温顾学过的数学知识,达到事半功倍的效果. 第一章 Rosenblatt感知器 1.第32页 1.1 为什么如果第n次迭代时的内积存在符号错误,第n+1次迭代内积的符号就会正确? 已知 $\eta \left( n \right) X^T\left( n \right) X\left( n \right) >\left| W^T\left(…
机器学习6—SVM学习笔记
机器学习牛人博客 机器学习实战之SVM 三种SVM的对偶问题 拉格朗日乘子法和KKT条件 支持向量机通俗导论(理解SVM的三层境界) 解密SVM系列(一):关于拉格朗日乘子法和KKT条件 解密SVM系列(二):SVM的理论基础 解密SVM系列(三):SMO算法原理与实战求解 (一)关于拉格朗日乘子法 首先来了解拉格朗日乘子法,那么为什么需要拉格朗日乘子法?记住,有拉格朗日乘子法的地方,必然是一个组合优化问题.那么带约束的优化问题很好说,就比如说下面这个: minf=2x21+3x22+7x2…
SVM学习笔记
一.SVM概述 支持向量机(support vector machine)是一系列的监督学习算法,能用于分类.回归分析.原本的SVM是个二分类算法,通过引入“OVO”或者“OVR”可以扩展到多分类问题.其学习策略是使间隔最大化,也就是常说的基于结构风险最小化寻找最优的分割超平面.SVM学习问题可以表示为凸优化问题,也可以转变为其对偶问题,使用SMO算法求解.线性SVM与LR有很多相似的地方,分类的准确性能也差不多,当数据量比较少时SVM可能会占据优势,但是SVM不方便应用于软分类(probabi…
机器学习之支持向量机—SVM原理代码实现
支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决什么问题? 最基本的应用是数据分类,特别是对于非线性不可分数据集.支持向量机不仅能对非线性可分数据集进行分类,对于非线性不可分数据集的也可以分类 (我认为这才是支持向量机的真正魅力所在,因为现实场景中,样本数据往往是线性不可分的). 现实场景一 :样本数据大部分是线性可分的,但是只是在样本中含有少量…
SVM学习笔记(一)
支持向量机即Support Vector Machine,简称SVM.一听这个名字,就有眩晕的感觉.支持(Support).向量(Vector).机器(Machine),这三个毫无关联的词,硬生生地凑在了一起.从修辞的角度,这个合成词最终落脚到"Machine"上,还以为是一种牛X的机器呢?实际上,它是一种算法,是效果最好的分类算法之一. SVM是最大间隔分类器,它能很好地处理线性可分的问题,并可推广到非线性问题.实际使用的时候,还需要考虑噪音的问题. 本文只是一篇学习笔记,主要参考了…
机器学习算法 - 支持向量机SVM
在上两节中,我们讲解了机器学习的决策树和k-近邻算法,本节我们讲解另外一种分类算法:支持向量机SVM. SVM是迄今为止最好使用的分类器之一,它可以不加修改即可直接使用,从而得到低错误率的结果. [案例背景] 从前有两个地主,他们都是占山为王的一方霸主.本来各自吃饱自己的饭万事无忧,可是人心不知足蛇吞象啊,自己总是都想占对方的一亩三分地,冲突争吵从来都没有停歇过.当时的环境就是谁狠这土地就归谁,但是我们现在想从科学的角度来分析,如何让他们的地盘均分,画条边界线,从此互不干扰呢? [演示代码] i…
python机器学习之支持向量机SVM
支持向量机SVM(Support Vector Machine) 关注公众号"轻松学编程"了解更多. [关键词]支持向量,最大几何间隔,拉格朗日乘子法 一.支持向量机的原理 Support Vector Machine.支持向量机,其含义是通过支持向量运算的分类器.其中"机"的意思是机器,可以理解为分类器. 那么什么是支持向量呢?在求解的过程中,会发现只根据部分数据就可以确定分类器,这些数据称为支持向量. 见下图,在一个二维环境中,其中点R,S,G点和其它靠近中间黑…
【机器学习】支持向量机SVM
关于支持向量机SVM,这里也只是简单地作个要点梳理,尤其是要注意的是SVM的SMO优化算法.核函数的选择以及参数调整.在此不作过多阐述,单从应用层面来讲,重点在于如何使用libsvm,但对其原理算法要理解. SVM理论推导是有些复杂的,关键是怎么把目标函数在约束条件下,最终转化为一个凸二次优化问题.在这里推荐一个写的比较经典的文章,july的博客里的一篇文章<支持向量机通俗导论(理解SVM的三层境界)>,博文链接:http://blog.csdn.net/v_july_v/article/de…
Day1 《机器学习》第一章学习笔记
<机器学习>这本书算是很好的一本了解机器学习知识的一本入门书籍吧,是南京大学周志华老师所著的鸿篇大作,很早就听闻周老师大名了,算是国内机器学习领域少数的大牛了吧,刚好研究生做这个方向相关的内容,所以今天买了一本所谓的西瓜书,准备研读,光读书记性不好,边读边做笔记练习印象深刻,接下来我就把自己的学习过程按每章节的内容整理如下: Day1 第一章 绪论部分 本书作者周志华老师通过聊天的口吻开篇,以日常生活的小案例和场景,向读者介绍什么是机器学习,以及什么是学习算法.在这一章介绍了很多机器学习相关的…
机器学习(十一) 支持向量机 SVM(上)
一.什么是支撑向量机SVM (Support Vector Machine) SVM(Support Vector Machine)指的是支持向量机,是常见的一种判别方法.在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别.分类以及回归分析. Vapnik等人在多年研究统计学习理论基础上对线性分类器提出了另一种设计最佳准则.其原理也从线性可分说起,然后扩展到线性不可分的情况.甚至扩展到使用非线性函数中去,这种分类器被称为支持向量机(Support Vector Machine,简称SV…
机器学习-5 支持向量机SVM
一.概念和背景 SVM:Support Vector Machine 支持向量机. 最早是由Vladimir N. Vapnik和Alexey Ya. Chervonenkis在1963年提出的. 目前的版本(soft margin)是由Corinna Cortes和Vapnik在1993年提出,并在1995年发表. 在深度学习(2012)出现之前,SVM被认为是机器学习中近十几年来最成功,表现最好的算法. 机器学习的一般框架: 训练集--->提取特征向量--->结合一定的算法(决策树.KNN…
机器学习:支持向量机(SVM)
SVM,称为支持向量机,曾经一度是应用最广泛的模型,它有很好的数学基础和理论基础,但是它的数学基础却比以前讲过的那些学习模型复杂很多,我一直认为它是最难推导,比神经网络的BP算法还要难懂,要想完全懂这个算法,要有很深的数学基础和优化理论,本文也只是大概讨论一下.本文中所有的代码都在我的github. 目录 硬间隔SVM推导 间隔 对偶 SMO 软间隔SVM 核函数 总结 硬间隔SVM推导 如果现在我们需要对一堆数据进行二分类处理,并且这些数据都是线性可分的(一条直线就能将数据区分开),那么你会如…
Day2 《机器学习》第二章学习笔记
这一章应该算是比价了理论的一章,我有些概率论基础,不过起初有些地方还是没看多大懂.其中有些公式的定义和模型误差的推导应该还是很眼熟的,就是之前在概率论课上提过的,不过有些模糊了,当时课上学得比较浅. Day2 第二章 模型评估与选择 2.1 经验误差与过拟合 通常我们把分类错误的样本数占样本总数的比例称为“错误率(error rate)”,即错误率E=a/m,m个样本中a个错误,1-a/m称为“精度(accuracy)”,我们把学习器的实际输出与样本的真实输出之间的差异称为“误差(error)”…
SVM学习笔记(二)----手写数字识别
引言 上一篇博客整理了一下SVM分类算法的基本理论问题,它分类的基本思想是利用最大间隔进行分类,处理非线性问题是通过核函数将特征向量映射到高维空间,从而变成线性可分的,但是运算却是在低维空间运行的.考虑到数据中可能存在噪音,还引入了松弛变量. 理论是抽象的,问题是具体的.站在岸上学不会游泳,光看着梨子不可能知道梨子的滋味.本篇博客就是用SVM分类算法解决一个经典的机器学习问题--手写数字识别.体会一下SVM算法的具体过程,理理它的一般性的思路. 问题的提出 人类视觉系统是世界上众多的奇迹之一.看…
SVM学习笔记(一):libsvm参数说明(转)
LIBSVM 数据格式需要---------------------- 决策属性 条件属性a 条件属性b ... 2 1:7 2:5 ... 1 1:4 2:2 ... 数据格式转换---------------------- 当数据较少时,可以用formatdatalibsvm轻松地将文本数据转换成为svm工具使用的数据. 使用方法为: 1,打开FormatDataLibsvm.xls然后将数据粘贴到sheet1的topleft单元. 输入格式为: 条件属性a 条件属性b ... 决策属性 7…
支持向量机-SVM 学习
一 .支持向量机(SVM) 1.1 符号定义 标签 y 不再取 0 或 1,而是: y∈{-1, 1} 定义函数: 向量,没有第 0 个维度,b 为截距,预测函数定义为: 1.2 函数间隔与几何间隔 1.2.1 函数间隔 样本个体: 全体: 1.2.2 几何间隔 样本个体: 全体: 1.2.3 关系 函数间隔与几何间隔都是对预测置信度的度量,这个间隔越大,说明预测样本离着分界线越远,我们预测的结果也就更加可靠. 1.3 优化目标 假设样本是线性可分的,优化目标为 1.4 广义拉格朗日乘数法…
机器学习(十一) 支持向量机 SVM(下)
支持向量机通过某非线性变换 φ( x) ,将输入空间映射到高维特征空间.特征空间的维数可能非常高.如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K(x, x′) ,它恰好等于在高维空间中这个内积,即K( x, x′) =<φ( x) ⋅φ( x′) > .那么支持向量机就不用计算复杂的非线性变换,而由这个函数 K(x, x′) 直接得到非线性变换的内积,使大大简化了计算.这样的函数 K(x, x′) 称为核函数 核函数包括线性核函数.多项式核函数.高斯核函数等,其中高斯核…
吴裕雄--天生自然python机器学习:支持向量机SVM
基于最大间隔分隔数据 import matplotlib import matplotlib.pyplot as plt from numpy import * xcord0 = [] ycord0 = [] xcord1 = [] ycord1 = [] markers =[] colors =[] fr = open('F:\\machinelearninginaction\\Ch06\\testSet.txt')#this file was generated by 2normalGen.…
SVM学习笔记-线性支撑向量机
对于PLA算法来说,最终得到哪一条线是不一定的,取决于算法scan数据的过程. 从VC bound的角度来说,上述三条线的复杂度是一样的 Eout(w)≤Ein0+Ω(H)dvc=d+1 直观来看,最右边的线是比较好的hyperplane. 为什么最右边的分隔面最好? 对于测量误差的容忍度是最好的.例如对于每张图片中左下角的样本点,当未来要判定与该点非常接近的点(有可能它们的feature本来就是一样的,只不过因为测量的误差的存在,所以feature变得有点不同了)的labe…
SVM学习笔记5-SMO
首先拿出最后要求解的问题:$\underset{\alpha}{min}W(\alpha)=\frac{1}{2} \sum_{i,j=1}^{n}y^{(i)}y^{(j)}\alpha_{i}\alpha_{j}k_{ij}-\sum_{i=1}^{n}\alpha_{i}$,使得满足:(1)$0 \leq \alpha_{i}\leq C,1 \leq i \leq n$(2)$\sum_{i=1}^{n}\alpha_{i}y^{(i)}=0$ 求解的策略是每次选出两个$\alpha$进…
SVM学习笔记4-核函数和离群点的处理
核函数在svm里,核函数是这样定义的.核函数是一个n*n(样本个数)的矩阵,其中:$K_{ij}=exp(-\frac{||x^{(i)}-x^{(j)}||^{2}}{2\sigma ^{2}})$ 也就是说,当两个向量越接近时,它们的核函数越接近于1:越远时,核函数越接近于0.在svm里,使用$K_{ij}$而不使用$(x^{(i)})^{T}x^{(j)}$,应该是就像神经网络或者逻辑回归里的激活函数吧.反正,以后出现两个样本内积的地方,都换成相应的核函数.那么从3最后求解的式子就变成了:…