- 朴素贝叶斯分类器,例子是有若干文档组成的样例,每个文档中的词语作为特征,通过独立分布假设和贝叶斯公司,文档属于某一分类的概率,可以转化为该分类中,这个文档中每个特征出现的概率
- 最大优势是处理大数据集时的速度,因为在更新概率计算时不需要用到以前的数据,即适合incremental training的应用,例如垃圾邮件过滤
- 另一个优势是分类器的学习过程易于理解,很容易在数据库中发现最易于分类的特征,来判断是垃圾邮件还是非垃圾邮件,python表示编程语言还是蛇
- 缺陷是它不能处理组合特征的情形。例如online pharmacy,两个词分开时可能为普通邮件,组合时很可能为垃圾邮件,这种情形无法用贝叶斯分类器学习到:如果以分块时为训练数据,训练出来的组合情形可能判断为普通邮件。这是由于特征间的独立同分布假设造成的。
- 决策树分类器
- 最大的优势是模型有助于理解,可以很清楚地知道哪些因素对分类是最重要的(根节点),有多重要
- 能够处理数值数据和分类数据作为输入的情形,但是不能很好地预测数值数据的结果
- 比贝叶斯分类器的优势是能够处理变量相互影响的情形,如特征组合的情况
- 然而,该分类器在邮件过滤中不实用的原因是它不能用于incremental training, 每次训练时需要用到所有的数据集
- 神经网络
- 主要的优势是能处理复杂的非线性函数,发现不同输入之间的依赖性,也能够处理输入输出为数值的情形。
- 它也能用于incremental training的情形,只需要存储一些突触(像是中间状态)的权重
- 主要缺陷是,它是一种黑盒方法,不能给出预测结果的缘由
- 另一个缺陷是,没有确定的法则来指导训练率和网络大小的选择,通常只能根据大量的实验,依靠经验来选取
- SVM
- 强大的分类器,预测速度很快
- 缺点是每个数据集最好的核转换函数和参数都不相同,每次都要重新选取,一般需要通过交叉校验
- SVM适合大数据集存在的问题,不像决策树,即使是少量数据也能给出一些有用的信息
- 和神经网络一样,都是black-box方法,甚至比NN更难于理解,因为涉及到将数据转换到高维空间的步骤
- K-NN
- 找最近邻,通常需要一个距离度量函数,例如Euclidean distance, pearson corralation and Tanimoto score. 易于理解,在很多应用中都会用到,例如推荐算法。实际应用如通过训练数据中相机的特征(像素)和价格来推断某款相机的价格
- 聚类
- 常用的有hierarchical clustering和k-means clustering, 实际应用如博客的分类,是技术博客还是新闻博客等
- 非负矩阵分解
- 无监督方法,主要用来描述数据而不是预测数据的分类或者分值。 例如将股票交易额分解为单只或多只股票受影响的事件;将用户对电影的评价打分矩阵分解成用户-影响影子,电影-影响因子两个矩阵。注意每次分解得到的矩阵可不同
Programming.Collective.Intelligence中对常用机器学习算法的总结
猜你喜欢
转载自backsnow.iteye.com/blog/1107360
今日推荐
周排行