机器学习小白如何成长为业内专家?

简介: 作者用了十八个月的时间从一个机器学习小白成长为业内专家,总结了一套属于自己的机器学习入门方法。

开头奉上云栖社区的礼物:

请收下这份关于人工智能的根目录——博客整理系列(一)

关于数据科学的那些事——博客整理系列(二)

机器学习必备手册——博客整理系列(三)

扩展眼界的都在这——博客整理系列(四)

深度学习必备手册(上)——博客整理系列(五)


在过去的一段时间内,我通过不断的深入学习,成长为一名不错的机器学习从业者。为此我接受了一个小时的访谈,以此来总结我学习的历程。学习机器学习主要有两种方法:理论机器学习方法和应用机器学习方法。

a781b2ce41fa760bdb13cf761eb846a66c04ed71

理论机器学习

对于学习机器学习的理论方法,下面的课题应该进行深入的研究。

1.线性代数 -  MITIISc班加罗尔

2.微积分 -  基础,Coursera高级,Coursera

3.概率和统计 -  麻省理工学院

4.统计学习理论 -  麻省理工学院斯坦福

5.机器学习 -  CourseraCaltech

接着就是阅读和研究论文,实施研究工作/新算法,发展专业知识,并进一步选择专业化的研究路径。
应用机器学习

应用机器学习需要条件。

1.对上述科目的基础知识(14)很好的理解。

2Python  R编程语言,根据您的偏好。

3.学习使用所选编程语言中流行的机器学习、数据操作和可视化库。我个人使用Python编程语言,因此我将在下面详细说明。

4.必须知道Python库:  numpy  pandas  scikit-learn  matplotlib

5.其他流行的Python库:  LightGBM  XGBoost  CatBoost

速成机器学习方法

如果你想了解什么是机器学习和它可能是什么样的。你可以通过这种方式进行实验,快速掌握。

1.了解机器学习概念概述

2.学习PythonR

3.了解并学习使用您选择的语言使用流行的库

Python环境设置

1Python

1.1Python.org  下载 学习

1.2Anaconda  下载学习

2.代码编辑器/ IDE

2.1Visual Studio代码(搜索并安装Python扩展,选择最下载的一个)

2.2Notepad+ +

2.3Jupyter(与Anaconda 一起安装)

3.安装python

3.1使用python的本地工具管理软件包 pip install <package-name>

3.2anaconda管理软件包 conda install <package-name>

4.管理Python(本地)虚拟环境(如果需要多个环境)

4.1:创建虚拟环境: python -m venv c:\path\to\env\folder

4.2:命令帮助: python -m venv -h

4.3:切换环境:  activate.bat 位于虚拟环境文件夹中的脚本

4.4Python(本地)虚拟环境  文档

5.管理Anaconda虚拟环境(如果需要多个环境)

5.1:默认conda环境root

5.2:列出可用的环境conda env list

5.3:创造新的环境conda create --name environment_name

5.4:切换到环境 -  activate environment_name 

5.5Anaconda虚拟环境文档

机器学习概念概述

机器学习:是一种通过函数fx从大量数据中找到模式的方法,该函数有效地推广到看不见的x 从而在未被看到的数据中找到学习模式,并使机器学习模型得到训练。

数据集:数据被用于应用机器学习,并从中找到模式。对于监督式机器学习应用程序,数据集包含  x (输入/属性/自变量)和 y(目标/标签/因变量)数据。对于无监督的数据,它只是  x,输入和数据的输出是某种学习模式。

Train set(数据集):数据集的一个子集,用于(训练)机器学习算法以学习模式。

评估/验证/交叉验证集:数据集的子集,不在训练集中,用于评估机器学习算法的工作方式。

测试集:数据集检验学习成果。对于监督问题,训练集合测试集不能相同。对于无人监督,训练和测试集可以是相同的。

算法类型:

监督学习:在监督问题中,历史数据包括需要为将来/不可见数据预测的标签。例如,对于房屋价格预测,我们有关于房屋(面积,卧室数量,位置等)和价格的数据。在对具有给定数据(X数据)和价格(Y标签)的机器学习模型进行后续训练之后,将针对新的/不可见数据(X)预测将来的价格(Y)。

无监督学习:在无监督学习中,没有标签或目标属性。一个典型的例子是基于学习模式的数据聚类。对于房屋细节(面积,位置,价格,卧室数量,建成日期等)的数据集,算法需要查找是否有任何隐藏的模式。例如,一些房屋非常昂贵,而另外一些则是平常的价格。一些房子很大,而一些房子的大小一般。有了这些模式,记录/数据被聚集成一组,如豪宅,非豪宅,Bunglows,公寓等。

强化:在强化学习中,代理环境中起作用,并收到正面或负面的反馈。正面的反馈告诉一个代理,它做得很好,代理进行类似的计划/行动。负面反馈告诉代理商,它做了一些错误的事情,应该改变它的行动方式。代理和环境是软件/编程实现。强化学习的核心是建立一个能够成功完成一个环境中的特定任务的代理。

常用算法:线性回归Logistic回归支持向量机K-最近邻居决策树随机森林梯度提升

预处理:在现实世界的场景中,机器学习算法可以直接应用的状态下,数据很少干净整洁。预处理是一个清理数据的过程,供给机器学习算法。一些常见的预处理步骤是:

1.缺失值:当某些值丢失时,通常通过添加中值/平均值或删除相应的行,或使用前一行的值等来处理。有很多方法可以做到这一点。究竟需要做什么取决于数据的种类。

2.分类变量:离散有限的一组值,像车型部门等,这些值被转换成数字或向量。转换为矢量被称为单热编码。在Python中有很多方法。一些机器学习算法/库本身通过内部编码来处理分类列。一种编码方式是 scikit-learn中使用  sklearn.preprocessing.OneHotEncoder

3.比例缩放:按比例将列中的值缩减为常用比例,如01.在所有列中的值在一个共同的范围内可以在一定程度上提高准确性和训练速度。

4.异常值:异常值需要根据问题和商业案例逐个处理。

数据转换:当数据集中的列/属性没有固有的模式时,它会被转换成logvalues),sqrtvalues)等等。

特征工程:特征工程是从现有数据中获取隐藏洞察的过程。考虑一个房屋价格预测数据集,其中有房屋宽度房屋长度卧室数量价格两列。在这里,我们看到房子的一个关键属性区域缺失,但可以根据绘图宽度绘图长度进行计算。所以一个计算列,面积被添加到数据集。这被称为特征工程。

训练:这是机器学习算法对给定数据进行训练以找出应用于未知数据的一般化模式的主要步骤。

降维: Dimentionality减少的目的在于找到所有功能中最重要的功能,旨在减少 维度 的数据。您可以在这里找到更多关于降维的信息

评估度量标准:评估度量标准是用于评估其正确性预测的度量标准。机器学习算法在训练时使用评估度量来评估,计算成本并优化成本凸函数。尽管每个算法都有一个默认评估指标,但建议根据业务案例/问题指定确切的评估指标。

参数调整:尽管当今最先进的算法大部分都具有合理的参数默认值,但通过调整参数来控制模型的准确性并改善总体预测,总是有帮助的。参数调整可以通过反复改变和评估准确性来反复试验。或者,可以提供一组参数值来尝试所有这些参数的不同排列,并找到最佳的参数组合。这可以scikit-learn使用称为超参数优化器的一些辅助函数完成  

过度拟合:过度拟合是机器学习模型几乎记忆所有训练数据并且几乎准确地预测已经在训练集中的数据的状态。这是一个模型未能概括和预测未被看见的数据的状态。可以使用正则化来处理过度拟合,如果配置不当,则调整超参数,从而阻止部分数据集使用正确的交叉验证12策略。

欠拟合(差异):欠拟合是即使在预测训练集中的数据时,机器学习模型的预测也不会很好。这也被称为具有高方差的模型。欠拟合可以处理添加更多数据,添加/删除特征,尝试不同的机器学习算法等。

正则化:在模型试图进一步学习(减少错误,倾向于过度拟合)的某个时刻,正则化有助于对付过度拟合效应。正则化通常是在成本/误差计算过程中添加的参数。机器学习算法可能不是明确地提供正则化参数。在这种情况下,通常还有其他一些参数可以调整,以在必要的范围内引入正规化。

预测:为了用训练的机器学习模型进行预测,通过提供测试数据集作为参数来调用模型的预测方法。测试数据集应该按照训练数据集的方式进行预处理。换句话说,在用于训练的机器学习模型的相同格式的训练数据中。

其他术语:

模型堆叠:当单个学习算法不好时,多个机器学习算法被用来进行预测,并且预测以不同的方式组合在一起。最简单的是加权预测。有时,其他机器学习模型(元模型)被用在第一级模型的预测之上。这可能会达到任何复杂程度,并可能有不同的管道。

深度学习

有趣的是,今天解决的所有机器学习问题中的大部分(我猜测超过90%)都是使用随机森林,梯度增强决策树,SVMKNN,线性回归,Logistic回归来解决的。

但是,有一些问题不能用上述技术来解决。类似图像分类,图像识别,自然语言处理,音频处理等问题,但可以使用称为深度学习的技术来解决。在开始深入学习之前,我相信首先要掌握所有上述概念。

良好的深度学习资源:

1Fast.ai  -  Pranay Tiwari

2neuralnetworksanddeplearning.com - 一本在线书籍,强调理论和基础

3Coursera的深度学习专长Andrew Ng

4deeplearningbook.org - 一本在线书籍

如果你知道深度学习的概念,一些流行的深度学习库是:KerasCNTKTensorflowtflearnpytorchTheano

实践:

练习是最重要的,没有提及练习机器学习,这个指南是不完整的。要进一步练习和掌握你的技能,下面是你可以做的事情:

从各种在线数据源获取数据集。一个这样流行的数据源是 UCI机器学习库

另外,您可以  搜索机器学习数据集

参加在线机器学习/数据科学比赛。一些流行的是KaggleHackerEarth等等。如果你最终从非常困难的事情开始,试着坚持一下。如果还觉得困难,把它停在一边,找到其他的。没有必要失望。通常在线比赛的问题有一定的难度,可能并不适合初学者。写下来你所学到的东西!这将有助于巩固你对这个问题的理解和想法。PS:可以在云栖社区发表!

关注数据科学,关于Quora的机器学习主题,很多伟大的建议和问题/答案。

最后的想法:
如果您正在认真从事机器学习/数据科学领域,或者您正在考虑改变职业生涯,请考虑您的动机以及您为什么愿意这样做。

如果你确定,我有一个建议给你。 永远不要放弃。这绝对是值得的,我可以说,从过去18个月以来,我走过了这条路......几乎每一天,每个周末和每个闲暇的时间(除了我旅行时,或者完全被我的日常工作所淹没)。掌握数据科学的道路并不容易。正如他们所说: “罗马不是一天建成的!。你需要学习很多科目,兼顾不同的学习重点。即使学了很多东西,你仍然会发现以前从来没有想过或听说过的新东西。你不断发现的新概念/新技术可能会让你觉得你还是不了解很多东西,还有更多的理由要报道。这很常见。只要坚持下去。设定大目标,计划小任务,只关注手头的任务。

本文由阿里云云社区组织翻译。

文章原标题《getting-started-machine-learning-one-hour》,

作者:Abhijit Annaldas是一位软件工程师,也是一位贪婪的学习者,自学获得了机器学习方面的知识和专业知识。译者:虎说八道,审阅:

文章为简译,更为详细的内容,请查看原文

相关文章
|
2月前
|
机器学习/深度学习 人工智能 Android开发
揭秘AI编程:从零开始构建你的第一个机器学习模型移动应用开发之旅:从新手到专家
【8月更文挑战第29天】本文将带你走进人工智能的奇妙世界,一起探索如何从零开始构建一个机器学习模型。我们将一步步解析整个过程,包括数据收集、预处理、模型选择、训练和测试等步骤,让你对AI编程有一个全面而深入的理解。无论你是AI初学者,还是有一定基础的开发者,都能在这篇文章中找到你需要的信息和启示。让我们一起开启这段激动人心的AI编程之旅吧! 【8月更文挑战第29天】在这篇文章中,我们将探索移动应用开发的奇妙世界。无论你是刚刚踏入这个领域的新手,还是已经有一定经验的开发者,这篇文章都将为你提供有价值的信息和指导。我们将从基础开始,逐步深入到更复杂的主题,包括移动操作系统的选择、开发工具的使用、
|
机器学习/深度学习 传感器 人工智能
Google I/O 李飞飞等四领域女性专家,谈机器学习的过去、现在和未来
在 Google I/O 首日的 Keynote 中,Google 公布了一系列新的硬件、应用和基础研究。自去年提出 AI First 战略,今年的大会上 Google 同样安排了不少与机器学习开发相关的内容,比如《教程 | 如何使用谷歌 Mobile Vision API 开发手机》。
108 0
Google I/O 李飞飞等四领域女性专家,谈机器学习的过去、现在和未来
|
机器学习/深度学习 人工智能
理解五个基本概念,让你更像机器学习专家
这篇文章主要讲述了机器学习的相关内容,阐述了机器学习的主要意义和形成过程。区别了机器学习与AI、深度学习、神经网络等专业词汇。
1159 0
|
机器学习/深度学习 算法
淘宝资深算法专家永叔带你入门机器学习
本文介绍了机器学习的基础知识以及在企业中的一些应用。通过本文的学习可以快速了解机器学习的基本概念、监督学习以及PAC学习理论,并了解机器学习在实际应用中现状。
5392 0
|
机器学习/深度学习 人工智能 算法
五位专家跟你讲讲为啥Python更适合做AI/机器学习
为什么Python会在这股深度学习浪潮中成为编程语言的头牌?听听大牛如何解释吧!
4888 0
|
机器学习/深度学习 人工智能 自动驾驶

热门文章

最新文章