zoukankan      html  css  js  c++  java
  • 机器学习应用开发步骤和学习类型

    机器学习应用开发步骤和学习类型

    开发机器学习应用时,可以尝试不同的模型算法,采用不同的方法对数据进行处理,这个过程十分灵活,但也并非无章可循。

    1. 定义问题
    先明确需要解决的是什么问题。在实际应用中,很多时候我们得到的并非是一个明确的机器学习任务,而只是一个需要解决的问题。

    2. 数据采集
    数据采集是机器学习应用开发的基础。
    人工收集数据,例如预测房屋价格,可以从和房屋相关的网站上获取数据、提取特征并进行标记(如果需要)。
    人工收集数据耗时较长且非常容易出错,所以通常是其他方法都无法实现时才会采用。
    通过网络爬虫从相关网站收集数据,从传感器收集实测数据(如压力传感器的压力数据),从某些API获取数据(如交易所的交易数据),从App或Web端收集数据等。对于某些领域,也可直接采用业界的公开数据集,从而节省时间和精力。

    3. 数据清洗
    通过数据采集得到的原始数据可能并不规范,需对数据进行清洗才能满足使用需求。
    如:去掉数据集中的重复数据、噪声数据,修正错误数据等,最后将数据转换为需要的格式,以方便后续处理。

    4. 特征选择与处理
    特征选择是在原始特征中选出对模型有用的特征,去除数据集中与模型预测无太大关系的特征。
    通过分析数据,可以人工选择贡献较大的特征,也可以采用类似PCA等算法进行选择。
    对特征进行相应处理,如对数值型特征进行标准化,对类别型特征进行one-hot编码等。

    5. 训练模型
    特征数据准备完成后,即可根据具体任务选择合适的模型并进行训练。对于监督学习,一般会将数据集分为训练集和测试集,通过训练集训练模型参数,然后通过测试集测试模型精度。而无监督学习则不需对算法进行训练,而只需通过算法发现数据的内在结构,发现其中的隐藏模式即可。

    6. 模型评估与调优
    不管是监督学习还是无监督学习,模型训练完毕后都需要对模型结果进行评估。
    监督学习可采用测试集数据对模型算法精度进行评估。
    无监督学习也需采用相应的评估方法检验模型的准确性。
    若模型不满足要求,则需要对模型进行调整、训练、再评估,直至模型达到标准。

    7. 模型使用
    调优之后得到的最优模型一般会以文件的形式保存起来(tensorflow的以.h5文件保存模型),应用时可直接加载使用。
    机器学习应用加载模型文件,将新样本的特征数据输入模型,由模型进行预测,得到最终预测结果。

    ================

    机器学习类型

    监督学习(supervised learning)、无监督学习(unsupervised learing)、半监督学习(semi-supervised learning)、强化学习(rein-forcement learning)。

    1. 监督学习
    这里的“监督”指的是输入的数据样本均包含一个明确的标签或输出结果(label),如前述购票预测系统中的“购票”与“未购票”,即监督学习知道需要预测的目标是什么。
    监督学习如同有一个监督员,监督员知道每个输入值对应的输出值是什么,在模型学习的过程中,监督员会时刻进行正确的指导。

    2. 无监督学习
    无监督学习输入的数据样本不包含标签,只能在输入数据中找到其内在结构,发现数据中的隐藏模式。
    在实际应用中,并非所有的数据都是可标注的,有可能因为各种原因无法实现人工标注或标注成本太高,此时便可采用无监督学习。
    无监督学习最典型的例子是聚类。

    3. 半监督学习
    半监督学习是训练数据中有少部分样本是被标记的,其他大部分样本并未被标记。
    半监督学习可以用来进行预测,模型需要先学习数据的内在结构,以便得到更好的预测效果。

    4. 强化学习
    强化学习是智能体(agent)采取不同的动作(action),通过与环境的交互不断获得奖励指导,从而最终获得最大的奖励。
    监督学习中数据标记的标签用于检验模型的对错,并不足以在交互的环境中学习。
    而在强化学习下,交互数据可以直接反馈到模型,模型可以根据需要立即做出调整。
    强化学习不同于无监督学习,因为无监督学习旨在学习未标记数据间的内在结构,而强化学习的目标是最大化奖励。

  • 相关阅读:
    start tag, end tag issues in IE7, particularly in xslt transformation
    用SandCastle为注释生成chm文档
    Firebug
    架构的重点
    Linux Shell常用技巧(十) 管道组合
    Linux JDK升级
    Linux Shell常用技巧(十二) Shell编程
    Packet Tracer 5.0实验(一) 交换机的基本配置与管理
    Linux Shell常用技巧(六) sort uniq tar split
    Linux Shell常用技巧(二) grep
  • 原文地址:https://www.cnblogs.com/zdz8207/p/machine-learning-step.html
Copyright © 2011-2022 走看看