Seth DeLand作者万文菁校对王威力翻译

手把手教你在试验中修正机器学习模型(附学习资源)

机器学习的实现路线充满了反复试验。在这个领域,新手工程师和科学家将不断调整他们的算法和模型。此过程中会出现挑战,尤其是在数据处理和确定最优模型的时候。

在建立机器学习模型时,重要的是知道现实世界的数据并不完美,因此不同类型的数据需要不同的处理方法和工具,并且在确定最优模型的时候不可避免会有取舍。

下面的系统流程将描述如何开发一个训练好的模型用于手机健康监测app,该app跟踪用户整天的活动。输入包括手机端记录的感知器数据。输出将是用户的活动:行走,站立,坐下,跑步,或跳舞。由于这是一个分类问题,这个例子将应用有监督学习。 

访问和加载数据

用户将拿着手机坐下来,记录传感器数据,并将其存储在标记为“坐下”的文本文件中。之后,用户拿着手机站起来,记录传感器数据,并将其存储在标记为“站立”的文本文件中。用同样的方法来记录跑步、行走、跳舞的数据。

数据预处理

由于机器学习算法无法区分数据中的噪声和有价值的部分,所以需要在训练模型前清洗数据。数据预处理可以用数据分析工具来实现,比如MATLAB。为了清理数据,用户可以导入并绘制数据,去除异常值。在这个例子中,离群值可能是由于在记录数据时无意中移动了手机造成。用户还需要检查缺失值,缺失值可用其他样本的近似值或参照数据代替。

图 1 数据预处理之去除离群值,即位于数据主要部分之外的数据点。 

数据清洗之后,将数据集分为两个部分,一部分作为训练集,另一部分将是用于测试和交叉验证的“保留”数据。 

使用预处理后的数据生成特征

原始数据必须转化成机器学习算法可以使用的信息。要实现这一点,用户必须生成能够区分手机端数据的特征。

在这个例子中,工程师和科学家必须划分好特征以帮助算法区分步行(低频)和跑步(高频)。

 

数据类型

特征选择目标

技巧

传感器数据

从原始传感器数据中提取信号特性以创建更高级别的信息

峰值分析——应用傅里叶变化,识别主频

脉冲和转移矩阵——得到信号特征如上升时间、下降时间、趋稳时间

频谱测量——画出信号功率、带宽、均值频率、中值频率

图像和视频数据

提取特征,例如边缘位置、分辨率、颜色

视觉词袋——生成图像特征直方图,例如边缘、角点、连通区域

方向梯度直方图——生成梯度方向直方图

最小特征值算法——监测图像角点

边缘探测——探测图像亮度变化最快的像素点位置

交易数据

计算提炼数据中信息的派生值

时间标记分解——把时间标记分解成到天或者月

计算集成值——生成更高级别的特征,比如某一特殊时间出现的总次数

表 1 依据数据类型导出特征,可以把原始数据转化成机器学习模型可以使用的高级别信息

建立并训练模型

从一个简单的决策树开始:

图 2 基于特征建立的决策树分类模型

绘制混淆矩阵以观察模型效果。

图 3 矩阵显示该模型在区分跳舞和跑步时存在问题

基于上面的混淆矩阵,这表示决策树不适合这种类型的数据,或者应该使用不同的算法。

K近邻算法(KNN)存储所有训练数据,将新数据点与训练数据进行比较,得到K个最相似样本,并返回这些相似样本的最频繁类。这个算法展示出更高的准确度。

图 4 改用KNN算法提高了准确度——尽管还有提高的可能性 

另一个选择是多分类支持向量机(SVM):

图 5 SVM的准确率在每个分类标签上都接近99%

这个过程证明了通过反复试验可以更好实现目标。

改进模型

如果模型无法可靠地区分跳舞和跑步,就需要改进模型。改进模型可以通过使其复杂化以更好地拟合数据,或者使其简单化以降低过拟合的可能性。

为了简化模型,可以通过以下方法减少特征数量:

  • 相关矩阵,去除相关性弱的特征;

  • PCA降维,消除冗余;

  • 有序地缩减特征,直到模型效果不再提高。

为了使模型更加复杂,工程师和科学家可以通过集合多个简单模型得到一个更大的模型或者增加更多数据源。

完成训练和调整之后,模型可以应用在测试集(数据预处理时保留的一部分数据)。如果模型可以可靠地对活动分类,那么它就可以应用在手机应用程序。

工程师和科学家第一次训练机器学习模型的时候将会遇到挑战,但应该意识到反复试验是过程的一部分。

上述的工作流程提供了构建机器学习模型的路线图,并且可以应用到其他不同的问题上,比如预测维护、自然语言处理自动驾驶

探索这些资源以了解更多机器学习方法和例子:

  • Supervised Learning Workflow and Algorithms:Learn the workflow and steps in the supervised learning process

    https://www.mathworks.com/help/stats/supervised-learning-machine-learning-workflow-and-algorithms.html?s_tid=srchtitle&s_eid=PEP_19715.html

  • MATLAB Machine Learning Examples:Get started with machine learning by exploring examples, articles, and tutorials

    https://www.mathworks.com/solutions/machine-learning/getting-started.html&s_eid=PEP_19715.html

  • Machine Learning with MATLAB:Download this ebook for a step-by-step guide providing machine learning basics along with advanced techniques and algorithms

    https://www.mathworks.com/campaigns/offers/machine-learning-with-matlab.html?s_iid=nd_bb15&s_eid=PEP_19715.html 

原文标题:

Building a Machine Learning Model through Trial and Error

原文链接:

https://www.kdnuggets.com/2018/09/mathworks-building-machine-learning-model-through-trial-error.html

THU数据派
THU数据派

THU数据派"基于清华,放眼世界",以扎实的理工功底闯荡“数据江湖”。发布全球大数据资讯,定期组织线下活动,分享前沿产业动态。了解清华大数据,敬请关注姐妹号“数据派THU”。

工程支持向量机监督学习机器学习
4
相关数据
混淆矩阵技术

混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。具体评价指标有总体精度、制图精度、用户精度等,这些精度指标从不同的侧面反映了图像分类的精度。在人工智能中,混淆矩阵(confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。矩阵的每一行表示预测类中的实例,而每一列表示实际类中的实例(反之亦然)。 这个名字源于这样一个事实,即很容易看出系统是否混淆了两个类。

自动驾驶技术技术

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

数据分析技术

数据分析是一类统计方法,其主要特点是多维性和描述性。有些几何方法有助于揭示不同的数据之间存在的关系,并绘制出统计信息图,以更简洁的解释这些数据中包含的主要信息。其他一些用于收集数据,以便弄清哪些是同质的,从而更好地了解数据。 数据分析可以处理大量数据,并确定这些数据最有用的部分。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

特征选择技术

在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择或变量子集选择。 它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。

交叉验证技术

交叉验证,有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法。于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证。 一开始的子集被称为训练集。而其它的子集则被称为验证集或测试集。交叉验证的目标是定义一个数据集到“测试”的模型在训练阶段,以便减少像过拟合的问题,得到该模型将如何衍生到一个独立的数据集的提示。

感知器技术

感知器是Frank Rosenblatt在1957年就职于Cornell航空实验室时所发明的一种人工神经网络。它可以被视为一种最简单形式的前馈神经网络,是一种二元线性分类器。 Frank Rosenblatt给出了相应的感知机学习算法,常用的有感知机学习、最小二乘法和梯度下降法。

暂无评论
暂无评论~