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

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

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
    评论
### 回答1: 如果你想开始学习机器学习,首先你需要掌握一些基本的知识和技能。 1. 了解机器学习的基本概念:机器学习是计算机科学的一个分支,它研究计算机如何从经验中学习。 2. 了解机器学习的基本方法:机器学习算法分为监督学习、无监督学习、强化学习三类。 3. 掌握一门编程语言:机器学习需要使用计算机进行模拟,因此你需要掌握一门编程语言,比如 Python。 4. 学习数学知识:机器学习算法是基于数学原理构建的,所以你需要学习一些基础的数学知识,比如线性代数、微积分、概率论等。 5. 寻找学习资源:你可以通过在线课程、书籍、博客等资源来学习机器学习,也可以加入一些学习社区,与其他学习者交流经验。 希望以上建议对你有帮助。 ### 回答2: 想要开始学习机器学习,以下是几个步骤: 1. 了解基础知识:首先,你需要学习一些数学和统计学的基础知识,如线性代数、概率论和微积分。这些知识是理解机器学习算法和模型的基础。可以通过大学课程、自学或在线课程学习这些知识。 2. 学习编程语言:机器学习通常使用编程语言来实现算法和模型。Python是一个很常用的机器学习编程语言,你可以开始学习Python并掌握其基本语法和常用库,如NumPy和Pandas。 3. 掌握机器学习算法:你需要学习并理解各种机器学习算法,如线性回归、逻辑回归、决策树、支持向量机等。可以通过阅读教材、参加课程或在线教程学习这些算法的原理和应用。 4. 实践项目:通过实践项目来应用你学到的知识。选择一些简单的机器学习项目开始,逐步增加难度。这样可以帮助你理解算法的实际应用和解决问题的能力。 5. 学习和实践深度学习:深度学习是机器学习的一个重要领域,它可以处理更复杂的数据任务。学习深度学习的基本概念、神经网络结构和常用框架,如TensorFlow和PyTorch。 6. 持续学习和探索:机器学习是一个快速发展的领域,新的算法和技术不断涌现。持续学习和关注最新的研究和进展,参加机器学习相关的会议和讲座,与其他机器学习从业者交流经验和想法。 总之,学习机器学习需要坚持不懈的努力和实践。通过不断学习和实践,你可以逐渐掌握机器学习的基本原理和技能,并在实际应用中取得成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值