开发者学堂课程【机器学习概览及常见算法:有监督学习算法(上)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/529/detail/7121
有监督学习算法(上)
内容简介:
1、 什么是有监督学习算法
2 、分类: Classification
3 、回归: Regression
4 、分类算法
5 、KNN
6 、实现步骤图示
7 、实现伪码
8、 KNN优缺点
1、 什么是有监督学习算法
有监督学习( Supervised learning ) :利用一-组已知类别的样本来训练模型,使其达到性能要求。
特点为输入数据(训练数据)均有一个明确的标识或结果(标签)。即我们提供样例"教”计算机如何学习。
2 、分类: Classification
分类:就是通过已有数据集(训练集)的学习,得到一个目标函数f (模型) , 把每个属性集x映射到目标属性y (类) ,且y必须是离散的(若y为连续的,则属于回归算法)。通过对已知类别训练集的分析,从中发现分类规则,以此预测新数据的类别。
已有部分用户是否会购买电脑的记录,据此去建模,来预测某个新用户是否购买。即分成两类:购买和不购买
3、 回归: Regression
采集了一些父子的身,对这些数据进行建模,然后使用模型,根据输入的新的父亲的身高去预测其子身高的取值。
拟合线性方程: Y =a*X + b
最小二乘法,带入样本数据求解:
解: a=0.5119 b= 86.3246
模型结果: Y = 0.5119*X + 86.3246
我身高177.5 cm,则我的孩子身高:
Y = 0.5119*177.5 + 86.3246= 177.18
4、 分类算法
分类算法通过对已知类别训练集的分析,从中发现分类规则,以此预测新数据的类别。分类算法的应用非常广泛,银行风险评估、客户类别分类、文本检索和搜索引擎分类、安全领域中的入侵检测以及软件项目中的应用等。
按原理分类
■基于统计的:如贝叶斯分类
■基于规则的:如决策树算法
■基于神经网络的:神经网络算法
■基于距离的: KNN ( K最近邻)
常用评估指标:
■精确率:预测结果与实际结果的比例
■召回率:预测结果中某类结果的正确覆盖率
■F1-Score :统计量,综合评估分类模型,取值0-1之间
5、 KNN
KNN : k-Nearest Neighbour ,分类算法中最简单的算法之一,其核心思想是如果离某一个样本最近的 k 个本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。KNN 不但可以预测分类,还可以做回归分析(预测具体的值)。
有N个已知分类结果的样本点,对新记录 r 使用 KNN 将其分类的步骤:
Step 1:确定 k 值,确定计算距离的公式,比如欧氏距离
Step2:计算 r 和其他样本点之间的距离 di;r,其中i∈(1,N)
Step 3 :得到目前和 r 最接近的 k 个样本,作为 KNN 距的训练样本
Step4 :将 k 个样本中最多归属类别的分类标签赋予新记录 r ,分类结束
6 、实现步骤图示
第一步,确定 k 的取值,确定距离公式
K 的取值不宜过大,使用交叉验证确定,本例中选择 k=10
第二步,计算 r 和所有样本点的距离
第三步,圈定符合条件的 k 条记录
将距离升序排序,得到 topk 小的值,选入 KNN 样本
7 、实现伪码
repeat
计算已知类别数据集中的点与当前之间的距离
按照距离递增次序排序
until 样本点遍历完成
返回前k个样本点
统计 k 个样本点中出现频率最高的类别标签
8 、KNN 优缺点
优点:
原理简单,容易理解,容易实现
重新训练代价较低
时间、空间复杂度取决于训练集(一般不算太大)
缺点:
KNN 属于 lazy-learning 算法,得到结果的及时性差
k 值对结果影响大(试想一下 k=1 和 k=N 的极端情况)
不同类记录相差较大时容易误判
样本点较多时,计算量较大
相对于决策树,结果可解释性不强

