# 什么是机器学习 机器学习的定义有很多种,但是最准确的定义是:"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E." 这个定义除了非常押韵之外,还体现了机器学习的几个关键点,即:`task`, `experience` 和 `performance`。 ## task **task** 指的是机器学习所需要完成的任务。机器学习能够完成的任务主要有:**分类、回归、聚类**。 ### 分类 假如现在有一些苹果、西瓜和香蕉的图片作为训练集(**有标签**),现在想要机器学习算法能够根据新的测试图片来分辨出该图片中的是苹果、西瓜还是香蕉。像这样的任务我们称为**分类**任务。
### 回归 假如现在有一些苹果的售价数据作为训练集(**有标签**),现在想要机器学习算法能够根据新的测试图片来分辨出该图片中的苹果能卖多少钱。像这样的任务我们称为**回归**任务。
### 聚类 假如现在有一些水果的图片作为训练集(**无标签**),现在想要机器学习算法能够根据训练集中的图片将这些图片进行归类,但是并不知道这些类别是什么。像这样的任务我们称为**聚类**任务。
细心的你可能注意到了,**分类和回归问题的训练集中都是带有标签的**。也就是说数据已经告诉了机器学习算法我这条数据的答案是这个,那条数据的答案是那个,就像有老师在监督学生做题目一样,一看到学生做错了就告诉他题目做错了,看到学生做对了就鼓励他。所以用来解决**分类和回归**问题的机器学习算法又称为**监督学习**。而像用来解决**聚类**问题的机器学习算法又称为**无监督学习**。 ## experience **experience**指的根据历史数据总结归纳出规律的过程,即学习过程,或模型的训练过程。**模型**这个词看上去很高大上,其实我们可以把他看成是一个函数。例如:现在想用机器学习来识别图片里的是香蕉还是苹果,那么机器学习所的事情就是得到一个比较好的函数,当我们输入一张香蕉图片时,能得到识别结果为香蕉的输出,当我们输入一张苹果图片时,能得到识别结果为苹果的输出。
至于这样一个函数(**模型**)里面长什么样子,这就与具体的机器学习算法有关了。对机器学学习算法感兴趣可以阅读**常见机器学习算法**章节。 ## performance **performance**指的是模型的性能。对于不同的任务,我们有不同的衡量模型性能的标准。例如分类时可能会根据模型的**准确率**,**精准率**,**召回率**,**AUC**等指标来衡量模型的好坏,回归时会看看模型的**MSE**,**RMSE**,**r2 score**等指标,回归时会以**FM指数**,**DB指数**等指标来衡量聚类的效果怎么样。对各种性能指标感兴趣可以阅读**模型评估指标**章节。