机器学习算法学习kNN(入门)&demo(持续更新)

1.knn算法

(1)基本情况:

(a)算法机制:

给定测试样本x,基于某种距离度量找出训练集中与其最近的k个训练样本,然后基于k个训练样本的标签来对测试样本x进行预测——找到距离x合适距离的k个样本,用k个样本的标签来预测x的标签。
机器学习算法学习kNN(入门)&demo(持续更新)_第1张图片
我们要判断 是什么颜色的,找到与其距离最近的5个点,有4个是红色的,有1个是绿色的。因此我们认为 是属于红色的集合。

(b)算法要素:

训练和测试样本的距离(欧式距离)
k值(k个样本)
分类决策规则(样本标签)

(c)算法流程:
  1. 计算测试样本x到每个训练样本的距离
  2. 按照距离的大小顺序排序
  3. 从小到大选取k个距离
  4. 统计这k个距离对应的训练样本的标签的频数
  5. 频数最高的训练样本的标签为x的标签
(d)算法优点:

精度高,对异常值不敏感,空间复杂度高
缺点:
计算复杂度高,空间复杂度高。

(e)应用:

垃圾邮件过滤,图像特征识别,推荐。
均需要查看大量样本提取特征垃圾邮件关键词,图像关键词,用户特征(训练),根据训练结果进行kNN

(2)分布代码范例1:肿瘤的肿块大小和时间与良性/恶性肿瘤的关系

# raw_data_x是特征,raw_data_y是标签
# 0为良性,1为恶性
raw_data_X = [[3.393533211, 2.331273381],
              [3.110073483, 1.781539638],
              [1.343853454, 3.368312451],
              [3.582294121, 4.679917921],
              [2.280362211, 2.866990212],
              [7.423436752, 4.685324231],
              [5.745231231, 3.532131321],
              [9.172112222, 2.511113104],

你可能感兴趣的:(机器学习,Python学习)