标签:
一、《机器学习》第一张 绪论
1、机器学习所研究的主要内容,是关于在计算机上从数据中产生“模型”(model)的算法,即“学习算法”(learning algorithm)
2、基本概念:
数据集(data set):一组记录的集合
示例(instance)/样本(sample):一条记录对事件或对象的描述
属性(attribute)/特征(feature):反映事件或对象在某方面的表现或性质的事项
属性值(attribute value):属性上的取值
属性空间(attribute space)/样本空间(sample space):属性张成的空间
特征向量(feature vector):一个示例对应空间中的个点(坐标向量),把一个示例称为特征向量
维数(dimensionality):d个属性描述,每个示例均为d维向量
学习(learning)/训练(training):从数据中学得模型的过程称为学习或训练,通过执行某个学习算法完成
训练数据(training data):训练过程中使用的数据称为训练数据
训练样本(training sample):训练数据中的每个样本称为训练样本
训练集(training set):训练样本组成的集合
假设(hypothesis):学得模型对应了关于数据的某种潜在规律,故也称假设
真相/真实(ground-truth):数据潜在的自身规律称为真相
学习器(learner):学习过程就是找出或逼近真相,将模型称为学习器
标记(label):关于示例结果的信息,如“好”、“坏”
样例(example):拥有了标记信息的示例
标记空间/输出空间(label space):所有标记的集合(所有结果的结合)
分类(classification):预测离散值的学习任务称为分类
回归(regression):预测连续值的学习任务称为回归
二分类(binary classification)任务:只涉及两个类别的任务,一个正类(positive class),一个反类(negative class)
多分类(multi-class classification)任务:涉及多个类别的任务
测试(testing):学得模型后,使用其进行预测的过程称为测试,被预测的样本称为测试样本(testing sample)
聚类(clustering):将训练集分成若干组,每组称为一个簇(cluster)
根据是否有标记信息,学习任务大致分为两类:监督学习(supervised learning),回归的代表;无监督学习(unsupervised learning),聚类的代表
泛化(generalization)能力:学得模型适用于新样本的能力,强泛化能力的模型能很好适用于整个样本空间
独立同分布(independent and identically distributed,简称i.i.d):通常假设样本空间全体服从一个未知分布,我们获得的每个样本都是独立地从这个分布上获得的,即独立同分布
归纳(induction)是从特殊到一般的泛化(generalization)过程,即从一般事实归结出一般性规律
演绎(deduction)是从一般到特殊的特化(specialization)过程,即从基本原理推演出具体情况
3、我们把学习过程看作一个在所有假设组成的空间中进行搜索的过程,搜索目标是找到与训练集“匹配”(fit)的假设
4、现实中,我们常面临很大的假设空间,但学习过程是基于有限样本训练集的,所有可能有多个假设与训练集一直,即存在一个与训练集一致的“假设集合”,称之为“版本空间”(version space)
5、机器学习算法在学习的过程中对某种类型假设的偏好,称为归纳偏好(inductive bias),用于处理训练集中“等效”的假设
6、奥卡姆剃刀(Occam‘s razor):是一种常用的、自然科学研究中的最基本的原则,即“若有多个假设与观察一致,则选择最简单的那个”
7、“没有免费的午餐”定力(No Free Lunch Theorem,简称NFL定理),证明模型的总误差与学习算法无关,再假设f均匀分布的前提下。其寓意:脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义
8、机器学习是人工智能(artificial intelligence)研究发展到一定阶段的必然产物。发展历程,二十世纪五十年代到七十年代初,“推理期”,赋予机器逻辑推理能力,人们基于符号知识表示、通过演绎推理技术取得很大成就;二十世纪七十年代中期开始,“知识期”,使机器拥有知识,大量专家系统问世,人们基于符号知识表示、通过获取和利用领域知识来建立专家系统;二十世纪八十年代以后,“学习期”,“从样例中学习”,“统计学习”
9、对于深度学习复杂度高,若数据样本少则容易“过拟合”。当前人类进入“大数据时代”,数据储量与计算设备有了大发展,解决了数据量、计算时间的问题
10、数据库领域的研究为“数据挖掘”(data mining)提供数据管理技术,而机器学习和统计学的研究为数据挖掘提供数据分析技术。统计学主要是通过机器学习对数据挖掘发挥影响,而机器学习领域和数据库领域则是数据挖掘的两大支撑。
二、《机器学习》第二章 模型评估与选择
1、基本概念
错误率(error rate)E=a/m
精度(accuracy)1-a/m
误差(error):学习器的实际预测输出与样本的真实输出之间的差异称为误差
训练误差(training error)/经验误差(empirical error):学习器在训练集上的误差称为训练误差或经验误差
泛化误差(generalization error):学习器在新样本上的误差称为泛化误差
过拟合(overfitting):学习器把训练样本学得“太好”,把训练样本自身的一些特点当做了所有潜在样本的一般性质,导致泛化能力下降
欠拟合(underfitting):对训练样本的一般性质尚未学好
2、通过实验测试来对学习器的泛化误差进行评估并做出模型选择,需要一个测试集来测试学习器对新样本的判别能力,然后以测试集上的测试误差作为泛化误差的近似。
3、留出法(hold-out):将数据集D划分为两个互斥集合,一个为训练集S,一个为测试集T
①需要注意训练/测试集划分要尽可能保持数据分布一致。分层采样。
②需要注意即便给定训练/测试集的样本比例,仍存在多种划分方式。若干次随机划分、重复进行实验评估后取均值。
③训练集和测试集的样本数量分别对模型的精度、评估的精度作用。一般取2/3~4/5的样本用于训练,其余用于测试。
4、交叉验证法(cross validation):将数据集D划分为k个大小相似的互斥子集,每个子集尽量保持分布一致(从D中分层采样),每次用k-1个子集做训练集,1个子集做测试集,得到k组训练和测试结果,取均值。又称“k折交叉验证”(k-fold cross validation),k常用取10。为减小样本划分的差别,可重复p次,得到p次k折交叉验证结果均值。
5、留一法(Leave-One-Out,简称LOO):交叉验证法的特例,假定数据集D中有m个样本,则令k=m。留一法的结果往往被认为比较准确,但计算开销很大。
6、自助法,有m个训练样本,1/3的测试集。
7、在进行模型评估与选择时,除了要对适用学习算法进行选择,还需对算法参数进行设定,这就是通常所说的“参数调节”或简称“调参”。
8、模型评估与选择中用于评估测试的数据集常称为“验证集”(validation set)
9、性能度量(performance measure):对学习器的泛化性能评估,不仅需要有效可行的实验估计方法,还需要有衡量泛化能力的评价标准,叫性能度量
10、均方误差(mean squared error)、错误率、精度、查准率P、查全率R
11、P-R曲线(查准率-查全率曲线)、ROC曲线(Receiver Operating Characteristic,受试者工作特征)、AUC(Area Under ROC Curve,ROC曲线下部面积)、代价曲线(cost curve)
12、比较检验:假设检验、交叉验证t检验、McNemar检验、Friedman检验与Nemenyi后续检验、偏差与方差
http://www.csdn.net/article/2014-06-27/2820429
二、学习方式
1、监督式学习:输入数据称为“训练数据”,每组训练数据有明确标示或“结果”,建立预测模型是一个学习过程,将预测结果与实际结果比较并不断调整,直到模型预测结果达到一个预期的准确率。模型常用于分类问题和回归问题。常用算法又逻辑回归(Logistic Regression)和反向传递神经网络(Back Propagation Neural Network)。
2、非监督式学习:数据无特别标识,学习模型是为了推断出数据的一些内在结构。常用于关联规则的学习、聚类等。常用算法有Apriori算法以及K-Means算法
3、半监督式学习:输入数据部分有标识,模型首先需要学习数据内在结构以便合理组织数据进行预测。常用于分类、回归。常用算法有图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM)。
4、强化学习:模型对于输入数据直接反馈,做出调整。
三、算法分类
1、算法分类——回归算法:采用对误差的衡量来探索变量之间的关系的一类算法。常见的回归算法包括:最小二乘法(Ordinary Least Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise Regression),多元自适应回归样条(Multivariate Adaptive Regression Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing)。
2、算法分类——基于实例的算法:通常用来对决策问题简历模型,先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳匹配。常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM) 。
3、算法分类——正则化方法:其他(通常是回归)算法的延伸,根据算法复杂度进行调整。对简单予以奖励而对复杂予以惩罚。常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net)。
4、算法分类——决策树学习:决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。常见的算法包括:分类及回归树(Classification And Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5, Chi-squared Automatic Interaction Detection(CHAID), Decision Stump, 随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM)
【书】遵循“分而治之”策略,逐级逐属性进行划分决策
5、算法分类——贝叶斯方法:常见算法包括:朴素贝叶斯算法,平均单依赖估计(Averaged One-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN)。
6、算法分类——基于核的算法:基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。 常见的基于核的算法包括:支持向量机(Support Vector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等。
7、算法分类——聚类算法:和回归同类。试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。
8、算法分类——关联规则学习:通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。常见算法包括 Apriori算法和Eclat算法等。
9、算法分类——人工神经网络:是一类模式匹配算法。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。(其中深度学习就是其中的一类算法,我们会单独讨论),重要的人工神经网络算法包括:感知器神经网络(Perceptron Neural Network), 反向传递(Back Propagation), Hopfield网络,自组织映射(Self-Organizing Map, SOM)。学习矢量量化(Learning Vector Quantization, LVQ)
10、算法分类——深度学习:深度学习算法是对人工神经网络的发展。很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。常见的深度学习算法包括:受限波尔兹曼机(Restricted Boltzmann Machine, RBN), Deep Belief Networks(DBN),卷积网络(Convolutional Network), 堆栈式自动编码器(Stacked Auto-encoders)。
11、算法分类——降低维度算法:像聚类算法一样,降低维度算法试图分析数据的内在结构,不过降低维度算法是以非监督学习的方式试图利用较少的信息来归纳或者解释数据。这类算法可以用于高维数据的可视化或者用来简化数据以便监督式学习使用。常见的算法包括:主成份分析(Principle Component Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS), Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS), 投影追踪(Projection Pursuit)等。
12、算法分类——集成算法:用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。常见的算法包括:Boosting, Bootstrapped Aggregation(Bagging), AdaBoost,堆叠泛化(Stacked Generalization, Blending),梯度推进机(Gradient Boosting Machine, GBM),随机森林(Random Forest)。
http://www.csdn.net/article/2014-06-27/2820429
http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html
标签:
原文地址:http://blog.csdn.net/jianbinzheng/article/details/51868315