在当前的推荐系统中,很多使用了机器学习,有些已经用到了深度学习。那么,机器学习就等同于一堆的算法吗?
答案是:机器学习≠算法。
机器学习≠算法
当我们打开一本教科书,或者大学的教学大纲,通常看到的都是一堆的算法列表。
这也让大家造成了这样的误解:机器学习就是掌握一系列的算法。其实,机器学习并不止步于算法,我们可以把它看做是解决问题的一种综合方法。我们看到的一个个独立的算法,只不过是难题的一角,剩下的难题是我们该如何正确地使用这些算法。
机器学习为何如此神奇?
机器学习,就是教计算机分析数据,发现其中规律,以便人们进行预测或决定的实践。
对于真正意义上的机器学习来说,计算机必须具备分析数据中无法通过编程得出的规律的能力。
示例:
假如一个小孩子在家里玩,突然,他看到一支蜡烛!于是,他向蜡烛的方向慢慢走去。
出于好奇,他用手指指着烛光;
“哇!”他大喊,同时把手收回来;
“呜呜……那个会发光的红色东西好烫!”
两天之后,他来到厨房里,看到了炉子。同样,他又非常好奇。
他好奇得不得了,心里想要不要用手摸一下;
突然,他发现这个东西也会发光,也是红色的!
“啊……”他自言自语道,“我不要再痛一次了!”
他想起来红色且会发光的东西会“痛”,于是就离开炉子去其他地方了。
说得更清楚一些,因为这个孩子从蜡烛中自己推断得出了某种结论,那我们就称之为“机器学习”。
这个结论就是:“红色且会发光”意味着“疼痛”;
如果这个孩子离开炉子,是因为父母告诫他的话,那就是“明确的程序指示”,而不是机器学习了。
重要术语
模型 - 从数据中得出的一组模式;
算法 - 用于训练某个模型的专门的 ML 过程;
训练数据 - 算法用来训练模型的数据集;
测试数据 - 用于客观评估模型性能的新数据集;
特征 - 数据集中用来训练模型的变量;
目标变量 - 用于预测的某个特定变量;
示例:
假设我们有一组包含 150 个小学生信息的数据集,现在希望通过他们的年龄、性别和体重预测他们的身高。
我们现在有 150 组数据点、1 个目标变量(身高)、3 个特征(年龄、性别、重量)。接下来会把所有数据分为两个子集:
其中,120 组会被用来训练不同的模型(训练集),其余的 30 组用来选择最佳模型(测试集)。
机器学习任务
在学术界,机器学习始于并会一直专注于其中某个算法。但是,在工业界,我们首先得为工作所需选择正确的机器学习任务。
· 任务是算法的特定目标。
·只要选择正确的任务,算法就可以交换进出完成任务。
·实际上,我们会尝试多种不同算法,因为很可能我们一开始不知道哪种算法最适合数据集。
机器学习两种最常见的任务类别是监督学习和无监督学习。
监督学习
监督学习包括面向“标记”好的数据的任务(换言之,我们有一个目标变量)。
· 在实践中,它通常是用作建模预测的高级形式。
· 每一组数据点必须正确标记。
· 只有这样才能建立一个预测模型,因为我们必须在训练时告诉算法什么是“正确”的(也就是我们说的“监督”)。
· 回归是建模连续目标变量的任务。
·分类是对分类目标变量进行建模的任务。
无监督学习
无监督学习包括面向“未标记”数据的任务(换言之,没有目标变量)。
· 在实践中,这种形式通常用作自动数据分析或自动信号提取。
· 未标记的数据没有预先确定的“正确答案”。
· 允许算法直接从数据中学习模式(即没有“监督”)。
· 聚类是最常见的无监督学习任务,用于查找数据中的组。
机器学习的三要素
如何始终如一地构建有效的模型以获得最佳效果。
#1:熟练的厨师(人类指导)
首先,即使我们是在“教电脑自学”,但在这个过程中,人的指导也起着很大的作用。
正如我们所看到的,您需要在此过程中做出无数项决策。
事实上,第一个重大决策就是该如何规划我们的项目,从而确保成功。
#2:新鲜食材(干净且相关的数据)
第二个基本要素是数据的质量。
无论我们使用哪种算法,垃圾输入 = 垃圾输出。
专业的数据科学家将大部分时间花在了解数据,清理数据和设计新功能上。
#3:不要过度烹饪(避免过度拟合)
机器学习中最危险的陷阱之一就是过度拟合。过度拟合模型会“记住”训练集中的噪声,而不是学习真正的基础模式。
· 对冲基金中的过度拟合可能会造成数百万美元的损失。
· 医院内的过度拟合可能会导致数千人丧生。
对于大多数应用来说,过度拟合都是要避免的错误。