前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >独家 | 手把手教你在试验中修正机器学习模型(附学习资源)

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

作者头像
数据派THU
发布2018-12-26 11:51:05
5150
发布2018-12-26 11:51:05
举报
文章被收录于专栏:数据派THU数据派THU

本文是一个循序渐进的指南,包括如何预处理数据和从中生成特征。并且还包含其他示例资源的链接,以帮助您探索有关机器学习的方法和其他示例。

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

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

下面的系统流程将描述如何开发一个训练好的模型用于手机健康监测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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本文是一个循序渐进的指南,包括如何预处理数据和从中生成特征。并且还包含其他示例资源的链接,以帮助您探索有关机器学习的方法和其他示例。
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档