先附上Scikit-learn中文文档:

scikit-learn中文社区

在过去的几年里,人们对机器学习产生了新的兴趣。这种复苏似乎是由强大的基本因素推动的 - 全球各地的终端都在释放出的大量数据,并且这些数据的成本非常低廉,计算成本是有史以来是最低的!

然而,并非每个人都了解机器学习是什么。这里有几个例子:

  • 什么是机器学习?它与大数据和业务分析有何不同?
  • 机器学习,数据分析,数据挖掘,数据科学和AI之间有什么区别?

最近,我们发布了一个有趣的(但非常真实的)主题。

说道这一点,考虑到这个话题上的混乱程度,我们打算写一篇关于机器学习的介绍性文章。这个想法是去掉所有可能在过吓唬人的术语,创造一些可以被5岁的孩子轻松了解的东西(emmmmmmm............好吧,对不起,可能需要高中毕业)!

机器学习究竟什么是?我的一个小实验......

为了确保我不会高估(或低估)目标受众的能力,我找到了10个对分析完全陌生的人。他们之前都没有听说过机器学习(是的,真的有这样的人!!!!!)。他们是这样说的:

  • 我不知道,可能是向机器中学习?
  • 让机器学习一些东西,也就是编程机器软体
  • 借助计算机帮助我学习?
  • 通过在线课程学习(!!!)

这很有趣!完美的解释了他们认为的机器学习。以下是我向这些人解释机器学习的概念:

  • 机器学习是指以最智能的方式处理大量数据(通过开发演算法)以获得可操作的见解的技术。

这时,他们看著我,就好像我是火星人一样对他们说话!所以,我停止了愚蠢的术语讲解,然后反过来问他们问题,方便他们可以更深入的了解:

  • KJ:当你在谷歌搜索某些东西时,你认为会发生什么?
  • 组员:Google会显示与该搜索相关的网页。
  • KJ:那很好!但究竟是什么让Google可以向你显示这些相关页面呢?

这次看起来他们想的比较多。然后组内的一些人开始发言

  • 组员:Google会查看用户过去的点击次数,了解哪些网页与这些搜索更相关,然后在搜索结果上提供这些结果。

这是一个很好的尝试。但我还必须控制住自己的冲动,告诉他们Google做到这一点要比他们这个简单的概念复杂的多。但是,我想我有一个更好的方法来解释机器学习。所以,我继续说:

  • KJ:好的,这听起来不错。但是,Google会定期处理多少次搜索以及所有搜索的类型?
  • 组员:这一定是一个很大的数字 - 可能每年是一万亿次搜索
  • KJ:那么,你们认为Google如何准确地满足如此多的请求?你们是不是认为有人坐在Google办公室并不断处理哪些搜索结果是跟搜索的问题是相关的呢?
  • 小组成员:我还没有想过,但是不会有人去处理这些,因为这好像听起来不像是人类可以处理的。
  • KJ:你是对的。这是机器学习发挥作用的地方。机器学习是一组技术,以最智能的方式处理大量数据(通过开发演算法或一组逻辑规则), 来获得可操作的结果(在我们讨论的问题中是为用户提供搜索)。

这个时候小组成员们按照意料之中的点了点头,看起来像我已经完成任务......耶!可是总觉得哪里不对呢…

现在有一些常见的问题 - 比如机器学习与X有什么不同?

你开始学习有关机器学习的那一刻,你会看到各种知识好像火箭一样在高速的轰炸著你。这些是术语在行业内使用的比较多。以下是其中一些:人工智慧,深度学习,数据挖掘和统计。

为了让你更加清楚理解,我以简单的方式解释了这些术语。你还会了解到这些术语在机器学习中的重要性:

什么是人工智慧(AI):

它指的是一台计算机(机器)进行编程使得自己变得合理的程序。啊! 什么是理性的?理性是做出决定的基础。

我提到「理性」而不是智力(如预期的那样),因为我们人类倾向于做出高度理性和可行的决策而不是明确的智慧。这是因为所有智能决策都不需要理性和可行(我的假设)。因此,使用人工智慧背后的核心动机是以一种时髦的方式实现计算机(机器)的行为,而不是由愚蠢的人类指导!

人工智慧可以包括用于检查程序中的某些参数是否正常运行的程序。例如,如果参数说「X」超过某个阈值,机器可能会发出警报,而该阈值反过来可能又会影响相关过程的结果。

人工智慧在机器学习中的应用

机器学习是人工智慧的一个子集,其中机器经过培训,可以从中学习过去的经验。过去的经验是通过收集的数据制定的。然后它结合朴素贝叶斯,支持向量机等演算法来提供最终结果。

什么是统计:

在这个高水平的阶段,我假设你已经了解了统计学。如果没有的话,这里有一个可以让你快速了解统计学的定义,统计学是数学的一个分支,它利用数据,或者是整个群体的数据,或者从群体中抽取一个样本,来进行分析并给出推论。使用的技术统计有回归、方差、标准差、条件概率等等。

在机器学习中使用统计学

让我们理解这一点,首先需要假设,我需要将收件箱中的邮件分为两类:「垃圾邮件」和「重要邮件」。为了识别垃圾邮件,我可以使用称为朴素贝叶斯的机器学习演算法,该演算法将检查过去垃圾邮件的频率,从而将新邮件识别为垃圾邮件。朴素贝叶斯使用统计技术贝叶斯定理(通常称为条件概率)。因此,我们可以说机器学习演算法使用统计概念来执行机器学习。

PS:机器学习和统计模型之间的主要区别来自它们的发源地。机器学习起源于计算机科学系,统计建模来自数学系。此外,任何统计建模都假设许多分布,而机器学习演算法通常不知道所有属性的分布。

什么是深度学习:

深度学习与机器学习演算法(人工神经网路,ANN)相关联的,该演算法使用人脑的概念来促进任意函数的建模。神经网路需要大量数据,并且该演算法在同时对多个输出进行建模时具有高度灵活性。神经网路是一个更复杂的主题,我们可以在完全独立的文章中对其进行讨论。

什么是数据挖掘:

在我刚开始做数据分析师的日子里,我总是习惯于混淆两个术语:机器学习和数据挖掘。但是,后来我了解到,数据挖掘处理的是搜索特定信息。机器学习专注于完成一项特定的任务。让我举一个帮助我记住差异的例子; 教别人如何跳舞是机器学习。利用某人在城市中寻找最佳的舞蹈中心是数据挖掘。是不是超级简单!

但是,我们究竟如何教机器?

教机器涉及到一个结构化过程,这个过程中,每个阶段都可以构建更好的机器版本。为简化起见,教学机器的过程可分为三个部分:

我将在随后的文章中详细介绍这3个步骤中的每一个。到目前为止,你应该明白,这3个步骤确保机器的整体学习能够同等重要地执行给定的任务。机器的成功取决于两个因素:

  1. 抽象数据的泛化效果如何。
  2. 这台机器如何把它的学习应用到预测未来的实际应用中。

机器学习的步骤是什么?

有5个基本步骤用于执行机器学习任务:

  1. 收集数据:无论是来自excel,access,文本文件等的原始数据,这一步(收集过去的数据)构成了未来学习的基础。相关数据的种类,密度和数量越多,机器的学习前景就越好。
  2. 准备数据:任何分析过程都会依赖于使用的数据质量如何。人们需要花时间确定数据质量,然后采取措施解决诸如缺失的数据和异常值的处理等问题。探索性分析可能是一种详细研究数据细微差别的方法,从而使数据的质量迅速提高。
  3. 训练模型:此步骤涉及以模型的形式选择适当的演算法和数据表示。清理后的数据分为两部分 - 训练和测试(比例视前提确定); 第一部分(训练数据)用于开发模型。第二部分(测试数据)用作参考依据。
  4. 评估模型:为了测试准确性,使用数据的第二部分(保持/测试数据)。此步骤根据结果确定演算法选择的精度。检查模型准确性的更好测试是查看其在模型构建期间根本未使用的数据的性能。
  5. 提高性能:此步骤可能涉及选择完全不同的模型或引入更多变数来提高效率。这就是为什么需要花费大量时间进行数据收集和准备的原因。

无论是任何模型,这5个步骤都可用于构建技术,当我们讨论演算法时,您将找到这五个步骤如何出现在每个模型中!

机器学习演算法有哪些类型?

监督学习/预测模型:

顾名思义,预测模型用于根据历史数据预测未来结果。预测模型通常从一开始就给出明确的指示,如需要学习的内容以及如何学习。这类学习演算法被称为监督学习。

例如:当营销公司试图找出哪些客户可能会流失时,就会使用监督学习。我们还可以用它来预测地震,龙卷风等危险发生的可能性,目的是确定总保险价值。使用的演算法的一些示例是:最近邻演算法,朴素贝叶斯演算法,决策树演算法,回归演算法等。

无监督学习/描述性模型:

它用于训练描述模型,其中没有设置目标,并且没有一个特征比另一个重要。无监督学习的情况可以是:当零售商希望找出产品组合时,顾客往往会更频繁地购买。此外,在制药工业中,可以使用无监督学习来预测哪些疾病可能与糖尿病一起发生。这里使用的演算法示例是:K-均值聚类演算法

强化学习(RL):

这是机器学习的一个例子,其中机器被训练根据业务需求做出特定的决定,唯一的座右铭是最大化效率(性能)。强化学习所涉及的理念是:机器/软体代理根据其所处的环境不断地自我训练,并应用它丰富的知识来解决业务问题。这种持续的学习过程可以减少人类专业知识的参与,从而节省大量时间!

RL中使用的演算法的示例是马尔可夫决策过程。

PS:监督学习和强化学习(RL)之间存在细微差别。RL主要涉及通过与环境交互来学习。RL代理从其过去的经验中学习,而不是从其持续的试验和错误学习过程中学习,而是外部主管提供示例的监督学习中学习。

了解差异的一个很好的例子是无人驾驶汽车。自驾车使用强化学习来不断做出决策 - 走哪条路?速度是是多少?这些问题都是与环境互动后决定的。监督学习的一个简单表现是预测计程车从一个地方到另一个地方的车费。

机器学习有哪些应用?

了解机器学习的应用是非常有趣的。Google和Facebook广泛使用ML将其各自的广告推送给相关用户。以下是你应该了解的一些ML应用:

  • 银行和金融服务:ML可用于预测可能违约支付贷款或信用卡账单的客户。这是至关重要的,因为机器学习将帮助银行识别那些是可以获得贷款和信用卡的客户。
  • 医疗保健:它用于根据患者的症状诊断致命疾病(例如癌症),并根据类似患者的过去数据对其进行统计。
  • 零售:它用于识别销售频繁(快速移动)的产品和缓慢移动的产品,帮助零售商决定从货架上引入或移除哪种产品。此外,机器学习演算法可用于查找哪两个/三个或更多产品一起销售。这样做是为了设计客户忠诚度计划,从而帮助零售商开发和维护忠诚的客户。

这些例子只是冰山一角。机器学习在每个领域都有广泛的应用。可以查看一些Kaggle问题以获得更多知识,上面包含的例子很容易理解,至少可以体验机器学习的无所不能。

随著人工智慧的热潮,人们开始逐渐的对机器学习产生了兴趣,而这种兴趣也是全球化,虽然人们对机器学习有很大的兴趣,但是人们对机器学习似乎并没有真正的了解,而文章的作者借由向一些非数据科学行业内的小白科普机器学习的过程中,用非常白话的语言向我们介绍了什么是机器学习,一些机器学习中的专业术语,机器学习的步骤和机器学习的类型与应用。并且通过一些小案例向我们解释了各种演算法的作用,在我认为,机器学习是进入人工智慧领域一块很好的垫脚石,至少不会再未来的浪潮中使我们迷失了方向。


机器学习是一门非常交叉的科学。

概念:多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、演算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

对于刚入门的小白来说,很多时候并不是找不到资料学习,而是资料太多太杂,在眼花缭乱之中很难找到一条完备的学习路径;

下面就自己的经验来给你推荐一条完善的学习路线;

1、python-basic

在机器学习领域,实现代码大部分都是使用python写的。

一句笑话:python除了不能生孩子,其他的都行。

但我不是说只学习python就可以了,当然学有余力的话还可以去学习一下经典的C/C++, 就比如在CV(机器视觉)领域,Yolov3(一款小众的深度学习框架) 其源码都是用纯C语言和CUDA底层编写的,所以它的特点让它在Yolov3项目中大放光彩:速度快,充分发挥多核处理器和GPU并行运算的功能。

2、numpy

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:

  • 一个强大的N维数组对象 ndarray
  • 广播功能函数
  • 整合 C/C++/Fortran 代码的工具
  • 线性代数、傅里叶变换、随机数生成等功能

在机器学习领域,使用Numpy来搭建科学计算环境是常用的。

3、Pandas

pandas 是基于Numpy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。

4、Scipy

Scipy是一个用于数学、科学、工程领域的常用软体包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。

5、data-visualization(数据可视化基础,包含matplotlib和seaborn)

此时就到了数据可视化的阶段了,在这一阶段的学习过程中,趣味性相对提升。

哪个男孩不喜欢花花绿绿的图表呢?

Seaborn和Matplotlib是Python最强大的两个可视化库。

使用效果如下面这种散点图,当然还有很多其他的图表类型。

6、scikit-learn基础

此时骚年你就快熬出头了

scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的演算法应用,并且涵盖了几乎所有主流机器学习演算法。在工程应用中,用python手写代码来从头实现一个演算法的可能性非常低,这样不仅耗时耗力,还不一定能够写出构架清晰,稳定性强的模型。更多情况下,是分析采集到的数据,根据数据特征选择适合的演算法,在工具包中调用演算法,调整演算法的参数,获取需要的信息,从而实现演算法效率和效果之间的平衡。而sklearn,正是这样一个可以帮助我们高效实现演算法应用的工具包。

sklearn 实现了很多演算法,面对这么多的演算法,如何去选择呢?其实选择的主要考虑的就是需要解决的问题以及数据量的大小。sklearn官方提供了一个选择演算法的引导图。

7、machine-learning(机器学习基础)

恭喜你,现在你已经差不多搞懂了ML是个什么东西。

现在开始进入下阶段的打怪升级。

平时请注意保养头发。

下面推荐一个对小白友好的ML的网站,资源虽好,但不要贪杯哦~

Machine Learning?

www.cntofu.com

上面就是答主认为合理科学的一条ML的学习路线。

一条路谁都可以走,重要的是谁会走到头。

最后注意保养头发~

如果有兴趣请关注我的CSDN博客,小菜鸡不定时分享知识。

马飞头秃了吗?_Rachel_07_CSDN博客-Notes,opencv,软体配置领域博主?

blog.csdn.net图标


能不能入门个人觉得很大一个因素就是学习的顺序,下面是一篇最近写的一个观点,题主可以参考!

入门机器学习从理论开始还是从实战开始??

www.zhihu.com图标

凭个人经验回答,不喜勿喷.

首先机器学习是一个很大的范围,你可以先找你最感兴趣领域,然后看看领域内目前最火的技术是什么,这样我们就确定了一个学习的方向.

机器学习的两条大腿一定要抱紧了: 数学+编程

一个新手,成长最快的方法便是项目实践,这个项目可以是一个简单的分类,一个简单的回归,不一定是很复杂的项目.这个阶段我称之为感悟期,重点在于感悟机器学习大概是怎么回事.

下面是一些入门的例子:

手写数字识别?

www.zhihu.com图标mmggqq:Scikit-Learn预测葡萄酒质量-从零构建预测模型?

zhuanlan.zhihu.com图标傅少搞数据:基于Python预测波士顿房价?

zhuanlan.zhihu.com图标

过了感悟期,可以阅读一些经典书籍,了解各种方法的基础内容,增长自己的知识面.

  • 神经网路
  • 决策树
  • 贝叶斯分类
  • KNN
  • 支持向量机
  • Bososting
  • 随机森林
  • ......

深度学习入门 (豆瓣)?

book.douban.com图标机器学习 (豆瓣)?

book.douban.com图标

在了解完常见方法之后,可以在比赛平台上边学习边实践,竞赛平台上的一些经验都是实打实的干货.

天池大数据众智平台-阿里云天池?

tianchi.aliyun.com

AI研习社 - 研习AI产学研新知,助力AI学术开发者成长。?

god.yanxishe.com

FlyAI-AI竞赛服务平台?

www.flyai.com图标

emmm,学习是永无止境的,如果你对现有的演算法都比较熟悉,且专注于最新的研究成果或者应用,可以找所研究领域顶级会议/期刊上的论文看看.

机器学习领域有哪些著名的期刊和会议??

www.zhihu.com图标


AI爱好者们,利用闲暇时间了解AI,希望学习时间自由度高一些。我们最经典重要的AI知识整理成图,并推荐经典学习材料和链接,希望AI爱好者高效清晰的掌握AI的精髓,真正无师自通。


学习路线

参考台湾大学李宏毅老师的LearningMap,制定了这次培训的LearningMap,图中学习的顺序也做了相关的标注。我们先从监督学习中的线性回归问题开始学习。因为机器学习需要一定的数学基础,有些数学知识还是大学的时候学习的,可能大家有些已经忘记了,所以在线性回归之前我们也准备了线性代数、概率论和资讯理论的材料供大家复习。


学习材料

主要参考资料

1、《机器学习课程-吴恩达网易公开课》

吴恩达机器学习课程对应的课件

(视频课程file:///C:/Users/l00358533/AppData/Local/Temp/mume11834-8984-17lcwsg.dtnl1bgldi.html 2/2

http://open.163.com/special/opencourse/machinelearning.html)

2、《机器学习实战》

这本书将理论和实践相结合,里面会有一些演算法应用的实际例子,供大家参考,主要采用python语言。

3、《machinelearninginaction.zip》

包含《机器学习实战》中的每章节实践代码和数据。

4、《深度学习_中文.pdf》

一本主要介绍深度学习演算法的材料,前面的章节也包含了数据基础知识 和机器学习的简单介绍。

5、《统计学习方法(李航).pdf》

李航老师的统计学方法主要介绍了几种经典的演算法,LR,SVM,CART等,推导和演算法也比较详细,建议仔细阅读。

6、《机器学习(周志华)》

周老师的这本书讲解比较详细,内容也很丰富,除了我们相关的章节, 其他的内容大家有时间也可以都看看。

7、《李宏毅深度学习2017视频》

youtube上可以观看,每节课对应的视频详细网址会具体给出。

8、《深度学习2017ppt.rar》

辅助参考资料

1、《机器学习基石视频》

2、《机器学习技法视频》

这两门课程都是由台湾林轩田老师主讲的,像决策树,随机森林,GBDT 在这门课程中都有讲解,想详细了解的同学可以选择对应的视频观看。youtube上可以看。

3、《麻省理工公开课:线性代数》

4、Gilbert Strang教授的网易公开课

人工智慧园地:AI爱好者们看过来,一张图让你入门AI?

zhuanlan.zhihu.com图标
推荐阅读:
相关文章