机器学习是目前信息技术中最激动人心的方向之一,其应用已经深入到生活的各个层面且与普通人的日常生活密切相关。本系列博文梳理了机器学习核心基础概念、主流算法思想与入门必备知识,在《数据结构强化笔记》所开创的博文模板基础上,进一步优化了统一规整的撰文体例,由浅入深拆解原理要点,搭配通俗解读与基础实例,助力零基础读者快速搭建机器学习知识框架。
由于机器学习领域分支极多,单篇博文难以尽述,故将原长文《机器学习基础笔记》拆分为数篇中等长度博文,并收录至博文系列页面中。由于工作仓促,部分子节引用表述难以适应对应新文章,日后会逐一修正。
《数据结构强化笔记》各章节联系密切、行文紧凑,故暂不执行长文拆分操作。
1 初识机器学习
【西瓜例】傍晚小街路面上沁出微雨后的湿润,和熙的细风吹来,抬头看看天边的晚霞,嗯,明天又是一个好天气。走到水果摊旁,挑了个根蒂蜷缩、敲起来声音浊响的青绿西瓜,一边满心期待着皮薄肉厚瓢甜的爽落感,一边愉快地想着,这个月狠下了工夫,基础概念弄得清清楚楚,算法原理也是信手拈来,这篇HyPress博文一定差不了!哈哈,也希望本站这个月的SEO取得一个好成绩!
1.1 机器学习的定义
正如我们根据过去的经验来判断明天的天气,吃货们希望从购买经验中挑选一个好瓜,那能不能让计算机帮助人类来实现这个呢?机器学习正是这样的一门学科,人的“经验”对应计算机中的“数据”,让计算机来学习这些经验数据,生成一个算法模型,在面对新的情况中,计算机便能作出有效的判断,这便是机器学习。
另一本经典教材的作者Mitchell给出了一个形式化的定义,假设:
P:计算机程序在某任务类T上的性能T:计算机程序希望实现的任务类E:表示经验,即历史的数据集
若该计算机程序通过利用经验E在任务T上获得了性能P的改善,则称该程序对E进行了学习。
机器学习十大算法:线性回归、逻辑回归、决策树、支持向量机、朴素贝叶斯、随机森林、K-均值、K-近邻、降维(如PCA)、人工神经网络
1.2 机器学习基本术语
假设我们收集了一批西瓜的数据,例如:(色泽=青绿; 根蒂=蜷缩; 敲声=浊响)、(色泽=乌黑; 根蒂=稍蜷; 敲声=沉闷)、(色泽=浅紫; 根蒂=硬挺; 敲声=清脆)……每对括号内是一个西瓜的记录,定义:
- 所有记录的集合:数据集
- 每一条记录:一个实例(Instance)或样本(Sample)
- 单个样本的特点(例如色泽或敲声):特征(Feature)或属性(Attribute)
- 对于一条记录,如果在坐标轴上表示,每个西瓜都可以用坐标轴中的一个点表示,一个点也是一个向量,例如
(青绿, 蜷缩, 浊响),即每个西瓜为一个特征向量(Feature Vector) - 一个样本的特征数:维数(Dimensionality)。上述西瓜例中维数为3,当维数非常大时,即为平日常说的“维数灾难”
计算机程序学习经验数据生成算法模型的过程中,每一条记录称为一个“训练样本”,同时在训练好模型后,通常希望使用新的样本来测试模型的效果,则每一个新的样本称为一个“测试样本”。定义:
- 所有训练样本的集合:训练集(Trainning Set)——特殊
- 所有测试样本的集合:测试集(Test Set)——一般
- 机器学习训练所得的模型适用于新样本的能力:泛化能力(Generalization),即从特殊到一般。
在上述西瓜例中,计算机通过学习西瓜的特征数据,训练出一个决策模型,来判断一个新的西瓜是否是好瓜,即预测的是西瓜是好是坏,即结果仅含好瓜与差瓜两个离散值。同样地,亦可通过历年的人口数据,来预测未来的人口数量,人口数量则是连续值。定义:
- 预测值为离散值的问题:分类(Classification)
- 预测值为连续值的问题:回归(Regression)
在预测西瓜是否是好瓜的过程中,很明显对于训练集中的西瓜,事先已经知道了该瓜是否是好瓜,学习器通过学习这些好瓜或差瓜的特征,从而总结出规律,即训练集中的西瓜都做了标记,称为标记信息。但亦有无标记信息的情形,例如欲将一堆西瓜根据特征分成两个小堆,使得某一堆的西瓜尽可能相似,即都是好瓜或差瓜,对于这种问题,事先并不知道西瓜的好坏,样本没有标记信息。定义:
- 训练数据有标记信息的学习任务:监督学习(Supervised Learning),易知上述的分类和回归都是监督学习的范畴
- 训练数据没有标记信息的学习任务:无监督学习(Unsupervised Learning),常见的有聚类和关联规则