Spark机器学习基础-机器学习跟深度学习区别、基本概念等

01-Spark机器学习基础

  • SparkMllib—Spark机器学习库

1.机器学习和大数据的区别和联系

大数据时代的改变

  • 大数据时代究竟改变了什么?—思维方式
    • 1.数据重要性----数据资源------数据资产(增值)
    • 2.方法论:基于知识的理论完美主义—基于数据的历史经验主义
    • 3.数据分析:统计学(抽样理论)------数据科学(大数据)
      • 数据科学家:大数据技术+机器学习算法技术+多年的业务经验(选择一个行业后不要轻易跳出这个行业!!!)
    • 4.计算智能:复杂算法------简单算法(MapReduce)
    • 5.决策方面:基于目标决策----基于数据决策(科学)
    • 6.业务方面:基于业务的数据化------基于数据的业务化
    • 7.产业竞合:以战略为中心-------以数据为中心

大数据的4V特征

  • 数据量大
    • MB----GB----TP----PB----ZB(2**10)—指数的增长速率最快
    • HDFS、MR、HIVE、SPARK
  • 数据种类多
    • 结构化数据:RDBMS中数据为主,Sql
    • 半结构化数据:XML或HTML,JSON
    • 非结构化数据:文本、图像、音频
  • 速度快
    • 数据的增长速度快:数据呈现的指数级别的增长
    • 数据的处理速度快:离线的处理(MR—Hive)-----实时处理(Spark框架、Flink、Storm)
  • 价值密度低
    • 价值密度=有价值的数据/全量的数据
    • 呈现价值密度低的趋势-----有价值的数据变得更加多了
    • 利用机器学习算法解决问题

2.机器学习的基础概念

人工智能的应用场景

  • 图像识别
  • 无人驾驶
  • 智能翻译
  • 语音识别
  • 医疗智能诊断
  • 数据挖掘
  • 人工智能发展历史
    • 跳棋
    • 象棋
    • 围棋

人工智能和机器学习的区别和联系

  • 机器学习是人工智能的分支,其他分支还有模式识别、数据挖掘
  • 深度学习是机器学习的一种实现基础,是为了解决机器学习中一些图像识别或语音识别领域中识别的不足
  • 数据、数据分析、数据挖掘区别和联系
    • 数据:观测值或测量值
    • 信息:可信的数据
    • 数据分析:从数据到信息的过程
    • 数据挖掘:信息到有价值的信息
    • 机器学习方法:解决数据挖掘这件事情或模式识别这类事情
    • 数据------(数据分析)—信息------(机器学习-数据挖掘)-----有价值的信息

3.如何构建机器学习模型

什么是机器学习

  • 机器学习是通过Cpu或Gpu的计算的手段,结合数据,构建机器学习模型,通过模型对现实事件作出预测
  • 机器学习=机器学习Cpu或Gpu+机器学习算法+数据
  • 什么问题不是机器学习问题?
    • 确定性问题、统计问题
  • 机器学习通过大量的数据得到预测的结果,预测的过程,称之为机器学习问题。
  • 基于规则的学习和基于模型的学习
    • 基于规则的学习–利用人工指定的规则
    • 基于模型的学习
      • X–特征、自变量、定义域
      • F-模型、映射、函数
      • Y–因变量、值域、类别标签列
      • y=kx+b,其中k和b叫做参数,如果k和b知道了,输入一个x就可以得到一个y
    • 机器学习学习的是什么?
      • 机器学习学习的是模型,更本质上讲学习的是参数

掌握机器学习数据集的概念

  • 数据集(data set):记录(数据)的集合
  • 示例(instance)或样本(sample):每条记录是关于一个事件或对象的描述,被称为示例或样本
  • 属性(attribute)或特征(feature):事件或对象在某方面的表现或性质的事项
  • 属性值(attribute value):属性上的取值
  • 属性空间(attribute )、样本空间(sample space)或输入空间:属性张成的空间
  • 从数据中学得模型的过程称为“学习”(learning)或“训练”(training),这个过程通过执行某个学习算法来完成。
  • 训练过程中使用的数据称为“训练数据”(training data)
  • 每个样本称为一个训练样本(training sample)
  • 训练样本组成的集合称为训练集(training set)
  • 学得模型对应了关于算计的某种潜在规律,称为假设(hypothesis)
  • 潜在规律自身,被称为真相或真实(ground-truth)
  • 关于示例结果的信息,称为标记(label)
  • 拥有标记信息的示例,称为样例(example)
  • 如果预测的是连续值,学习任务称为“回归”(regression)
  • 测试(testing):学得模型后,使用其进行预测的过程
  • 测试样本(testing sample):被预测的样本
  • 泛化能力(generalization):学得模型适用于新样本的能力
  • 学习过程:学习过程可以看作一个在所有假设(hypothesis)组成的空间中进行的探索的过程,探索目标是找到与训练集匹配(fit)的假设。
  • 通过结果进行误差的衡量
  • 绝对误差
  • 平方误差
  • 训练误差
  • 测试误差
  • 分类问题中的性能矩阵/混淆矩阵(accuracy,precision,recall,F1-Score,ROC,AUC)

机器学习的分类

  • 监督学习

    • 邮件分类问题:邮件的种类(class label)是离散化的,非连续值的预测问题,称之为分类问题。
    • 房价预测:房屋的价格(class label)是一系列的连续值,连续值的预测问题,称之为回归问题。
    • 上述两个问题的共同点:都有类别标签(class label)-结果
  • 无监督学习

    • 没有类别标签列(class label)的学习方式
    • 聚类:通过特征之间的相似性进行判断
    • 降维:PCA或SVD,区别于特征选择(从x1或x2中选择一个特征)
  • 半监督学习

    • 一部分数据有标签,一部分数据没有标签
    • 基于聚类的假设
      • 对所有的数据集进行聚类,聚类后一个组里面有的数据有标签,有的数据没有标签,获取有标签的数据通过少数服从多数的方法选择标签数据较多的类别标签,对该组中没有标记的样本加上同样的类别标签,形成都具有标记的样本。
      • 通过监督学习进行分类或回归
  • 强化学习

    • 解决连续预测问题-围棋比赛、自动驾驶
  • 迁移学习

    • 模型适应性问题
  • 深度学习

    • 解决特征提取问题
  • 深度强化迁移学习

  • 机器学习的三要素

    • 数据+算法+策略

    • 模型+算法+策略

      • 模型

        • 统计学习首要考虑的问题是学习什么样的模型。在监督学习过程中,==模型就是所要学习的条件概率分布或决策函数。==模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数。例如,假设决策函数是输入变量的线性函数,那么模型的假设空间就是所有这些线性函数构成的函数集合。假设空间中的模型一般有无穷多个。

          假设空间用F表示。假设空间可以定义为决策函数的集合

        KaTeX parse error: No such environment: eqnarray at position 8: \begin{̲e̲q̲n̲a̲r̲r̲a̲y̲}̲ F=&\{f|Y=f(X…

        • 其中,X和Y是定义在输入空间x和输出空间Y上的变量。这时F通常是由一个参数向量决定的函数族:
        • 其中X和Y是定义在输入空间X和输出空间Y上的标量。
          这时F通常是由一个参数向量决定的函数族

        F = { f ∣ Y = f θ ( X ) , θ ∈ R n } , F=\{f|Y=f_\theta(X),\theta∈R^n\}, F={fY=fθ(X),θRn},

        • 参数向量θ取值于n维欧氏空间Rn,称为参数空间(parameter space)。假设空间也可以定义为条件概率的集合

        F = { P ∣ P ( Y ∣ X ) } , F=\{P|P(Y|X)\}, F={PP(YX)},

        • 其中,X和Y是定义在输入空间x和输出空间Y上的随机变量。这时F通常是由一个参数向量决定的条件概率分布族

        F = { P ∣ P θ ( Y ∣ X ) , θ ∈ R n } , F=\{P|P_\theta(Y|X),\theta∈R^n\},\\ F={PPθ(YX),θRn},

        • 参数向量θ取值于n维欧氏空间Rn,也称为参数空间。
      • 算法

        • 算法是指学习模型的具体计算方法, 机器学习的算法就是求解最优化问题的算法。如果最优化问题有显示的解析解,这个最优化问题就比较简单,但通常这个解析解不存在,所以就需要利用数值计算的方法来求解。机器学习可以利用已有的最优化算法,也可以开发独自的最优化算法。
        • 我们人类自身常规的计算的解析解
        • 机器学习中的最优解的过程-梯度下降法和牛顿法
      • 策略

        • 有了模型的假设空间,统计学习接着需要考虑的是按照什么样的准则学习或选择最优的模型。统计学习的目标在于从假设空间中选取最优模型。

        • 首先引入损失函数与风险函数的概念。损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。

        • 监督学习问题是在假设空间F中选取模型f作为决策函数,对于 给定的输入X,由f(X)给出相应的输出Y,这个输出的预测值f(X)与真实值Y可能一致也可能不一致,用一个损失函数(loss function)或代价函数(cost function)来度量预测错误的程度。损失函数是f(X)和Y的非负实值函数,记作L(Y,f(X))。

        • 损失函数度量模型一次预测的好坏,常用的损失函数有:

          • 01损失函数–-用于评价分类问题

          1.0    损 失 函 数 ( l o s s   f u n c t i o n ) L ( Y , f ( x ) ) = { 1 , Y ≠ f ( x ) 0 , Y = f ( x ) 1.0\ \ 损失函数(loss\ function)\\ L(Y,f(x)) = \begin{cases} 1, Y\neq f(x)\\ 0, Y=f(x)\\ \end{cases} 1.0  (loss function)L(Y,f(x))={1,Y=f(x)0,Y=f(x)

          • 平方损失—适用于评价回归问题

          2.0    平 方 损 失 函 数 ( q u a d r a t i c   l o s s   f u n c t i o n ) L ( Y , f ( x ) ) = ( Y − f ( x ) ) 2 2.0\ \ 平方损失函数(quadratic\ loss\ function)\\ L(Y,f(x))=(Y-f(x))^2 2.0  (quadratic loss function)L(Y,f(x))=(Yf(x))2

          • 绝对值损失 分类和回归

          绝 对 值 损 失 函 数 ( a b s o l u t e   l o s s   f u n c t i o n ) L ( Y , f ( x ) ) = ∣ Y − f ( x ) ∣ 绝对值损失函数(absolute\ loss\ function)\\ L(Y,f(x))=|Y-f(x)| (absolute loss function)L(Y,f(x))=Yf(x)

          • 负log损失—分类

          4.0    对 数 损 失 函 数 ( l o g a r i t h m i c   l o s s   f u n c t i o n ) 或 对 数 似 然 损 失 函 数 ( l o f − l i k e l i h o o d   l o s s   f u n c t i o n ) L ( Y , f ( x ) ) = − l o g P ( Y ∣ X ) 4.0\ \ 对数损失函数(logarithmic\ loss\ function)\\或对数似然损失函数(lof-likelihood\ loss\ function)\\ L(Y,f(x))=-logP(Y|X) 4.0  (logarithmic loss function)(loflikelihood loss function)L(Y,f(x))=logP(YX)

          • 经验风险和结构风险

            • 损失函数的期望

              • 由于模型的输入,输出(X,Y)是随机变量,遵循联合分布P(X,Y),所以损失函数的期望是
                R e x p ( f ) = E p [ L ( Y , f ( x ) ] = ∫ x × y L ( y , f ( x ) ) P ( x , y ) d x d y R_{exp}(f)=E_p[L(Y,f(x)]=\int_{x\times y}L(y,f(x))P(x,y)d_xd_y Rexp(f)=Ep[L(Y,f(x)]=x×yL(y,f(x))P(x,y)dxdy

              • 这是理论上模型f(x)关于联合分布P(X,Y)的平均意义下的损失,称为风险函数(risk function)或期望损失(expected loss)。学习的目标就是选择期望风险最小的模型,由于联合分布P(X,Y)是未知的,Rexp(f)不能直接计算。

            • 经验风险—平均风险

              • 模型f(x)关于训练数据集的平均损失称之为经验风险(emprical risk)或经验损失(empirical loss),记作R(emp)

              R e m p ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{emp}(f)=\frac{1}{N}\sum^{N}_{i=1}L(y_i,f(x_i)) Remp(f)=N1i=1NL(yi,f(xi))

              • 期望风险R(emp)是模型关于联合分布的期望损失,经验风险R(emp)是模型关于训练样本集的平均损失。根据大数定律,当样本容量N趋于无穷时,经验风险R(emp)趋于期望风险R(exp),所以一个很自然的想法就是利用经验风险估计期望风险。但是,由于现实中训练样本数目有限甚至很小,所以用经验风险估计期望风险常常不理想,要对经验风险进行一定的矫正,这就是关系到监督学习的两个基本策略:经验风险最小化和结构风险最小化。
            • 经验风险最小化

              • 在损失函数以及训练数据集确定的情况下,经验风险函数式就可以确定,经验风险最小化(emprical risk minimization,ERM)的策略认为,经验风险最小的模型是最优模型。

              m i n f ∈ F 1 N ∑ i = 1 n L ( y i , f ( x i ) ) min_{f\in F}\frac{1}{N}\sum^{n}_{i=1}L(y_i,f(x_i)) minfFN1i=1nL(yi,f(xi))

              • 当样本容量足够大的时候,经验风险最小化能保证有很好的学习效果,在现实中被广泛应用,比如,极大似然估计(maximum likelihood estimation)就是经验风险最小化的一个例子,当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。
            • 模型经验风险最小化

              • 决策函数—平方损失
              • 类条件函数—极大似然估计
            • 结构风险

              • 但是,当样本容量很小时,经验风险最小化的学习的效果就未必很好,会产生“过拟合”现象。
              • 结构风险最小化(structural risk minimization,SRM)是为了防止过拟合而提出来的策略。结构风险在经验风险基础上加上表示模型复杂度的正则化项(regularizer)或罚项(penalty term)。在假设空间,损失函数以及训练数据集确定的情况下,结构风险的定义是:

              R s r m ( f ) = 1 N ∑ i = 1 n L ( y i , f ( x i ) ) + λ J ( f ) R_{srm}(f)=\frac{1}{N}\sum^{n}_{i=1}L(y_i,f(x_i))+\lambda J(f) Rsrm(f)=N1i=1nL(yi,f(xi))+λJ(f)

              • 其中J(f)为模型的复杂度,是定义在假设空间F上的泛函。
            • 结构风险最小化

              • 模型f越复杂,复杂度J(f)就越大;反之,模型f就越简单,复杂度J(f)就越小,也就是说,复杂度表示对复杂模型的惩罚,lambda>=0是系数,是用以权衡经验风险和模型复杂度,结构风险小需要经验风险与模型复杂度同时小,结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。

              m i n f ∈ F 1 N ∑ i = 1 n L ( y i , f ( x i ) ) + λ J ( f ) min_{f\in F}\frac{1}{N}\sum^{n}_{i=1}L(y_i,f(x_i))+\lambda J(f) minfFN1i=1nL(yi,f(xi))+λJ(f)

            • 模型评估和模型选择

              • 当损失函数给定时,基于损失函数的模型的训练误差和模型的测试误差就自然成为了学习方法评估的标准。
              • 训练误差是模型Y=f(x)关于训练数据集的平均损失

              R e m p ( f ) = 1 N ∑ i = 1 N L ( y i , f ( x i ) ) R_{emp}(f)=\frac{1}{N}\sum^{N}_{i=1}L(y_i,f(x_i)) Remp(f)=N1i=1NL(yi,f(xi))

              • 其中N是训练样本容量

              测 试 误 差 是 模 型 Y = f ( x ) 关 于 测 试 数 据 集 的 平 均 损 失 e t e s t = 1 N ′ ∑ i = 1 N ′ L ( y i , f ( x i ) ) 测试误差是模型Y=f(x)关于测试数据集的平均损失\\ e_{test}=\frac{1}{N^{'}}\sum^{N^{'}}_{i=1}L(y_i,f(x_i)) Y=f(x)etest=N1i=1NL(yi,f(xi))

              • N’是测试样本容量
              • Spark机器学习基础-机器学习跟深度学习区别、基本概念等_第1张图片
          • 正则化

            • 经验风险较小的模型可能较复杂,这时正则化项的值会较大,正则化的作用是选择经验风险与模型复杂度同时较小的模型。
            • 正则化项符合奥卡姆剃刀原理,在所有的可能的模型中,能够很好的解析已知数据并且十分简单的模型才是最好的模型,从贝叶斯估计的角度来看,正则化项对应于模型的先验概率,可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。

            m i n f ∈ F 1 N ∑ i = 1 n L ( y i , f ( x i ) ) + λ J ( f ) min_{f\in F}\frac{1}{N}\sum^{n}_{i=1}L(y_i,f(x_i))+\lambda J(f) minfFN1i=1nL(yi,f(xi))+λJ(f)

            • 其中,第一项是经验风险,第二项是正则化项,正则化项可以取不同的形式,例如,正则化项可以是模型参数向量的范数。回归问题中,损失函数是平方损失,正则化项可以是参数向量的L2范数

            L ( ω ) = 1 N ∑ i = 1 N ( f ( x i ; ω ) − y i ) 2 + λ 2 ∣ ∣ ω ∣ ∣ 2 L(\omega)=\frac{1}{N}\sum^{N}_{i=1}(f(x_i;\omega)-y_i)^2+ \frac{\lambda}{2}||\omega||^2 L(ω)=N1i=1N(f(xi;ω)yi)2+2λω2

            • 正则化项也可以是参数向量的L1范数

            L ( ω ) = 1 N ∑ i = 1 N ( f ( x i ; ω ) − y i ) 2 + λ ∣ ∣ ω ∣ ∣ L(\omega)=\frac{1}{N}\sum^{N}_{i=1}(f(x_i;\omega)-y_i)^2+ \lambda||\omega|| L(ω)=N1i=1N(f(xi;ω)yi)2+λω

构建机器学习模型的流程

  • 准备数据
  • 特征工程
    • 特征的抽取及缩放
    • 特征选择
    • 降维,抽样
      • 样本抽样:选择一定阈值的行进行抽样
      • 特征抽样:选择一定的列进行抽样
      • 目的:防止模型过拟合
  • 算法选择
  • 模型训练
  • 模型校验
  • 模型预测分析
  • 模型保存等
  • 补充知识点
    • 什么是超参数?
      • 在模型训练之前事先设定的参数,比如迭代次数
    • 什么是参数?
      • 通过机器学习算法学习得到的是参数,如k和b,在y=kx+b中
  • 如何评价模型
    • 模型的泛化能力
    • 欠拟合
      • 出现场景:模型训练的初期
      • 症状:模型对于训练集和测试集效果都很差
      • 出现原因:模型太过于简单了
      • 解决办法:
        • 1.通过增加多项式的项(选择更多的特征)
        • 2.增加多项式项的次数
        • 3.减少正则化项
    • 过拟合
      • 出现场景:训练的中后期
      • 症状:模型在训练集上效果好,在测试集上的效果差
      • 出现原因:模型太过于复杂,数据不纯,训练数据量太少
      • 解决办法
        • 1.增加正则化项
        • 2.重新清洗数据
        • 3.增加训练数据量
      • 模型选择,使用奥卡姆剃刀原则
        • 在具有相同泛化误差的情况下,选择较为简单的模型

数据的交叉验证

  • 数据的交叉验证

    • 在机器学习中常用的精度测试方法,叫做交叉验证。它的目的是得到可靠稳定的模型,具体的做法是拿出大部分数据进行建模,留小部分样本用刚刚建立的模型进行预测,并求出这小部分样本预测的误差,交叉验证在克服过拟合问题上非常有效。

    • 简单交叉验证

      • 简单交叉验证的方法是这样的,随机从最初的样本中选择部分,形成验证数据,而剩下的当作训练数据。一般来说,少于三分之一的数据被选作验证
        数据。
    • K则交叉验证;k-3或10

      • 10折交叉验证是把样本数据分成10份,轮流将其中9份做训练数据,

        将剩下的1份当测试数据,10次结果的均值作为对算法精度的估计,通常情况下为了提高精度,还需要做多次10折交叉验证。

      • 更进一步,还有K折交叉验证,10折交叉验证是它的特殊情况。K 折交叉验证就是把样本分为K份,其中K-1份用来做训练建立模型,留剩下的一份来验证,交叉验证重复K次,每个子样本验证一次。

    • 留一验证

      • 留一验证只使用样本数据中的一项当作验证数据,而剩下的全作为训练数据,一直重复,直到所有的样本都作验证数据一次。可以看出留一验证实际上就是K折交叉验证,只不过这里的K有点特殊,K为样本数据个数。

4.遗留问题

  • 最小二乘法原理
  • 降维:PCA或SVD,区别于特征选择(从x1或x2中选择一个特征)
  • 机器学习中的最优解的过程-梯度下降法和牛顿法
  • 极大似然估计(maximum likelihood estimation)就是经验风险最小化的一个例子
  • 正则化项对应模型的先验概率
  • L1,L2范式

你可能感兴趣的:(Machine,Learning)