写在前面
本系列文章,将针对Python机器学习库Scikit-learn来展开,旨在帮助那些刚开始接触机器学习项目,但是看不懂里面各种模型如何使用的小伙伴。我将介绍了一些scikit-learn中使用的机器学习词汇及常用模型,并指导小伙伴们自己动手搭建、训练自己的模型。
本篇文章,将会简单介绍机器学习里一些常见的词汇,已经很了解的小伙伴可以跳过,看后续的内容:
教你训练一个机器学习模型:scikit-learn入门教程(二)
一、机器学习常见问题描述
1.机器学习是用来干嘛的?
通常,机器学习问题会考虑一组具有n个样本的数据(如下图一),然后尝试预测未知数据的属性。
可以看到,下列数据具有n行,代表有n个样本。每行代表一个样本,样本中的每一个数字,我们把它叫做“特征”或者“属性”。
举个例子,上面的数据收集了n个女生的身材信息,一个女生的样本信息包括[身高,体重,年龄······]若干特征。
现在,我们要利用这些数据,预测出这n个女生,哪些是美女。如果我们用列表来表示对这n个女生的预测结果,用1表示是美女,0表示不是,那么我们最终求出来的可能是这样一个列表:
[1,0,0,1,0,``````]
这个列表表示,第一个女生是美女,第二第三个女生不是······
所以,机器学习做的事情大概就是这样的。给你一堆数据,然后让你用各种各样高大上的模型,来预测出一些结果。
2.机器学习问题类型
通常,机器学习问题可以分为以下类型:
-
监督学习
-
分类问题
-
回归问题
-
-
无监督学习
-
监督学习:什么叫监督学习?顾名思义,就是我不仅给了预测的数据给你,我还给了预测的答案给你,你需要用这个答案来监督你的预测。
还是用上例来讲,例如,我给了n个女生的数据给你,我还给了这n个女生是不是美女的数据,即上面所说的[1,0,0,1,0,``````]。你就拿着题目(数据)去预测结果,并且可以用答案来批改你结果的正确率。
那么相对应的,无监督学习就是,我只给了n个女生的数据给你,但我不给你这n个女生是不是美女的数组。这就相当于,我给了一堆题目给你做,但是却不给你答案,你需要自己去寻找。
-
分类:分类问题,即你要根据数据,来将目标分类。例如,我给了你一堆女生的数据,你要做的就是判断每个女生是不是美女,在判断的这个过程,就是分类。
-
回归:回归问题,即你要根据数据,来求出某一个值。例如,我给了你一堆女生的数据,你要做的就是给每一个女生外观打分。再例如,我给了你一堆电商的数据,然后让你计算,xx店铺的xx商品卖出去的可能性有多大?这个可能性,求的就是一个数值,它不再是分类了,这类问题就称为回归问题。
-
-
无监督学习:上面已经提到了,无监督学习,就是给题目(数据)给你,但是却不给答案(预测结果)给你,让你摸瞎做题(ˉ▽ˉ;)…。
3.训练集和测试集
通常,我们需要将数据集分成两部分来评估算法。一部分是测试集,我们在该训练集上我们学习一些属性;我们将另一个集合称为测试集,在其上测试学习的属性。
什么?看不懂?那就还是举个栗子吧。例如,我给了你n个女生的数据(训练集),让你用这n个数据,训练了一个算法出来。现在,你为了检测一下你这个算法到底能不能正确预测美女,所以我再给了你m个女生的数据(测试集),用来测试一下你算法的效果。
懂了吧?训练集就是你平时做的训练题,测试集就是给你的考试题,它可以检测你的算法训练效果到底怎么样!