学期末降至,藉由复习的契机将上课学习过的机器学习内容梳理成中文笔记与大家分享,原课件可以在这里找到。
任何机器学习(Machine Learning)的过程都能表示成数据表征(Representation),结果评估(Evaluation)以及优化(Optimization),我们所说的建模很大程度上都是在指如何更好地描述数据,做数据表征。让我们从最基本的分类问题展开,看看如何用线性方式描述数据(KNN、线性回归、逻辑斯蒂回归),并为我们训练的目标服务。
KNN
最简单的线性分类器可以说就是KNN (K-nearest neighbor)了,它本质上可以说并没有做任何与“学习”相关的训练,而是十分直观地通过观测点最邻近的k个数据点的标签“投票”选择该点标签的概率。这里的“最邻近”则包含了如欧式距离、曼哈顿距离等多种度量方式,如下式则为最经典的欧式距离。
举个简单的例子,譬如再MINST手写数据集种,我们将所有的数据展开成一维向量,比较展开向量的欧式距离来判断数据的分类,取某个数据点最k=9邻近的数据,得到下图结果:
可以看出6个最近的数据是6,3个为0,因此该点
可以看出KNN其实是一种非常弱的分类器(lazy-learner),因为并不需要任何学习的过程,同时也节省了计算量,能够适应快速变化的数据集。但这同时也存在维度爆炸的问题,因为每个数据点都要和其他数据