编辑导语: 机器学习是一种数据分析技术,让计算机执行人和动物与生俱来的活动:从经验中学习,也被称为预测分析;本文作者分享了关于机器学习的流程以及实践应用,我们一起来看一下。

我所理解的机器学习是一种能够实现人工智能的技术,建立能从经验(数据)中进行学习的模型,从而使这个模型可以达到自行处理此类数据的能力。

也可以理解为:通过大量的数据,训练出一个能处理此类数据的模型,使得这个模型可以根据已知的数据,准确率很高的判断出未知的数据,从而使得人类能够采取正确的方法去处理某些事情。

想要了解机器学习你需要知道以下几点:

一、机器学习的流程

从实际的应用场景出发,要训练出来一个能够适应某场景的模型需要经过以下几步:

1. 场景解析

场景解析就是将业务逻辑,抽象成为通过算法能够解决的问题。

比如:做一个心脏病预测系统,那么就可以抽象为二分类问题——要么有心脏病,要么没有;然后,根据已有的数据看看有没有目标值,可以判断出:是监督学习还是无监督学习,还是半监督学习;从而,选择出能够处理好此类数据的算法。

(不同场景采用的算法是不同的)高频的有以下几种类型的场景:

  • 分类场景:广告投放预测,网站用户点击预测。
  • 聚类场景:人群划分,产品种类划分。
  • 回归场景:商品购买量预测和股票成交额预测。
  • 文本分析类场景:新闻的标签提取,文本自动分类和文本关键信息抽取。
  • 关系图算法:社交网络关系,网络关系挖掘和金融风险控制。
  • 模式识别:语音识别,图像识别和手写文字识别。

2. 数据预处理

场景解析完,选择适合处理此类数据的算法后,需要对数据进行预处理——就是对数据进行清洗工作,对空值、乱码进行处理。

数据预处理的主要目的就是:减少噪音数据对训练数据的影响。

3. 特征工程

特征工程是机器学习中最重要的一部分,因为根据已有的训练数据,可选用的算法是有限的;那么在同样的算法下特征的选取是不同的,100个人对一件事情会有100种看法,也就有100种特征,最后特征的质量决定模型的好坏。

特征工程需要做的包括:特征抽象、特征重要性的评估、特征衍生、特征降维。

4. 模拟训练

在经过以上过成后,进入训练模块,生成模型。

5. 模型评估

对生成模型的成熟度进行评估。

6. 离线/在线服务

在实际运用过程中,需要配合调度系统来使用。

案例场景:每天将用户当日新增的数据量流入数据库表里,通过调度系统启用离线训练服务,生成最新的离线模型,然后通过在线预测服务进行实时预测。

二、数据源结构

结构化数据:机构化数据是指以矩阵结构储存的数据。

数据库里的数据就是以这种结构存在,可以通过二维结构来显示,如下图:

结构化数据中,有两个重要的概念需要介绍一下:特征列和目标列。

上图里age,sex,cp列都是特征列,ifhealth是目标列。

非结构化数据:典型的非结构化数据是图像、文本、语音等文件;这些数据不能以矩阵的结构储存,目前的做法也是通过把非结构化的数据转化为二进制储存格式。

半结构化数据:半结构化数据是指按照一定的结构储存,但不一定是二维的数据库行存储形态的数据;还有一种是以二维数据形态储存的,但某些字段是文本类型,某些字段是数值类型的,如下图:

三、算法分类

监督学习:是指每个进入算法的训练样本数据都有对应的目标值。

如上图2所示,Ifhealth为目标值。

常见的监督学习算法:

无监督学习:就是训练样本的数据里没有目标列,不依赖于打标好的机器学习算法。

那么,这样的数据可能对一些分类和回归的场景就不太适合了。

无监督学习主要是来解决一些聚类场景的问题。

半监督学习:

通过上面的监督学习和无监督学习的概念,再来看半监督学习就比较好理解了。

也就是说,训练数据里只有部分数据是打标的。目前,半监督学习的算法,都是监督学习算法的变形。

强化学习:

强化学习是一种比较复杂的机器学习种类。强调的是:系统与外界不断的交换,获得外界的反馈,然后决定自身的行为。

如:无人驾驶,阿尔法狗下围棋就是强化学习的应用。

四、过拟合问题(欠拟合这里不做详细的介绍)

过拟合是数据挖掘(通过大量数据,训练模型的过程也称为数据挖掘)领域中最常见的问题,是指:通过训练集训练了一个模型,这个模型对于训练集的预测准确率很高,可以达到95%以上;但是换一份儿数据集进行预测,准确率大幅度下降。

出现这种情况的原因可能是:训练的过拟合现象。

导致过拟合问题的原因有以下三种:

  1. 训练数据集样本单一。
  2. 训练样本噪音数据干扰过大。
  3. 模型过于复杂。

五、结果评估

机器学习最终的目的是生成模型。

模型生成后需要一些指标来评估这个模型的好坏。

常用到的概念有:精确率,召回率,F1值,ROC和AUC几种。

首先介绍一下精确率,召回率和F1值,这3个指标是由:TP,TN,FP,FN这4个值计算而来的(这里不做解释了)。

  • 精确率=TP/(TP+FP)
  • 召回率=TP/(TP+FN)
  • F1=(2*精确率*召回率)/(精确率*召回率)

ROC曲线是常用的二分类场景的模型评估算法曲线,下图齿状弧形曲线就是ROC曲线。

如图所示:

通过ROC曲线可以清晰的展示出来,只要模型曲线越来越接近左上角就说明模型的效果越好。

AUC的值是ROC与横轴所围起来的面积(图中带阴影的部分),这个AUC的值越大说明模型的效果越好。

AUC的值取0~1之间,通常大于0.5,当AUC的值大于0.9以上时,证明这个模型的效果比较好。

以上对机器学习的流程,和一些概念做了解释,但距离真正可以上手操作还有很远的距离;如非结构化数据和半结构化数据,如何转化为结构化数据?特征抽象,特征衍生,特征降维如何操作?等等,实际的操作问题,还需要一定的篇幅来介绍。

机器学习流程,以及实践应用相关推荐

  1. 自学python推荐书籍同时找哪些来实践-机器学习:Python实践 PDF 原书完整版

    给大家带来的一篇关于人工智能相关的电子书资源,介绍了关于机器学习.Python实践方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小124.7 MB,魏贞原编写,目前豆瓣.亚马逊.当当.京 ...

  2. 解密谷歌机器学习工程最佳实践——机器学习43条军规 翻译 2017年09月19日 10:54:58 98310 本文是对Rules of Machine Learning: Best Practice

    解密谷歌机器学习工程最佳实践--机器学习43条军规 翻译 2017年09月19日 10:54:58 983 1 0 本文是对Rules of Machine Learning: Best Practi ...

  3. 随机森林的特征 是放回抽样么_机器学习超详细实践攻略(10):随机森林算法详解及小白都能看懂的调参指南...

    一.什么是随机森林 前面我们已经介绍了决策树的基本原理和使用.但是决策树有一个很大的缺陷:因为决策树会非常细致地划分样本,如果决策树分得太多细致,会导致其在训练集上出现过拟合,而如果决策树粗略地划分样 ...

  4. 随机森林python反欺诈_WePay机器学习反欺诈实践:Python+scikit-learn+随机森林

    摘要:在这篇博文中,WePay介绍了支付行业构建机器学习模型应对很难发现的shell selling欺诈的实践心得.WePay采用了流行的Python.scikit-learn开源学习机器学习工具以及 ...

  5. 机器学习流程模板及多模型对比实战梳理

    机器学习流程模板及多模型对比实战梳理 目录 机器学习流程模板及多模型对比实战梳理 # 数据加载

  6. 完整的端到端的机器学习流程(附代码和数据)|比赛、工程都可以用!

    近日在github上发现一个机器学习的完整流程,附代码非常全,几乎适合任何监督学习的分类问题,本文提供代码和数据下载. 作者:WillKoehrsen 翻译:DeqianBai(https://git ...

  7. 机器学习经典算法实践_服务机器学习算法的系统设计-不同环境下管道的最佳实践

    机器学习经典算法实践 "Eureka"! While working on a persistently difficult-to-solve problem, you disco ...

  8. Python机器学习库scikit-learn实践

    Python机器学习库scikit-learn实践 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.概述 机器学习算法在近几年大数据点燃的热火熏陶下已经变得 ...

  9. 机器学习怎么学?机器学习流程

    人们在使用机器学习的时候,把很大的精力放在了选择算法.优化算法上面,其实算法的选择只是机器学习其中的一个步骤,但是机器学习其他的步骤也是很关键的,尤其是作为产品经理,了解这个机器学习流程也是至关重要的 ...

最新文章

  1. python mp4提取音频加入另一段视频_使用 PHP-FFMpeg 操作视频/音频文件
  2. keil c51的内部RAM(idata)动态内存管理程序(转)
  3. 嵌入式中的中断服务程序
  4. linux使用nginx负载udp
  5. Python中文分词--jieba的基本使用
  6. qt-项目部署(某些情况下编译器中运行异常的话可以使用命令windeployqt 程序名在安装的qt dos命令下补全部分依赖库在运行项目或发布)
  7. Vertex Texture Fetch(VTF) Fragment Texture Fetch ( FTF )
  8. iNeuLink硬件网关与iNeuOS工业互联网操作系统互联互通应用案例
  9. rest开发_REST 101开发人员专用
  10. div和div之间画横线_HTML如何在两个div标签中间画一条竖线
  11. spring 使用其他类protected方法_Java操作bean、属性、方法的使用工具类
  12. SpringBoot使用Websocket
  13. Oracle Cluster Health Monitor(CHM)简介
  14. AD数据库的备份与还原
  15. sql取日期的年月_机油检测美版银美孚5W30,生产日期20年1月
  16. B2C多用户商城系统源码
  17. protel99se中文版
  18. 还搞不懂JVM?这一篇教你JVM从入门到入魔,全篇干货满满!
  19. shell 的大于等于小于等
  20. 汽车常识全面介绍 - 引擎详论

热门文章

  1. 安装ftp连接linux服务器配置,Linux下FTP安装及配置(VSFTPD服务器安装配置、FTP客户端安装配置)...
  2. 斯坦福马超:随机梯度下降,也爱躺「平」……why?
  3. 华为诺亚方舟郝建业:深度强化学习的三大挑战
  4. 中国·北京创新创业大赛季(2020)参赛企业注册报名操作指南
  5. 热门专业没那么难,文科生打开统计学的正确方式!
  6. 用一篇文章说清楚如何写作
  7. 综述 | 深度学习中的优化理论
  8. 独家 | 基于TextRank算法的文本摘要(附Python代码)
  9. RONG·基础与未来——规模化园区在数据时代如何实现内生增长?
  10. 手把手教你用Python处理非平稳时间序列(附代码)