我所理解的机器学习任务处理步骤

假设我们手上已经采集到原始数据,那么我们如何处理它们?

sklearn和tensorflow都提供了一些学习用的数据集,也提供了完整的demo,有些demo步骤较少,进行步骤 3、4.c、5 即可得出模型。这些框架把各种算法都封装好了,使用起来非常方便,作为应用主义者,我们当然没必要去太过深入研究算法实现和推导,但是我们首先要明晰各种算法的使用场景和优劣势,才不至于消耗太多时间训练出一个个无效的模型。

1、格式化原始数据

以Tensorflow的MNIST(CNN卷积神经网络识别0-9的图像)为例
手写一个数字,拍照或扫描成图片,统一将分辨率调整成28 * 28,再将图片根据每个像素的灰度值转成28 * 28维的矩阵
监督学习还需要给样本做好标记

2、噪音处理、特征选择、数据增强和降维

噪音数据会对学习结果产生负影响,噪音所占比重越大,学习结果越离谱,因此需要降噪,甚至是去噪处理。
但是,更经常的,增加噪音,反而可以提高泛化性能,提高模型防御噪音的能力。

通过对数据进行特征选择和降维,可以降低计算难度、只留下关键信息、提高泛化性能。

数据增强同样可以提高泛化性能,例如讲图片进行适当旋转、缩放、平移等都属于数据增强。

降维方法如PCA主成分分析、SVD奇异值分解、核化线性降维等

3、训练集、测试集的划分

通过留出法、自助采样法、k次k折交叉验证法等方法对训练集和测试集进行划分,训练集和测试集尽量互斥,训练集通常占样本集的2/3~4/5之间。
通过欠采样、过采样、阈值移动这三种技术处理好类别不平衡问题。

4.a、无监督学习

无监督学习,目标是通过对无标记训练样本的学习来揭示数据的内在性质以及规律,为进一步的数据分析提供基础,此类学习任务研究最多、应用最广的是聚类

4.b、调参

有些参数是需要人工初始化的,比如EM算法的最大迭代轮数、KNN的k值、SVM中的C常数、CNN中卷积的维度调整等

4.c、对训练集进行训练

根据不同的任务,选择适合的机器学习算法,我们需要知道不同算法的能力,还要对各种算法的优劣势有所了解,详见各类算法的优缺点和适用场景汇总

二分类和多分类
多分类任务,通常对多分类拆分成多个二分类器,拆分策略如OvO、OvR、MvM
仅能处理二分类任务的算法如:AdaBoost(集成学习Boosting族的一个算法)
线性分类任务
对数几率回归(虽然叫回归,实际却是分类学习方法)、线性判别分析(LDA)、KNN
其他分类任务
决策树分类、神经网络、深度学习、CNN卷积神经网络、贝叶斯分类器、贝叶斯网、SVM支持向量机
回归任务
线性回归、对数线性回归、KNN、岭回归、决策树回归、SVR支持向量回归、深度学习

懒惰学习
如果数据频繁更新,可以在预测时再进行学习,这称为懒惰学习,可以懒惰学习的算法如:KNN(k近邻分类)、懒惰决策树朴素贝叶斯分类器等。

5、对测试集进行测试,评估测试性能(约等于泛化性能)

通过评估性能,来决定如何调整模型的参数,以及对比多个模型的性能高低。

6、集成学习

为了进一步提高模型的泛化性能,往往会集成多个个体学习器,通过投票法或者平均法等策略结合得出更佳的最终预测结果。

7、保存模型

保存最终学得的模型,如Tensorflow支持对模型进行存档,以便模型迁移或增量学习等。

附:sklearn官方提供的算法选择路径图,不是很全面,仅供参考。

英文原版
中文版,来自网络

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值