注:这是一份学习笔记,记录的是参考文献中的可扩展机器学习的一些内容,英文的PPT可见参考文献的链接。这个只是自己的学习笔记,对原来教程中的内容进行了梳理,有些图也是引用的原来的教程,若内容上有任何错误,希望与我联系,若内容有侵权,同样也希望告知,我会尽快删除。这部分本应该加上实验的部分,实验的部分在后期有时间再补上。
可扩展机器学习系列主要包括以下几个部分:
概述 - Spark分布式处理 - 线性回归(linear Regression) - 梯度下降(Gradient Descent) - 分类——点击率预测(Click-through Rate Prediction) - 神经科学
回归(Regression)问题的目标是从观测样本中学习到一个到连续的标签值的映射,这是一个监督学习的问题。回归问题有:
上述便是线性回归的基本形式,对于线性回归,有以下的一些优点:
线性回归的目标是找到一条直线或者称为超平面能够最好的拟合样本,如下面的1−D1-D的情况:
其中,x轴表示的特征,y轴表示的是标签。此时的线性映射为:
求解模型的目的是要使用模型,即在新的数据集上使用模型,若其能在新的数据集上表现的很好,说明求解出的模型具有很好的泛化能力(Generalization ability)。最小均方回归容易导致过拟合,因为其对训练数据过分拟合。过拟合的情况如下图所示:
简单的模型通常更具有泛化能力(Occam剃刀)。
对于监督学习的流程的具体过程见下图:
对于具体的监督学习任务,可以拆分成下面的过程:
下面是每一步具体的操作。
实验的目标是要根据音乐中声音特征预测音乐所属的年代,原始数据可以从UCI的ML库中找到Millionsong Dataset
,地址为YearPredictionMSD Data Set。原始数据中是1980到2014年间的西方的商业唱片,特征为平均12音色,标签为发行年代。
将数据集分成训练集和测试集,训练集用于训练,而测试集用于评价模型的优劣。测试误差显示出我们的模型是否具有很好的泛化能力。
此时,数据集中就包括了训练集,验证集和测试集,其中,训练集用于训练模型,验证集用于评估不同的模型,测试集则是评估最终的模型的准确性。
对于模型中的一些自由参数,或称为超参数(hyperparameter),可以采用网格搜索(Grid Search)的方法获取,网格搜索是指定义好区间,在区间上取固定的长度来取得不同的值,如下图所示:
预测是指对新的观测数据,利用训练好的模型对其进行预测,得到相应的年代。
如:
矩阵的乘法也可以通过矩阵对应的列和行的外积的和实现。
如:
在分布式实现的时候,可以采用如下的方法实现矩阵的计算:
若需要PDF版本,请关注我的新浪博客@赵_志_勇,私信你的邮箱地址给我。