赵走x博客
网站访问量:151935
首页
书籍
软件
工具
古诗词
搜索
登录
深入浅出Python机器学习:31、自动特征选择
深入浅出Python机器学习:30、数据“升维”
深入浅出Python机器学习:29、数据表达
深入浅出Python机器学习:28、聚类算法
深入浅出Python机器学习:27、特征提取
深入浅出Python机器学习:26、数据降维
深入浅出Python机器学习:25、数据预处理
深入浅出Python机器学习:24、神经网络实例一一手写识别
深入浅出Python机器学习:23、神经网络的原理及使用
深入浅出Python机器学习:22、神经网络的前世今生
深入浅出Python机器学习:21、SVM 实例一一波士顿房价回归分析
深入浅出Python机器学习:20、SVM 的核函数与参数选择
深入浅出Python机器学习:19、支持向量机SVM 基本概念
深入浅出Python机器学习:18、随机森林实例一一要不要和中目亲对象进一步发展
深入浅出Python机器学习:17、随机森林
深入浅出Python机器学习:16、决策树
深入浅出Python机器学习:15、朴素贝叶斯实战一一判断肿瘤是良性还是恶性
深入浅出Python机器学习:14、朴素贝叶斯算法的不同方法
深入浅出Python机器学习:13、朴素贝叶斯基本概念
深入浅出Python机器学习:12、使用L1 正则化的线性模型一一套索回归
深入浅出Python机器学习:11、使用L2 正则化的线性模型一一岭回归
深入浅出Python机器学习:10、最基本的线性模型一一线性回归
深入浅出Python机器学习:9、线性模型的墓本概念
深入浅出Python机器学习:8、K 最近邻算法项目实战一一酒的分类
深入浅出Python机器学习:7、K最近邻算法用于回归分析
深入浅出Python机器学习:6、K最近邻算法处理多元分类任务
深入浅出Python机器学习:5、k最近邻算法在分类任务中的应用
深入浅出Python机器学习:4、K 最近邻算法的原理
深入浅出Python机器学习:3、一些必需库的安装及功能简介
深入浅出Python机器学习:2、基于python i吾言的环境配置
深入浅出Python机器学习:1、概述
人脸数据集加载faces = fetch_lfw_people()报错
31、直方图
74、插件开发:Android端API实现
Python3之socket编程--3:基于UDP的套接字
15、使用 jQuery 处理 Ajax 请求
深入浅出Python机器学习:1、概述
资源编号:75816
人工智能
深入浅出Python机器学习
热度:88
近年来,全球新一代信息技术创新浪潮迭起。作为全球信息领域产业竞争的新一轮焦点,人工智能的发展迎来了第二次浪潮,它正在推动工业发展进入新的阶段,掀起第四次工业革命的序幕。而作为人工智能的重要组成部分,机器学习也成了炙手可热的概念。
近年来,全球新一代信息技术创新浪潮迭起。作为全球信息领域产业竞争的新一轮焦点,人工智能的发展迎来了第二次浪潮,它正在推动工业发展进入新的阶段,掀起第四次工业革命的序幕。而作为人工智能的重要组成部分,机器学习也成了炙手可热的概念。 本幸将向读者介绍机器学习的基础知识,为后面的学习打好基础。 本幸主要涉及的知识点有: * 什么是机器学习 * 机器学习的主要应用场景 * 机器学习应该如何入门 * 有监督学习和无监督学习的概念 * 分类、回归、泛化、过拟合与欠拟合等概念 # 1.1 什么是机器学习一一从一个小故事开始 要搞清楚什么是机器学习,我们可以从一个小故事开始。 小C 是一个即将毕业的大学生、单身的小伙子,他一直在暗地里喜欢隔壁班的女神,可是又苦于没有机会接近她,于是在很长一段时间里,小C 只能保持这种暗恋的状态。 突然有一天,在一个很偶然的机会下,小C 得到了女神的微信号,并且添加了她。然后开始密切关注她的朋友圈,观察她的一举一动。不久小C 就有了重大发现,女神在朋友圈经常发三种类型的内容:书籍、电影和旅游。这可是个了不起的发现,对于小C 来说,千载难逢的机会来了。接下来,小C 把女神喜欢的书名和特征( Features )保存在电脑上, 做成一个数据集( Dataset ),然后根据这个数据集用“算法( Algorithm )”建立了一个“模型( Model )”,并且通过这个模型预测出了女神会喜欢哪一本新书,之后小C 买下了模型预测出来的书,作为礼物送给了女神。 收到新书的女神很开心,也对小C 产生了好感。 后来小C 又用同样的方法预测出了女神喜欢的电影,并买票请女神去看。不出所料,每次女神的观影体验都棒极了,两个人的关系也越来越近。再后来,小C 又预测了女神会喜欢的旅游地点,订好机票和酒店,对女神发出了邀请。 当然,女神不会拒绝小C 了,因为这次旅游的目的地可是她一直想去的地方呢! 整个旅途愉快极了,小C 总能像手术刀一样精准地切到女神最感兴趣的话题上。女神觉得太不可思议了,她问小C :“为什么你会这么了解我呢? ” 小C 按捺住内心的喜悦, 故作镇定地说道: “这是机器学习的力量。” “ 什么是机器学习啊?”女神不解。 是时候让小C 展现出扎实的学术底蕴了,他抬头的。仰望星空,深沉地说道: “机器学习,最早是由一位人工智能领域的先驱, Arthur Samuel (见图1 -1 ),在1959 年提出来的。本意指的是一种让计算机在不经过明显编程的情况下,对数据进行学习,并且做出预测的方法,属于计算机科学领域的一个子集。公认的世界上第一个自我学习项目,就是Samue l 跳棋游戏。而我也是通过机器学习的方法,通过你在社交媒体的数据预测出你的喜好的。”  毫无悬念地,女神l 对小C 产生了深深的崇拜感, 并且芳,心暗许。从此以后,两个人走在了一起,并过上了幸福的生活。 对于一部童话来说,故事到这里就可以结束了。可是对于一本机器学习的入门书来说,我们才刚刚开始。 有了女朋友的小C 也要背负起自己的责任了,他需要一份工作,才能为两个人的生活提供经济来源。很幸运的是,他通过校园招聘进入了国内最大的互联网公司一一蝙蝠公司,成为一名机器学习工程师,从此开始了他的职业生涯。 # 1.2 机器学习的一些应用场景一一蝙蝠公司的业务单元 小C 入职的蝙蝠公司,作为国内互联网行业的龙头企业, 其业务覆盖面十分广泛,包括电子商务、社交网络、互联网金融以及新闻资讯等。每一个方向在内部都被称为一个B U ( 业务单元〉。每个BU 相对独立运作,有自己完善的体系。但机器学习技术, 在每个BU 都有非常深入的应用。下面我们来大致了解一下。 **1 电子商务中的智能推荐** 蝙蝠公司的电子商务BU 是国内最大的在线零售平台,其用户接近5 亿,每天在线商品数超过8 亿,平均每分钟会售出4 . 8 万件商品。正因此,电子商务B U 拥有海量的用户和商品数据。当然,为了让平台的成交总额( Gross merc ha nd ise Vo lum e, GMV )不断提高,电子商务B U 必须精确地为用户提供商品优惠信息。和小C 预测女神的喜好类似,电子商务B U 要通过机器学习,来对用户的行为进行预测。但在如此海量的数据下,模型要比小C 的模型复杂很多。 比如某个男性用户的浏览记录和购买记录中有大量的数码产品,而且系统识别出该用户访问平台时使用的设备是iPhone 7 , 则算法很有可能会给该用户推荐iPhone X 的购买链接。而另外一个女性用户浏览和购买最多的是化妆品和奢侈品,那么机器就会把最新款的Hermes 或者Chanel 产品推荐给她。 **2 . 社交网络中的效果广告** 蝙蝠公司旗下的社交网络平台目前有超过9 亿的月活跃用户(Monthly ActiveUsers, MAU ),其主要盈利模式是通过在社交网络中投放效果广告,从而为商家提供精准营销的服务。在这种盈利模式下,该BU 需要保证广告的投放尽可能精准地到达目标受众,并转化为销售。因此需要机器学习算法来预测用户可能感兴趣的广告内容,并且将符合要求的内容展示给用户。 比如用户经常转发或点赞和汽车有关的信息,那么系统就会把某品牌新车上市的广告展示给用户,而如果用户经常转发或点赞的是和时尚相关的信息,那么系统推荐的广告就会是新一季的服装搭配潮流等。 **3 . 互联网金融中的风控系统** 蝙蝠公司旗下另外一个业务单元一一互联网金融事业部,主要是为用户提供小额贷款和投资理财服务。目前该BU 拥有4 .5 亿用户,具有每秒处理近9 万笔支付的能力。而且它的资产损失比率仅有0.001 % ,这是一个非常恐怖的数字! 要知道全球最老牌的在线支付工具资产损失比率也要0 .2% 。要达到如此低的资产损失比率,必须要有强大的风控系统作为支撑,而风控系统背后,就是机器学习算法的应用。 例如,在这个场景中,风控系统要能够收集己知的用户欺诈行为,并对欺诈者的行为数据进行分析,再建立模型,在类似的欺诈行为再度发生之前就把它们扼杀在摇篮里,从而降低平台的资产损失比率。 **4. 新闻资讯中的内容审查** 蝙蝠公司旗下的新闻资讯业务单元的表现也同样让人眼前一亮。这个BU 的产品主要是新闻客户端APP ,据称其激活用户数已经超过6 亿,而平均每个用户使用时长达到了76 分钟。而令人咂舌的是,这个业务单元下据说没有编辑人员,所有的内容处理都是通过机器学习算法自动完成的。 比如该产品的“精准辟谣”功能,就是主要依赖机器学习的算法,对内容进行识别。如果判断为是虚假信息,则会提交给审核团队,审核属实之后,虚假信息就会被系统屏蔽,不会给用户进行推送。 当然,蝙蝠公司的业务单元远远不止上述这几个,同时机器学习在这些业务单元中的应用也远远不止上述这几个方面。限于篇幅,本书就不再一一罗列了。 **5. 机器学习在蝙蝠公司之外的应用** 蝙蝠公司代表的是互联网行业,然而在互联网行业之外, 机器学习也被广泛的应用。 例如在医疗行业中所使用的专家系统, 典型的案例就是诞生于2 0 世纪7 0 年代的MYC阳 系统,该系统由斯坦福大学研制,它可以用患者的病史、症状和化验结果等作为原始数据, 运用医疗专家的知识进行逆向推理,找出导致感染的细菌。若是多种细菌,则用0 到1 的数字给出每种细菌的可能性,并在上述基础上给出针对这些可能的细菌的药方。 此外,还有诸如智能物流、智能家居、无人驾驶等领域。可以说机器学习,己经非 常深切地融入了我们的生活与工作当中。 **6. 一些炫酷的“黑科技”** 除了上述我们提到的己经广泛应用的领域,还有一些代表着未来发展趋势的案例, 例如: 2 016 年, Google 旗下的A I 程序AlphaGo 首次战胜了人类围棋世界冠军。2 017 年, 埃隆· 马斯克创办的Ope nAI 公司开发的人工智能程序在电子竞技游戏DOTA 中战胜了 人类世界冠军Dendi 。除此之外,还有很多诸如AI 写新闻稿、画插画、写诗词等消息充 斥着各大新闻网站的首页,仿佛用不了多久, AI 就会在各个方面全面替代人类,进而统 治世界了。 本书并不想争论AI 究竟会让人类生活得更美好, 还是会成为地球的主宰者奴役我们。 在这里只想和大家一起探究一下这些案例背后的原理。不管是A lpha Go 还是Op enAI ,其 背后的原理都是机器学习中的深度学习, 它们的崛起在全球范围内掀起了一阵人工智能 和深度学习的热潮。 实际上, 人工智能这个概念并不是最近几年才出现的。早在20 世纪60 年代,人工 智能就被提出,并且分为诸多学派。其中联结学派就是神经网络,或者说深度学习的代表。 但受限于当时的计算能力,人工智能的发展也出现了停滞。 而随着时代的发展,现在的芯片计算能力越来越强,同时用户的数据量也越来越大, 为人工智能的进一步发展提供了必要的先决条件, 而机器学习、深度学习、神经网络等 概念也随之火爆起来。同时在人才市场上, 机器学习工程师、算法工程师、数据分析师 等职位也呈现出了供不应求的场面, 因此有更多的人开始投身到机器学习的研究当中。 # 1.3 机器学习应该如何入门一一世上无难事 相信在看了上面的内容之后, 一些读者朋友也己经动心,想要加入机器学习的领域当中了。保不齐能像故事中的小c 一样, 既能抱得美人归,又能找到一份心仪的工作。 但另外,又会担心自己基础薄弱,不知道从何入手。 不用担心!只要你肯多动脑,勤动手,相信很快就可以入门的。下面是我们给大家的一点学习方面的建议。 **1. 从一种编程语言开始** 如果你之前完全没有编程的基础,那么我们建议先从一门编程语言开始。目前市面上常用的编程语言有很多种,如C++、Java 、Python 、R 等。那么该选择哪一种呢?不必纠结,编程语言并没有绝对的“虫子”和“不好”的区别,只是它们各自有各自的特点而己。 而且如果你掌握了其中的一种,再学习其他的编程语言时,上手会快得多。 本书使用的语言是Python ,主要原因是:在数据科学领域, Python 己经成为了一门通用的编程语言。它既有通用编程语言的强大能力,同时还具有诸如MATLAB 或者R之类针对某个专门领域语言的易用性。同时丰富和强大的库,让Python 在数据挖掘、数据可视化、图像处理、自然语言处理等领域都有非常不俗的表现。 Python 还被称为“胶水语言”,因为它能够把用其他语言编写的各种模块轻松连接在一起。而它简洁清晰的语法和强制缩进的特点,都让Python 对初学者非常友好。此外,它还是完全开源的,用户完全不需要支付任何费用。 由于Python 语言的简洁性、易读性以及可扩展性,在国外用Python 做科学计算的研究机构日益增多, 一些知名大学己经采用Python 来教授程序设计课程。众多开源的科学计算软件包都提供了Python 的调用接口,如著名的计算机视觉库OpenCV 、三维可视化库VTK 、医学图像处理库ITK 。Google 的深度学习框架TensorFlow 兼容得最好的语言之一,也是Python 。 2017 年7 月20 日, IEEE 发布2017 年编程语言排行榜: Python 高居首位。 还有一个重要的原因,对于用户来说, Python 的学习成本是非常低的。哪怕是完全零基础的读者,在一个月左右的努力学习之后,也可以大致掌握它的基本语法和主要的功能模块。 因此我们推荐读者使用Python 进行机器学习方面的研究与开发,在后面的章节我们会带大家配置基于Python 的开发环境。 **2. 熟悉机器学习中的基本概念** 在对编程语言有了基本的掌握之后,读者朋友需要熟悉机器学习中的一些基本概念,比如什么是“有监督学习”,什么是“无监督学习”,他们之前的区别是什么,在应用方面有什么不同。另外,对机器学习的“分类”和“回归”有基本认知,清楚在什么场景下使用分类算法,在什么场景下使用回归算法。最后理解模型的“泛化”,明白在什么情况下模型会出现“过拟合”的现象,在什么情况下会出现“欠拟合”的现象。 **3. 了解机器学习中最常见的算法** 在了解了基本概念之后,读者朋友就可以开始了解机器学习中最常用的一些算法了。 比如K 最近邻算法、线性模型、朴素贝叶斯、决策树、随机森林、SVMs 、神经网络等。 在这个过程中, 读者需要了解每种算法的基本原理和用途,它们的特性分别是什么, 在不同的数据集中表现如何,如何使用它们建模,模型的参数如何调整等。 **4 . 掌握对数据进行处理的技巧** 读者朋友可根据前述内容,对小数据集进行建模并且做出一些预测。但是在真实世界中,数据往往比我们拿来实验的小数据集复杂很多倍。它们的特征变量会大很多,也就是说数据的维度会高很多,同时可能完全没有训练数据集供你使用,这时候读者就需要掌握一些数据处理的技能,比如如何对数据进行降维,或者聚类,从而让数据更容易被理解,并从中找到关键点, 为建模奠定基础。 **5. 学会让模型更好地工作** 学会用算法建模和对数据进行处理之后, 读者朋友要做的是如何让模型更好地工作。 例如,怎样做可以让算法的效率更高,怎样找到最适合的模型, 模型最优的参数是什么, 以及如何打造一个流水线,让几个模型在其中共同协作,以解决你的问题等。 **6 . 动手,一定要动手操作** 学习一门知识最好的办法就是使用它,因此建议读者朋友一定要自己动手实操。不要嫌麻烦,尽可能把本书中的代码全部自己敲一下这样才能对内容有更加深刻的理解。 如果觉得不够过瘾,还可以到知名的Kaggle 大赛平台,或者“天池”算法大赛平台上,使用那些来自真实世界的数据来磨炼自己的技能。 当然,还有个更好的方法, 那就是去企业中寻找一个机器学习工程师或是算法工程师的职位,在工作中学习, 效果是最好的了。 # 1.4 有监督学习与无监督学习 在机器学习领域,有监督学习和无监督学习是两种常用的方法。有监督学习是通过现有训练数据集进行建模, 再用模型对新的数据样本进行分类或者回归分析的机器学习方法。在监督式学习中,训练数据集一般包含样本特征变量及分类标签,机器使用不同的算法通过这些数据推断出分类的方法,并用于新的样本中。目前有监督学习算法已经比较成熟,并且在很多领域都有很好的表现。 而无监督学习,或者说非监督式学习,则是在没有训练数据集的情况下,对没有标签的数据进行分析并建立合适的模型,以便给出问题解决方案的方法。在无监督学习当中,常见的两种任务类型是数据转换和聚类分析。 其中数据转换的目的是,把本来非常复杂的数据集通过非监督式学习算法进行转换,使其变得更容易理解。常见的数据转换方法之一便是数据降维,即通过对特征变量较多的数据集进行分析,将无关紧要的特征变量去除,保留关键特征变量(例如,把数据集降至二维,方便进行数据可视化处理)。 而聚类算法则是通过把样本划归到不同分组的算法,每个分组中的元素都具有比较接近的特征。目前,聚类算法主要应用在统计数据分析、图像分析、计算机视觉等领域。 # 1.5 机器学习中的分类与回归 分类和回归是有监督学习中两个最常见的方法。对于分类来说,机器学习的目标是对样本的类标签进行预测,判断样本属于哪一个分类,结果是离散的数值。而对于回归分析来说,其目标是要预测一个连续的数值或者是范围。 这样讲可能会有一点抽象,我们还是用小C 的例子来理解一下这两个概念。 比如,小C 在使用算法模型预测女神的电影喜好时- ,他可以将电影分为“女神喜欢的”和“女神不喜欢的”两种类型,这就是二元分类,如果他要把电影分为“女神特别喜欢的”“女神有点喜欢的” “女神不怎么喜欢的”以及“女神讨厌的月四种类型,那么这就属于多元分类。 但如果小C 要使用算法模型预测女神对某部电影的评分,例如,女神会给“速度与激情8 ”打多少分,从0 到100 , 分数越高说明女神越喜欢,最终模型预测女神会给这部电影打88 分, 这个过程就称为回归。小C 需要将女神给其他电影的评分和相对应的电影特征作为训练数据集,通过建立回归模型,来给“速度与激情8 ”打分。 # 1.6 模型的泛化、过拟合与欠拟台 在有监督学习中,我们会在训练数据集上建立一个模型,之后会把这个模型用于新的,之前从未见过的数据中,这个过程称为模型的泛化( generalization ) 。当然我们希望模型对于新数据的预测能够尽可能准确,这样才能说模型泛化的准确度比较高。 那么我们用什么样的标准来判断一个模型的泛化是比较好的,还是比较差的呢? 我们可以使用测试数据集对模型的表现进行评估。如果你在训练数据集上使用了一个非常复杂的模型,以至于这个模型在拟合训练数据集时表现非常好,但是在测试数据集的表现非常差,说明模型出现了过拟合( overfitting )的问题。 相反,如果模型过于简单,连训练数据集的特点都不能完全考虑到的话,那么这样的模型在训练数据集和测试数据集的得分都会非常差,这个时候我们说模型出现了欠拟合( underfitting )的问题。 而只有模型在训练数据集和测试数据集得分都比较高的情况下,我们才会认为模型对数据拟合的程度刚刚好,同时泛化的表现也会更出色。 # 1.7 小结 现在我们来对本章的内容进行一下总结。在本章开始的部分,我们通过一个小故事了解了机器学习的基本概念,之后又对机器学习的部分应用场景进行了初步的学习。 之所以说“部分”应用场景,是因为机器学习的应用范围实在太广,我们很难穷举,相信读者朋友日后还会接触到更多元化的案例。 当读者朋友对机器学习产生兴趣之后,还可以在本章中找到对于机器学习入门的步骤和一些建议。当然, 每个人有自己独到的学习方法,本章所列的方法仅仅供读者朋友参考,你也完全可以根据自身的情况安排自己的学习计划。 同时,为了让读者朋友能够更加顺利地学习后面的章节,本章还初步介绍了一些机器学习领域的术语,如监督学习、无监督学习、过拟合和欠拟合等。但请读者朋友注意,这部分内容也并非是将所有的术语进行罗列,如半监督学习和强化学习的概念,本章还没有涉及。相信日后随着读者朋友学习进程的加深,还会解锁更多新的知识点。 在第2 章,本书将用手把手的方式,和读者朋友一起搭建机器学习的开发环境,相信乐于动手的你会找到很多乐趣。