博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
干货 :手把手教你在试验中修正机器学习模型
阅读量:7044 次
发布时间:2019-06-28

本文共 1911 字,大约阅读时间需要 6 分钟。

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

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

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

访问和加载数据

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

数据预处理

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

image

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

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

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

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

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

image

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

建立并训练模型

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

image

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

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

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

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

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

image

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

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

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

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

改进模型

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

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

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

PCA降维,消除冗余;

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

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

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

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

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

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

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

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

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

原文发布时间为:2018-12-17

本文作者: Seth DeLand
本文来自云栖社区合作伙伴“ ”,了解相关信息可以关注“ecshujufenxi”微信公众号

转载地址:http://cmhal.baihongyu.com/

你可能感兴趣的文章
Mac Finder 显示路径和复制路径
查看>>
MongoDb进阶实践之九 Mongodb的备份与还原
查看>>
Java邻接表表示加权有向图,附dijkstra最短路径算法
查看>>
删库跑路?你应该看看云数据库
查看>>
浅谈架构之路:单点登录 SSO
查看>>
Docker 入门(Mac环境)- part 2 容器(container)
查看>>
Spring ActiveMQ 整合(三): 确认机制ACK(收到消息后,应该有一个回应也就是确认答复)...
查看>>
SecureCRT常用快捷键
查看>>
composer - No business network has been specified for this connection 解决方案
查看>>
第2章 排序 || 第20节 相邻两数最大差值练习题
查看>>
l1 l2 loss
查看>>
Spring Boot (二)集成Jsp与生产环境部署
查看>>
使用LinkedHashMap来实现一个使用LRU(Least Recently Used)算法的cache
查看>>
iOS学习笔记之正则表达式
查看>>
关闭mysql慢查询日志
查看>>
让使用SQLite的.NET应用自适应32位/64位系统
查看>>
Android中获取资源的id和url方法总结
查看>>
别被官方文档迷惑了!这篇文章帮你详解yarn公平调度
查看>>
WPF中,输入完密码回车提交 ,回车触发按钮点击事件
查看>>
mysql数据库优化课程---11、mysql普通多表查询
查看>>