机器学习应用开发步骤和学习类型
机器学习应用开发步骤和学习类型
开发机器学习应用时,可以尝试不同的模型算法,采用不同的方法对数据进行处理,这个过程十分灵活,但也并非无章可循。
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),通过与环境的交互不断获得奖励指导,从而最终获得最大的奖励。
监督学习中数据标记的标签用于检验模型的对错,并不足以在交互的环境中学习。
而在强化学习下,交互数据可以直接反馈到模型,模型可以根据需要立即做出调整。
强化学习不同于无监督学习,因为无监督学习旨在学习未标记数据间的内在结构,而强化学习的目标是最大化奖励。
golang技术交流群:316397059,vuejs技术交流群:458915921 囤币一族:621258209,有兴趣的可以加入
微信公众号: 心禅道(xinchandao)投资论道