1.1 KNN算法介绍
1.1.1 功能
KNN算法两大功能:分类、回归
K最近邻算法(k-nearest neighbours, KNN)属于机器学习最简单的算法,即找邻居的方式,通过计算样本之间的距离来确定类别或数值。通过找到特征空间中与样本最相似的K个样本,可以推测待分类样本的类别。该算法可用于商品推荐系统,通过找到与用户特征最接近的K个用户,推荐他们常买的商品。在多维特征空间中,该算法仍然适用,只需将K个最相似样本中的多数类别作为待分类样本的类别即可。
1.1.2 定义
K最邻近算法(K-nearest neighbours , KNN)
如果一个样本在特征空间中的K个最相似的样本中,大多数属于某一个类别,则该样本也属于这个类别。
例:你需要对一个水果进行分类,查看五个它最近的邻居,这些邻居中,橘子多于柚子,则他可能是橘子
1.1.3 特征抽取
特征抽取意味着将物品(如水果或用户)转换为一系列可比较的数字
能否挑选合适的特征事关KNN算法的成败
如何确定两种水果的相似程度:将每种水果转换为一组坐标,根据个头和颜色比较,
抽取特征并绘图,特征:个头和颜色
计算两点的距离,用毕达哥拉斯公式
二维:
多维:
多维:
丁一和李四的距离
丁一和王二的距离 =
1.1.4 归一化和权重
练习一:归一化(normalization),找到每个人打分的平均分,以那个分数作为基准,然后做一个统一
练习二:权重,在比较重要的人前面乘上系数
1.2 回归
1.2.1 举例
除了推荐电影,还要预测她给电影打多少分。先找出与她最近的五个人(不一定非得是5个)
求这些人打分的平均值,这就是回归(regression)。使用KNN做两项基本工作 -- 分类和回归。
分类就是编组
回归就是预测结果
周末,天气不错,没活动。(4,1,0)
六个点的距离平方分别为1,2,9,2,1,5,所以选择小的四个,ABDE
(300+225+200+150)/4 = 218.75
1.2.2 余弦相似度(了解)
计算距离,除了距离公式,还有余弦相似度(cosine similarity)。假设有两个品味相似的用户,其中一个打分更保守。他们都喜欢某部电影,但一个人给了5星,一个人给了4星,如果用距离公式,他们可能不是邻居,虽然品味相似。
余弦相似度不计算两个矢量的距离。而是比较他们的角度。因此更适合处理前面所说的情况。如果用KNN可以了解一下
1.3 机器学习简介
1.3.1 OCR
光学字符识别(optional character recognition)。拍摄印刷页面的照片,计算机将自动识别出其中的文字。
具体方法如下:
(1)浏览大量的数字图像,将这些数字的特征提取出来
(2)遇到新图像时,提取该图像的特征,再找出它最近的邻居都是谁。一般而言,OCR算法提取线段、点、曲线等特征。
第一步是查看大量的数字图像并提取特征。这被称为训练(training)。大多数机器学习算法都包含训练的步骤:要让计算机完成任务,必须先训练它。
1.3.2 创建垃圾邮件过滤器
算法:朴素贝叶斯分类器(Naive Bayes classifier)。
假设收到一封邮件,判断是否是垃圾邮件?可以研究句子中的每个单词,看他在垃圾邮件中出现的概率是多少。朴素贝叶斯分类器能计算出邮件为垃圾邮件的概率,其应用领域和KNN相似。