机器学习
-
Spark机器学习MLlib系列1(for python)--数据类型,向量,分布式矩阵,API
Spark机器学习MLlib系列1(for python)--数据类型,向量,分布式矩阵,API 关键词:Local vector,Labeled point,Local matrix,Distributed matrix,RowMatrix,IndexedRowMatrix,CoordinateMatrix,BlockMatrix。 前言:MLlib支持本…
-
《机器学习基石》—Linear Models for Classification
到目前为止,我们学习了线性分类,线性回归,逻辑回归这三种模型。以下是它们的pointwise损失函数对比(为了更容易对比,都把它们写作s和y的函数,s是wTx,表示线性打分的分数): 把这几个损失函数画在一张图上: 如果把逻辑回归的损失函数ce做一个适当的放缩,则可以得到下图: 可以看出,平方误差和放缩后的交叉熵误差是0/1误差的上限,这里以放缩后的ce举例…
-
《机器学习基石》—噪声和错误
由一个条件概率来产生数据的标签y,相当于一个确定函数加上噪声: 2 错误衡量方式 这里我们介绍pointwise的错误衡量方式。所谓point wise就是可以对于一个点计算它的错误。 常见的有两种pointwise错误衡量方式:0/1错误和平方错误: 、 01错误用于分类,平方错误用于回归。 我们之前推导VCbound使用的错误衡量方式就是01错误…
-
《机器学习基石》—VC维
VC维其实就是第一个break point的之前的样本容量。标准定义是:对一个假设空间,如果存在N个样本能够被假设空间中的h按所有可能的2的N次方种形式分开,则称该假设空间能够把N个样本打散;假设空间的VC维就是它能打散的最大样本数目N。若对任意N,总存在一组样本使得假设空间能将它们打散,则函数集的VC维是无穷大: 几种假设空间的VC维如下: 2 推导d…
-
《机器学习基石》—线性回归
错误衡量使用平方错误: 注:这里Eout计算是在考虑噪声的情况下,可以将x和y看作满足一个联合概率分布。 2 线性回归算法 先把训练集误差Ein推导成矩阵形式: 即: 可以证明Ein关于w是连续,可微的凸函数,因此最小的点就在梯度为0的地方,那么剩下的问题就是来求梯度为0的w: 先把Ein展开成w的二次形式: 求这个函数的梯度,与w是一维的情况类似…
-
《机器学习基石》—非线性变换
所谓非线性变换,就是把原始的特征做非线性变换,得到一个新的特征,使用这个新的特征来做线性的分类,则对应到原始的特征空间中,相当于做了非线性的分类。非线性变换的好处是,算法将有更多的选择,Ein可以做的更低。 例如使用二次变换: 则Z空间中的一个直线分类边界,对应到原来空间中是一个二次曲线边界。可能是圆,椭圆,双曲线,抛物线,旋转后的椭圆,直线………
-
《机器学习基石》—过拟合风险
过拟合就是Ein很小,而Eout很大的情况。产生过拟合的三个原因是,使用了过大的VC维,噪声,数据量太小: 2 如何解决过拟合 (1)从简单的model开始做; (2)数据清理/裁剪: (3)收集更多的数据; (4)数据提示; (5)正则化(后面介绍); (6)验证(后面介绍)。 数据清理/裁剪:数据清理指修正标签,数据裁剪是指直接删除标签错误的数据…
-
《机器学习基石》—正则化
本节涉及的知识点包括: (1)所谓正则化,就是在原来的假设空间上加上一定限制条件; (2)推导线性回归中引入L2正则; (3)带正则化约束条件的问题 等价于 无约束的加正则项的augmented error; (4)VC维解释正则的好处; (5)选择一般正则项的三个原则; (6)L1正则和L2正则的对比; 1 正则化的概念 所谓正则化假设空间,就是带有限制条…
-
《机器学习基石》—验证
本节涉及的知识点: (1)用验证来选择参数和模型; (2)验证的流程; (3)验证集大小的选择; (4)留一交叉验证的流程; (5)留一交叉验证的理论保证; (6)留一交叉验证的缺点; (7)k折交叉验证的流程。 我们可以用验证来从如下的组合中做选择: 验证的流程是:先划分训练集Dt和验证集Dv,在训练集上选择不同的模型和参数做训练,得到不同的模型。…
-
《机器学习基石》—三个有用的机器学习原则
使用模型时尽量使用简单的模型。从简单的模型开始做起。 2 避免抽样偏差 所谓抽样偏差,是指训练数据集和测试数据集不是由同一个分布产生的。 比如验证集是从训练集中随机取一部分得到的,但是测试集却是时间轴靠后的数据,这样即使在验证集上做的很好,测试的时候却可能没那么好。 VC理论中,一个前提就是训练集和测试集要来源于同一个分布。因此抽样偏差将导致VC理论失效…