计世网

机器学习,为什么还要“监督”?
作者: Martin Heller | 来源:计算机世界
2019-10-29
监督学习可把标记的训练数据转化为经过调优的预测模型。

 

机器学习是人工智能的一个分支,包括从数据中自动创建模型的算法。从高层次上讲,机器学习有四种:监督学习、无监督学习、强化学习和主动机器学习。由于强化学习和主动机器学习相对较新,因此此类列表有时会省略它们。你也可以把半监督学习添加到列表中,也不算错。

什么是监督学习?

监督学习是从带有正确答案(目标值)的经过标记的训练数据开始的。在学习过程之后,将得到一个经过调优的权重集的模型,这可以用于预测尚未标记的类似数据的答案。

你想要的是训练一个没有过度拟合或者欠拟合的高精度模型。高精度意味着你已经优化了损失函数。在分类问题的情景中,准确性是模型产生正确输出的示例的比例。

过度拟合意味着模型与它所看到的数据关联过于紧密,以致于不能推广应用到它所没有看到的数据。欠拟合意味着模型不够复杂,无法捕获数据中的潜在趋势。

选择损失函数来反映模型的“不足之处”将损失最小化以找到最佳模型。对于数值(回归)问题,损失函数通常是均方误差(MSE),也可表示为均方根误差(RMSE)或者均方根偏差(RMSD)。这对应于数据点和模型曲线之间的欧几里得距离。对于分类(非数值)问题,损失函数可以基于一种度量方法,包括ROC曲线下面积(AUC)、平均精度、精度恢复和对数损失等。

为了避免过度拟合,通常把标记过的数据分为两组,多数用于训练,少数用于验证和测试。验证集损失一般高于训练集损失,但这是你所关心的,因为不应该表现出对模型的偏见。

对于小数据集,使用固定的维持集进行测试验证可能会导致统计值较低。解决这一问题的一种方法是使用交叉验证方法,其中不同的折叠(数据子集)轮流作为不同训练阶段的维持集。

我提到了AUC是ROC曲线下的区域。ROC是接收机工作特性曲线;该术语来自无线电信号分析,但从本质上讲,ROC曲线通过绘制真正值比率与假正值比率的关系来显示分类器的灵敏度。ROC曲线下的区域越大越好,这样,当你使用它作为损失函数的基础时,实际上希望最大化AUC。

机器学习的数据清理

原始数据都不是很干净。为了更好地应用于机器学习,必须很好地过滤数据。例如,你需要:

1.查看数据并排除任何有大量缺失数据的列。

2.再次查看数据,并选择要用于预测的列(特征选择)。特征选择是你在迭代时想要改变的内容。

3.去掉剩余列中仍缺少数据的所有行。

4.纠正明显的拼写错误,并合并相同的条目。例如,U.S.、US、USA和美国应合并为一个类别。

5.去掉数据超出范围的行。例如,如果你分析纽约市内的出租车行驶路线,想筛选出某些数据行,这些行中的上客和下客经纬度坐标点位于都市区域边界框之外。

可以做的还有很多,而这将取决于收集的数据。这可能很乏味,但是如果你在机器学习流水线中设置了数据清理步骤,就可以随意修改并重复这一工作。

机器学习的数据编码与规范化

要使用分类数据进行机器分类,需要将文本标签编码为另一种形式。有两种常见的编码方法。

一种是标签编码,这意味着每个文本标签值都被一个数字替换。另一种是one-hot编码,这意味着每一文本标签值都被转换为包含一个二进制值(1或0)的列。大多数机器学习框架都具有为你进行转换的功能。一般来说,最好使用one-hot编码,因为标签编码有时会使机器学习算法误认为编码的列是有序的。

使用数字数据进行机器回归时,通常需要对数据进行规范化。否则,范围较大的数字可能倾向于控制特征向量之间的欧几里得距离,其效果会被放大,但是以牺牲其他字段为代价,并且最陡的下降优化可能难以收敛。机器学习的数据规范化和标准化方法有很多种,包括最小最大规范化、均值规范化、标准化和单位长度缩放等。这一过程通常被称为特征缩放。

机器学习的特征工程

特征是指所观察到的现象中的个体可测量属性或者特性。“特征”的概念与解释变量概念有关,而解释变量用于线性回归等统计方法。特征向量将一行的所有特征组合成一个数字向量。

选择特征的一种技巧是选择一组能解释问题的最小独立变量。如果两个变量高度相关,要么它们应组合成一个特征,要么应该删除其中一个。有时人们进行主分量分析,将相关变量转换成一组线性不相关的变量。

人们用来构造新特征或者减少特征向量维数的一些转换其实很简单。例如,把死亡年份与出生年份相减,就得到了死亡年龄,这是寿命和死亡率分析的主要独立变量。在其他情况下,特征构造可能不那么明显。

常用的机器学习算法

有几十种机器学习算法,从线性回归和逻辑回归到深度神经网络和集成(其他模型的组合),复杂程度各不相同。而一些最常见的算法包括:

线性回归,又名最小二乘回归(用于数值数据)。

逻辑回归(用于二元分类)。

线性判别分析(用于多类别分类)。

决策树(用于分类和回归)。

朴素贝叶斯(用于分类和回归)。

K最近邻居,又名KNN(用于分类和回归)。

·学习向量量化,又名LVQ(用于分类和回归)。

支持向量机,又名SVM(用于二元分类)。

随机森林,一种“打包”(自举聚合)集成算法(用于分类和回归)。

提升方法,包括AdaBoost和XGBoost,是一种集成算法,可以创建一系列模型,其中每个增量模型都试图纠正前一个模型的错误(用于分类和回归)。

神经网络(用于分类和回归)。

超参数调整

超参数是自由变量,而不是机器学习模型中被调整的权重。超参数随算法的不同而不同,但通常包括学习速率,该参数用于控制批量计算错误后所应用的校正深度。

一些产品化的机器学习平台现在提供自动超参数调整功能。本质上,你告诉系统想要改变哪些超参数,可能想要优化什么指标,系统会在允许的次数范围内扫描这些超参数。(谷歌云机器学习引擎的超参数调整功能从TensorFlow模型中提取适当的度量指标,因此你不必指定它。)

扫描超参数的搜索算法主要有三种:贝叶斯优化、网格搜索和随机搜索。贝叶斯优化往往是最有效的。你能够很容易地在代码中实现自己的超参数扫描功能——即使你所使用的平台没有自动执行。

总之,监督学习把标记过的训练数据转化为经过调优的预测模型。在此过程中,你应该清理数据并使之规范化,设计一组线性不相关的特征参数,并尝试使用多种算法来找到最佳模型。

作者:Martin Heller是InfoWorld的特约编辑和审稿人。他曾是一名网络和Windows编程顾问,1986年至2010年间开发过数据库、软件和网站。

编译:Charles

原文网址:https://www.infoworld.com/article/3403403/supervised-learning-explained.html

责任编辑:周星如