人工智能、机器学习已经火了有一阵了,很多程序员也想换到这方向,目前有关于深度学习基础介绍的材料很多,但很难找到一篇简洁的文章提供实施机器学习项目端到端的指南,从头到尾整个过程的相关指南介绍。因此,个人在网上搜集到了许多有关于实施机器学习项目过程的文章,深入介绍了如何实现机器学习/数据科学项目的各个部分,但更多时候,我们只需要一些概括性的经验指导。
在我不熟悉机器学习和数据科学的时候,我曾经寻找一些指导性的文章,这些文章清楚地阐述了在项目的某些步骤时候我需要做什么才能很好地完成我的项目。本文将介绍一些文章,旨在为成功实现机器学习项目提供一份端到端的指南。
基于此,闲话少叙,下面让我们开始吧
简而言之,机器学习项目有三个主要部分:第一部分是数据理解、数据收集和清理,第二部分是模型的实现,第三部分是进行模型优化。一般而言,数据理解、收集和清理需要花费整个项目60-70%的时间。为此,我们需要该领域专家。
场景假设
现在假设我们正在尝试一个机器学习项目。本文将为你提供实施项目可以遵循的步骤指南,确保项目成功。
在项目开始时,我们的大脑中肯定会出现多个问题:
比如:
- 如何开始这个项目?需要开发者或者统计学者?
- 选择何种语言进行开发?数据集是否干净?
- 各种依赖包是否安装齐全正确?项目问题是回归还是分类问题?
- 应该采取何种机器学习方法?如何调参?
机器学习项目简单来讲是一种试错过程,整个研究过程和递归过程比较类似,是一种不断试错寻找更优解法的过程。该过程同时也是实践和理论的结合,对相关研究领域的专业知识有所要求,完成每个项目后也会提升个人的战略技能,从事该领域的研究人员需要掌握统计相关的知识以及具备一定的编程能力。最重要的是,机器项目会教会你保持耐心,每做完一次实验后,都会分析实验结果,进而寻找到更优的答案(调参)。
步骤
必须进行的两个步骤:
- 1.确保你了解机器学习是什么以及它的三个关键领域。可以阅读下面这篇文章:
8分钟了解机器学习
机器学习是现在,也是未来。所有的技术人员、数据科学家和金融专家可以从中受益,同时,如果上述这些人员在之后的日子不对该项技术有所涉猎的话,很可能会被时代所淘汰。
- 2.选择合适的编程语言。需要熟练掌握Python,请点击阅读:
从零开始学python
Python是数据分析和机器学习最流行的编程语言中的一种,并且有很多封装好的工具包可供我们调用,实现起来相对而言比较简单。
开始实施
1.选择合适的机器学习算法。如何选择合适的算法可以参考下面这篇文章:
机器学习算法大乱斗
现实中,不管是工业界,亦或是学业界,都有大量的机器学习算法可供使用。上述文章中将分析典型的机器学习算法各自的优缺点,及针对的具体问题。
到目前为止,你可能已经理解了你需要解决的项目问题是有监督问题还是无监督问题。
然而,机器学习不像经典的程序设计一样(给定一个输入,其输出是固定), 机器学习总有可能找到另外一个正确的答案。比如,预测问题中通常有多个正确的答案。
2.如果这是一个有监督的机器学习问题,那么请确保你了解该项目是回归还是分类问题。想弄清楚这点可以阅读下面这篇文章:
有监督的机器学习:回归与分类
在上述文章中,将阐述有监督学习中回归问题和分类问题之间的关键差异。
3.如果是时间序列回归问题,则在预测时间之前使时间序列数据保持不变。具体做法参考下面这篇文章:
我是如何预测时间序列?
预测、建模和推导时间序列在许多领域越来越受欢迎。时间序列一般用于预测未来。
4.找出一种预先测量算法性能的方法。如何确定评测指标可以参考下面这篇文章:
每个数据科学家必须知道的数学度量方法
每个数据科学家都需要了解大量的数学度量方法,比如准确度、AUC。
5.测量时间序列回归模型的性能。可以参考下面这篇文章:
搭建的预测模型性能有多好——回归分析
预测是计量经济学和数据科学中的一个重要概念,它也广泛用于人工智能中。
6.调查是否需要使用ARIMA模型。详细内容请参考下面这篇文章:
了解差分整合移动平均自回归模型——ARIMA
在文章“如何预测时间序列?”中,提供了关于时间序列分析的相关概述。这篇文章的核心是了解ARIMA模型。
7.如果是无监督的机器学习问题,那么需要了解群集是如何工作和实施的。详细内容请参考下面这篇文章:
无监督机器学习:聚类和K均值算法
上述文章解释了聚类在无监督机器学习中的工作原理。
8.探索神经网络和深度学习,看看它是否适用于你的问题。详细内容请参考下面这篇文章:
了解神经网络:从激活函数到反向传播
上述文章旨在阐述神经网络的基本概述,讲解基本概念,包含激活函数、反向传播算法。
9.丰富你的特征集合,对其进行缩放、标准化和归一化等。详细内容请参考下面这篇文章:
处理数据以提高机器学习模型的准确性
有时我们会建立一个机器学习模型,用我们的训练数据训练它,当我们训练好后进行预测时,效果并不是很理想,有部分原因是数据集存在脏数据或不够全面,因此需要对数据进行进一步的处理,比如数据清洗、增强等。
干净的数据=良好的结果。
10.减少特征尺寸空间。详细内容请参考下面这篇文章:
在数据科学中,什么是降维?
虽然现在是大数据时代,有很多的数据可供使用,大量数据可以促使我们创建一个预测模型,但数据量不是越大越好,而是越精越好。
如果在丰富特征并减小尺寸后,模型没有产生准确的结果,那么需要重新调整模型的参数。
11.微调机器学习模型参数。详细内容请参考下面这篇文章:
[如何微调机器学习模型以提高模型的预测准确性?]()
微调机器学习预测模型是提高预测结果准确性的关键步骤。这个过程有些枯燥,需要一些耐心和运气。
始终确保模型不会过拟合或欠拟合。
12.最后,重复这些步骤,直到获得准确的结果:
- 丰富模型特征;
- 微调模型参数;
机器学习在本质上是回溯过程。
作者信息
Farhad Malik,数据科学
本文由阿里云云栖社区组织翻译。
文章原标题《End To End Guide For Machine Learning Projects》,译者:海棠,审校:Uncle_LLD。
文章简译,更为详细的内容,请查看原文。