生成算法尝试去找这个数据到底是怎么生成的(产生的),然后再对一个信号进行分类。基于你的生成假设,哪个类别最有可能产生这个信号,这个信号就属于那个类别。
判别模型不关心数据是怎么生成的,它只关心信号之间的差别,然后模型学习到差别之后简单地对给定的一个信号进行分类。
在机器学习中,无监督学习(Unsupervised learning)最典型的就是聚类,事先不知道样本的类别,通过某种办法,把相似的样本放在一起归位一类;而监督学习(Supervised learning)就是有训练样本,带有属性标签,也可以理解成样本有输入有输出,意味着输入和输出之间有一个关系,监督学习算法就是要发现和总结这种“关系”。
以下是一些常用的监督型学习方法:
一. K-近邻算法(k-Nearest Neighbors,KNN)
算法的步骤为:
(1)计算测试数据与各个训练数据之间的距离;
(2)按照距离的递增关系进行排序;
(3)选取距离最小的K个点;
(4)确定前K个点所在类别的出现频率;
(5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。
二. 决策树(Decision Trees)
决策树是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。
相比贝叶斯算法,决策树的优势在于构造过程不需要任何领域知识或参数设置。
构造决策树的关键步骤是分裂属性。所谓分裂属性就是在某个节点处按照某一特征属性的不同划分构造不同的分支,其目标是让各个分裂子集尽可能地“纯”。尽可能“纯”就是尽量让一个分裂子集中待分类项属于同一类别。分裂属性分为三种不同的情况:
1、属性是离散值且不要求生成二叉决策树。此时用属性的每一个划分作为一个分支。
2、属性是离散值且要求生成二叉决策树。此时使用属性划分的一个子集进行测试,按照“属于此子集”和“不属于此子集”分成两个分支。
3、属性是连续值。此时确定一个值作为分裂点split_point,按照 >split_point 和 <=split_point 生成两个分支。
构造决策树的关键性内容是进行属性选择度量