1.knn算法
(1)基本情况:
(a)算法机制:
给定测试样本x,基于某种距离度量找出训练集中与其最近的k个训练样本,然后基于k个训练样本的标签来对测试样本x进行预测——找到距离x合适距离的k个样本,用k个样本的标签来预测x的标签。
我们要判断 是什么颜色的,找到与其距离最近的5个点,有4个是红色的,有1个是绿色的。因此我们认为 是属于红色的集合。
(b)算法要素:
训练和测试样本的距离(欧式距离)
k值(k个样本)
分类决策规则(样本标签)
(c)算法流程:
- 计算测试样本x到每个训练样本的距离
- 按照距离的大小顺序排序
- 从小到大选取k个距离
- 统计这k个距离对应的训练样本的标签的频数
- 频数最高的训练样本的标签为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