目录

KNN

概述

机器学习算法选择

监督学习与无监督学习:想要预测目标变量的值则采用监督学习,否则选择无监督学习。
监督学习中,若目标变量是离散的,则选择分类算法,若目标变量是连续的则选择回归算法。
无监督学习中,分析是否需要将数据划分为离散的组,如果这是唯一的需求,则使用聚类算法;若还要估计数据与每个分组的相似程度,则选用密度估计算法。
变量的值分离散型和连续型。

开发应用的步骤

  1. 收集数据:如网络爬虫
  2. 准备输入的数据:确保数据格式符合规范,融合算法和数据源,方便匹配操作
  3. 分析输入数据:分析处理后的数据是否存在异常值或空值等
  4. 训练算法:将数据输入算法,从中抽取信息,若是无监督算法则无训练
  5. 测试算法

python开发的环境需要

  • NumPy Pandas
  • SciPy
  • Matplotlib

K-近邻算法(监督学习的一种分类算法)

K-近邻算法采用测量不同特征值之间的距离方法进行分类
优点: 精度高、对异常值不敏感、无数据输入假定
缺点: 计算复杂度高、控件复杂度高
适用数据范围: 数值型和标称型(数值型:可以在无限的数据中取,而且数值比较具体化,例如4.02,6.23这种值;标称型:一般在有限的数据中取,而且只存在‘是’和‘否’两种不同的结果)

工作原理: 存在一个数据集合,也称训练样本集,并且样本集中的每个数据都存在标签,即知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中的数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般只选取样本数据集中前k个最相似的数据,通常k是不大于20的整数。最后,选择k个最相似数据中出现此处追多的分类,作为新数据的分类。

算法原理:

  1. 计算已知类别数据集中点与当前点之间的距离
  2. 按照距离递增排序
  3. 选取与当前点距离最小的k个点
  4. 确定前k个点所在类别的出现频率
  5. 返回前k个点出现频率最高的类别作为当前点的预测分类