来源:原始 Jupyter Notebook。内容已转换为网页阅读格式;下载原文件

机器学习算法清单

  1. k-近邻(kNN)
  2. 决策树 ID3 算法
  3. 朴素贝叶斯分类算法
  4. 感知机
  5. 支持向量机(SVM)
  6. 逻辑回归(logistic regression)
  7. AdaBoost(adaptive boosting)

生成模型 vs. 判别模型

生成方法和判别方法是对监督学习算法的分类,由判别方法学到的模型叫做判别模型,由生成方法学到的模型叫做生成模型。

判别方法由数据直接学习决策函数 Y=f(X)Y=f(X) 或者条件概率分布 P(YX)P(Y|X) 作为预测的模型,即判别模型。基本思想是有限样本条件下建立判别函数,不考虑样本的产生模型,直接研究预测模型。典型的判别模型包括k-近邻,感知机,决策树,支持向量机等。

生成方法由数据学习联合概率密度分布 P(X,Y)P(X,Y),然后求出条件概率分布 P(YX)P(Y|X) 作为预测的模型,即生成模型 P(YX)=P(X,Y)P(X)P(Y|X) = \frac{P(X,Y)}{P(X)}。基本思想是首先建立样本的联合概率概率密度模型 P(X,Y)P(X,Y),然后再得到后验概率 P(YX)P(Y|X),再利用它进行分类。典型的生成模型是朴素贝叶斯算法。

判别方法更多的关注各个类别之间的区别,而生成方法更多关注各个类别内部的相似度。判别方法画一条线,明确这种差别,线左边是类别A,线右边是类别B;生成方法拿样本去比较两个类别的已有数据,看看这个样本生成自哪个类别的可能性更大。

由生成模型可以得到判别模型,但由判别模型得不到生成模型。