1. 数据挖掘
简而言之,数据挖掘(Data Mining)是有组织有目的地收集数据,通过分析数据使之成为信息,从而在大量数据中寻找潜在规律以形成规则或知识的技术。
2. 数据挖掘与机器学习的关系
机器学习可以用来作为数据挖掘的一种工具或手段;
数据挖掘的手段不限于机器学习,譬如还有诸如统计学等众多方法;
但机器学习的应用也远不止数据挖掘,其应用领域非常广泛,譬如人工智能;
3. 机器学习
3.1 定义
机器学习(Machine Learning, ML) 是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。目前,世界上共有几百种不同的机器学习算法。
3.2 机器学习算法类别
3.2.1 分类与聚类
- Classification (分类):
对于一个 classifier ,通常需要你告诉它“这个东西被分为某某类”这样一些例子,理想情况下,一个 classifier 会从它得到的训练集中进行“学习”,从而具备对未知数据进行分类的能力,这种提供训练数据的过程通常叫做 supervised learning (监督学习):
定义:给定一堆样本数据,以及这些数据所属的类别标签,通过算法来对预测新数据的类别
- Clustering(聚类):
聚类的时候,我们并不关心某一类是什么,我们需要实现的目标只是把相似的东西聚到一起,因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了,因此 clustering 通常并不需要使用训练数据进行学习,这在 Machine Learning 中被称作 unsupervised learning (无监督学习):
定义:事先并不知道一堆数据可以被划分到哪些类,通过算法来发现数据之间的相似性,从而将相似的数据划入相应的类,简单地说就是把相似的东西分到一组
3.2.2 常见的分类与聚类算法
- 常用的分类算法:决策树分类法,朴素贝叶斯分类算法(native Bayesian classifier)、基于支持向量机(SVM) 的分类器,神经网络法,k-最近邻法(k-nearest neighbor,kNN),模糊分类法等等。
- 常见聚类算法: K均值(K-means clustering)聚类算法、K-MEDOIDS算法、CLARANS算法;BIRCH算法、CURE算法、CHAMELEON算法等;基于密度的方法:DBSCAN算法、OPTICS算法、DENCLUE算法等;基于网格的方法:STING算法、CLIQUE算法、WAVE-CLUSTER算法;
3.2.3监督学习与无监督学习
机器学习按照训练数据是否有“先验知识”,一般划分为三类:
- 监督学习(supervised learning)
- 半监督学习(semi-supervised learning)
- 无监督学习(unsupervised learning)
监督式学习技术需要关于结果的先验知识
- 例如,如果我们正在研究一个市场活动的历史数据,我们可以根据市场是否产生预期的反应来对数据进行分类,或决定下一步要花多少钱。监督式学习技术为预测和分类提供了强大的工具。
无监督学习技术不需要先验知识。
- 例如,在某些欺诈的案例中,只有当事情发生很久以后,我们才可能知道某次交易是不是欺诈。在这种情况下,与其试图预测哪些交易是欺诈,我们不如使用机器学习来识别那些可疑的交易,并做出标记,以备后续观察。我们对某种特定的结果缺乏先验知识、但仍希望从数据中汲取有用的洞察时,就要用到无监督式学习。
3.3 机器学习的应用步骤
- 需求分析
- 收集数据
- 探索数据特性
- 提取数据特征并建模[这一部分需要工具的娴熟和丰富的经验,一定的抽象能力和对数据的敏感]
- 开发代码(常用语言:R语言,Python语言)
- 训练模型[这一部分需要熟练的开发能力]
- 应用系统集成(比如将训练好的算法模型集成到推荐系统中)
3.4 机器学习必需数学知识
在数据挖掘所用的机器学习算法中,几乎所有问题都可以归结为以下三个方面的数学知识:概率、距离、线性方程。
3.4.1 概率
基本概念:
概率描述的是随机事件发生的可能性
比如,抛一枚硬币,出现正反两面的概率各为50%
基本计算:
设一个黑箱中有8个黑球2个红球,现随机抽取一个球,则
取到黑球的概率为:8/(8+2) =0.8
取到红球的概率:2 /(8+2) =0.2
条件概率:
假如有两个黑箱A/B,A中有7黑球+1红球,B中有1黑球+1红球,假如随机抽取到一个
为红球,问,球来自A箱的概率——这就是条件概率问题
所求概率可表示为: p(A|红球) 即在已知结果是红球的条件下,是来自A的概率
条件概率的计算:
P(A|红球) = P(A,红球)/P(A)
<补充:具体运算过程>
3.4.2 距离(相似度)
在机器学习中,距离通常用来衡量两个样本之间的相似度,当然,在数学上,距离这个概念很丰满,有很多具体的距离度量,最直白的是“欧氏距离”,即几何上的直线距离
图示:
如图,在二维平面上有两个点(x1,y1) , (x2,y2),求两点之间的距离
计算方法:
而在机器学习中,通常涉及的是多维空间中点的距离计算,计算方式一样:
3.4.3 线性方程
机器学习中的线性拟合或回归分类问题都需要理解线性方程
图示:
线性方程用来描述二维空间中的直线或多维空间中的平面,比如在二维空间中,如图
y=ax+b即是图中直线的线性方程:
- x是自变量,y是因变量
- a b 是参数,决定直线的斜率和截距
如果在多维空间中,线性方程则是表示平面,方程形式如:ax+by+cz+d=0
计算方法:
初等数学经常已知a, b求解x y,而在高等数学中,我们往往是知道大量的(y,x)样本比如(x1,y1),(x2,y2),(x3,y3)要求反推参数列表(a,b,…)。
在维度小,样本数据都“正确+精确”的情况下,可以通过线性方程求解的方式来解出a,b,…
但在机器学习中,我们拿到的大量样本数据本身都是“不精确且充满噪点”的,所以代入方程来求解a,b…显然不可行,此时,一般都是采用逼近的思想(机器学习中怎么强调都不为过的一个核心思想,甚至可以提升为“逼近论”)来求解:
- 设定参数的初始值——>代入样本试探——>根据试探结果调整参数——>再次代入样本试探——>再调整参数
- 一直循环迭代直到获得一组满意的参数 <补充:一个运算实例>
3.4.4 向量和矩阵
在以上3大数学问题中,都涉及到大量样本数据大量特征值的“批量运算”,此时,可运用数学中的工具:“向量和矩阵”
N维向量:就是一个一维的数组(x1,x2,x3,x4,…),数组中的元素个数即为向量的“维度数”
矩阵:将多个(比如M个) N维向量写在一起,就是矩阵(M*N):
x11,x12,x13,x14,..... x21,x22,x23,x24,..... x31,x32,x33,x34,..... x41,x42,x43,x44,.....
矩阵和向量的意义主要在哪呢?就是为了方便快速地进行大量数据(尤其是线性方程问题)的批量运算。
如:
- 矩阵相加
- 矩阵相乘