大数据开发之机器学习总结(数学知识)(三)

背景

  1. 在大数据开发业务场景中,如果是对数据做聚合或者明细统计等,则使用大数据的框架结合逻辑代码即可。
  2. 如果需要有更高层级的需求,例如做数据预测或者分类,则需要使用机器学习的技术来处理了。
  3. 如果需要更进一步让算法模型可以自我学习提升,则需要用到人工智能的技术。
  4. 机器学习是一门涉及到知识点非常广泛的计算机学科,概率统计,线性代数,高等数学,各类编程语言下的算法框架等等。
  5. 在现有大数据处理框架下,spark和flink对机器学习都有做支持,但相对更成熟的是spark的mllib模块。如果公司技术团队有使用spark经验,则学习和使用成本会大幅降低,唯一需要补充的就是算法知识和API调用。

1. 机器学习基础数学知识

1.1. 向量

  1. 概念,简单来说,向量可以看成一串数字,不过每个数字都有自己的含义。如在这里插入图片描述
    这里可以看成是年龄,身高,退休年龄,工资。直接使用这样的形式表达含义。
    也可以结合多维空间坐标来理解向量,如(1,2,3)可以理解为x,y,z轴的坐标。当然实际开发时,往往不局限于3个坐标,往往是多个指标。就类似Kylin框架的多维立方体。
  2. 向量距离(可以理解为相似度)。向量是一个点,则向量和向量之间存在距离的概念。而测量距离在数学领域有很多方法,经典的欧几里德距离,但也还有曼哈顿距离和余弦距离。

有时候又将向量点之间距离称之为相似度,但注意,相似度和距离其实是相反的,距离越近,相似度越高。距离越大,相似度越小在这里插入图片描述

  1. 在机器学习算法中,相似度的计算是很核心的一个要素。如KNN分类,KMeans聚类,协同过滤推荐算法等,本质就是在计算事物和事物之间的相似度,即特征向量之间的相似程度。

可以看到,上述提到的算法其实就是做分类或者聚类,大家可以想一下,人以群分,如果一个app可以计算出一个用户是哪一类的用户,可以计算出一个用户和另外一个用户相似度多少,这时候就可以针对性给这个用户做推荐,或者做关联用户推荐(两个相似用户,则可以给一个用户推荐另外一个用户喜欢的东西,大概率也会很高)

  • 欧几里德距离在这里插入图片描述
  1. 余弦相似度距离
    在这里插入图片描述
  2. 曼哈顿距离
    在这里插入图片描述

注意,这几个距离的适用场景不太一样,如果需要计算相似度,则余弦法更合适,如果计算空间距离也就是典型的2个特征之间距离,欧几里德方法更合适

1.2 矩阵

  1. 矩阵可以看作是多个向量之间的集合
    在这里插入图片描述
    从这个角度来看,矩阵方便对向量做批量运算,如需要对上述矩阵每个向量都乘以5,可以直接表达成 矩阵*5 =》C * 5
  2. 矩阵简单计算在这里插入图片描述
  3. 矩阵在代码中,可以理解为多维数组,其实图片就可以看成是2维数组,每一个像素的信息就保存在一个二维数组的元素中。
  4. 其实在机器学习,人工智能等尖端领域,数学计算会大量用到矩阵,编程代码则会大量用到迭代(类似递归的思想)

1.3 概率

  1. 联合概率 P(A^B) :多件事情都发生的可能性!
  2. 条件概率
    P(A | B) = P(A^B) / P(B)
    P(B | A) = P(A^B) / P(A)
    在这里插入图片描述

这个概率公式可以看出,如果P(B|A)不好计算,可以反过来,拿P(A|B),很多时候可能就有不一样的结果。
在概率统计中,有先验概率和后验概率,很多时候后验概率不好计算,可以利用这个公式,用先验概率换个思路得出

  1. 伯努利方程
    在这里插入图片描述
    在这里插入图片描述
  2. 概率密度
    概率指事件随机发生的机率,对于均匀分布函数,概率密度等于一段区间(事件的取值范围)的概率除以该段区间的长度,它的值是非负的,可以很大也可以很小在这里插入图片描述
    在这里插入图片描述
  3. 概率分布
  • 正态分布
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 二项分布
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 泊松分布
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • t分布
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

1.4 线性方程

  1. 其实就是类似初中学习的线性方程,因变量和自变量之间关系是一次方关系
    在这里插入图片描述

2. 总结

  1. 从编程角度来看,算法可以分为数据结构算法和 数学算法
  2. 数学结构算法,常常可以在各个框架中接触到,如排序算法,如贪心算法等等
  3. 数学算法,则往往是数学算法用于编程问题解决,这类场景在机器学习和人工智能应用最广泛和普遍
  4. 大学毕业之后,如果打算学习机器学习,但是忘记了线性代数,概率统计,高等数学的,可以准备捡起来了
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐