最近阅读了李航的<统计学习方法(第二版)>,对AdaBoost算法进行了学习. 在第八章的8.1.3小节中,举了一个具体的算法计算实例.美中不足的是书上只给出了数值解,这里用代码将它实现一下,算作一个课后作业. 一.算法简述 Adaboost算法最终输出一个全局分类模型,由多个基本分类模型组成,每个分类模型有一定的权重,用于表示该基本分类模型的可信度.最终根据各基本分类模型的预测结果乘以其权重,通过表决来生成最终的预测(分类)结果. AdaBoost算法的训练流程图如下: AdaBoost在训…
1. SVM的最优化问题 2.拉格朗日乘数法,对偶条件KKT条件 3.软件隔支持向量机 4.非线性支持向量机,核函数 5.SMO算法 1. SVM的最优化问题 支持向量机(Support Vector Machine, SVM)的基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大.SVM是用来解决二分类问题的有监督学习算法,在引入了核方法之后SVM也可以用来解决非线性问题. 一般SVM有下面三种: 硬间隔支持向量机(线性可分支持向量机):当训练数据线性可分时,可通过硬间隔最大…
作者:桂. 时间:2017-05-13  21:52:14 链接:http://www.cnblogs.com/xingshansi/p/6850684.html 前言 主要记录SVM的相关知识,参考的是李航的<统计学习方法>,最后的SMO优化算法(Sequential minimal optimization)是二次规划的优化算法,不涉及整体思路的理解,这里打算跳过,以后用到了再来回顾. 一.线性可分支撑向量机 A-问题分析 不同于感知器Perceptron,SVM希望所有点到分离面的最小距…
目录 SVM 1. 定义 1.1 函数间隔和几何间隔 1.2 间隔最大化 2. 线性可分SVM 2.1 对偶问题 2.2 序列最小最优算法(SMO) 3. 线性不可分SVM 3.1 松弛变量 3.2 求解对偶问题 3.3 支持向量求解参数\(w,b\) 4. 非线性SVM 5. Reference: SVM   支持向量机是一种二分类模型,它以间隔最大作为优化目标,因此它比感知机仅仅以误分类推动的模型要优胜不少.数据线性可分时,SVM直接以间隔最大训练出一个线性分类模型.当数据线性不可分时,SV…
K近邻法 1基本概念 K近邻法,是一种基本分类和回归规则.根据已有的训练数据集(含有标签),对于新的实例,根据其最近的k个近邻的类别,通过多数表决的方式进行预测. 2模型相关 2.1 距离的度量方式 定义距离 (1)欧式距离:p=2. (2)曼哈顿距离:p=1. (3)各坐标的最大值:p=∞. 2.2 K值的选择 通常使用交叉验证法来选取最优的k值. k值大小的影响: k越小,只有距该点较近的实例才会起作用,学习的近似误差会较小.但此时又会对这些近邻的实例很敏感,如果紧邻点存在噪声,预测就会出错…
CH01 统计学方法概论 前言 章节目录 统计学习 监督学习 基本概念 问题的形式化 统计学习三要素 模型 策略 算法 模型评估与模型选择 训练误差与测试误差 过拟合与模型选择 正则化与交叉验证 正则化 交叉验证 泛化能力 泛化误差 泛化误差上界 生成模型与判别模型 分类问题 标注问题 回归问题 导读 直接看目录结构,会感觉有点乱,就层级结构来讲感觉并不整齐. 可以看本章概要部分,摘录几点,希望对本章内容编排的理解有帮助: 1. 统计学习三要素对理解统计学习方法起到提纲挈领的作用 2. 本书主要…
前言 支持向量机(SVM)是一种很重要的机器学习分类算法,本身是一种线性分类算法,但是由于加入了核技巧,使得SVM也可以进行非线性数据的分类:SVM本来是一种二分类分类器,但是可以扩展到多分类,本篇不会进行对其推导一步一步罗列公式,因为当你真正照着书籍进行推导后你就会发现他其实没那么难,主要是动手.本篇主要集中与实现,即使用著名的序列最小最优化(SMO)算法进行求解,本篇实现的代码主要参考了Platt J. Sequential minimal optimization: A fast algo…
当前,机器学习和数据科学都是很重要和热门的相关学科,需要深入地研究学习才能精通. <机器学习与数据科学基于R的统计学习方法>试图指导读者掌握如何完成涉及机器学习的数据科学项目.为数据科学家提供一些在统计学习领域会用到的工具和技巧,涉及数据连接.数据处理.探索性数据分析.监督机器学习.非监督机器学习和模 型评估.选用的是R统计环境,所有代码示例都是用R语言编写的,涉及众多流行的R包和数据集. 适合数据科学家.数据分析师.软件开发者以及需要了解数据科学和机器学习方法的科研人员阅读参考. 学习参考:…
朴素贝叶斯法 首先训练朴素贝叶斯模型,对应算法4.1(1),分别计算先验概率及条件概率,分别存在字典priorP和condP中(初始化函数中定义).其中,计算一个向量各元素频率的操作反复出现,定义为count函数. # 初始化函数定义了先验概率和条件概率字典,并训练模型 def __init__(self, data, label): self.priorP = {} self.condP = {} self.train(data, label) count函数,输入一个向量,输出一个字典,包含…
作者:桂. 时间:2017-04-26  12:17:42 链接:http://www.cnblogs.com/xingshansi/p/6767980.html 前言 之前分析的感知机.主成分分析(Principle component analysis, PCA)包括后面看的支撑向量机(Support vector machines, SVM),都有用到核函数.核函数是将信号映射到高维,而PCA一般用来降维.这里简单梳理一下核函数的知识: 1)核函数基本概念; 2)核函数的意义; 内容为自己…