分类算法导论

数据挖掘机器学习分类算法导论

标签(空格分隔): 数据挖掘 机器学习 算法分析 概率统计

分类算法,简单来讲就是确定一个未知对象所在的预定义类别
分类的输入数据是样本的集合,用元组表示,即:$$(特征,类别)$$ 其中特征值可以是离散或者连续,而类别只能是离散,这是区别分类与回归的关键。

分类算法的任务就是通过学习训练数据集得到一个目标函数f,把每一个特征(x)一一映射到预定义类别y中,目标函数即为分类模型,目前的分类算法比较适合二分类。


一、KNN(K最近邻)算法

基本思路

“近朱者赤,近墨者黑”,由你的邻居来推断你所属的类别。

确定K值

所谓的K值,就是特定范围内样本的个数,不同的K值,对目标样本的分类结果可能截然相反,在Python中,K值被默认为5。

交叉验证(cross-vaildation)可以用来确定K值,从K=1开始,逐个计算模型准确率。$$一般而言,K值低于训练样本数的平方根。$$

确定邻居

这个过程就是计算训练样本和待分类样本的距离,方法有:
>欧氏距离
曼哈顿距离
余弦距离

确定带分类类别

  • 少数服从多数
  • 加权确定(权重为距离平方的倒数)

算法优缺点

优点

  1. 简单,无需训练,无需参数估计;
  2. 适合对稀有事件进行分类;
  3. 对多分类问题结果更好,比SVM要好些。

缺点

  1. 对测试样本分类需全遍历,计算量大;
  2. 当正负样本不平衡时,如一个类的样本量很大,而其他类样本量很小时,待测样本K个邻居中大样本量的类别中的样本占多数,导致分类错误。

Python版本


朴素贝叶斯

优点

  • 简单
  • 估计参数少
  • 对缺失数据不敏感

缺点

  • 现实生活中特征之间相互独立的条件很少

逻辑回归

优点

  • 简单
  • 估计参数少
  • 对缺失数据不敏感

缺点

  • 现实生活中特征之间相互独立的条件很少

决策树

优点

  • 简单
  • 估计参数少
  • 对缺失数据不敏感

缺点

  • 现实生活中特征之间相互独立的条件很少

支持向量机

优点

  • 准确率高
  • 估计参数少
  • 对缺失数据不敏感

缺点

  • 现实生活中特征之间相互独立的条件很少
posted @ 2019-09-05 10:31  中微子不悲伤  阅读(237)  评论(0编辑  收藏  举报