书籍详情
《百面机器学习:算法工程师带你去面试》[49M]百度网盘|亲测有效|pdf下载
  • 百面机器学习:算法工程师带你去面试

  • 出版社:人民邮电出版社
  • 出版时间:2018-08-01
  • 热度:9125
  • 上架时间:2024-06-30 08:52:20
  • 价格:9.0
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐
  不可不读的机器学习面试宝典!微软全球执行副总裁、美国工程院院士沈向洋,《浪潮之巅》《数学之美》作者吴军,《计算广告》作者、科大讯飞副总裁刘鹏,联袂推荐!
  人工智能几起几落,最近这次人工智能浪潮起始于近10年,技术的飞跃发展,带来了应用前suo未有的可能性。未来的几年,是人工智能技术全面普及化的时期,也是算法工程师稀缺的时期。
  本书旨在帮助对人工智能和机器学习有兴趣的朋友们更加深入地了解这个领域的基本技能,帮助每个软件工程师成为自信的AI实践者,帮助每个数据科学家成为出众的AI研究者。对每个有志进入此领域的工程师来说,本书会为你铺设一条快速通往目标的道路。
内容简介
  人工智能领域正在以超乎人们想象的速度发展,本书赶在人工智能彻底占领世界之前完成编写,实属万幸。
  书中收录了超过100道机器学习算法工程师的面试题目和解答,其中大部分源于Hulu算法研究岗位的真实场景。本书从日常工作、生活中各种有趣的现象出发,不仅囊括了机器学习的基本知识,而且还包含了成为出众算法工程师的相关技能,更重要的是凝聚了笔者对人工智能领域的一颗热忱之心,旨在培养读者发现问题、解决问题、扩展问题的能力,建立对机器学习的热爱,共绘人工智能世界的宏伟蓝图。
  “不积跬步,无以至千里”,本书将从特征工程、模型评估、降维等经典机器学习领域出发,构建一个算法工程师必备的知识体系;见神经网络、强化学习、生成对抗网络等新科研进展之微,知深度学习领域胜败兴衰之著;“博观而约取,厚积而薄发”,在末一章为读者展示生活中各种引领时代的人工智能应用。
作者简介
  诸葛越:现任Hulu公司全球研发副总裁,中国研发中心总经理。曾任Landscape Mobile 公司联合创始人兼CEO,前雅虎北京全球研发中心产品总监, 微软北京研发中心项目总经理,雅虎美国软件架构师。诸葛越获美国斯坦福大学的计算机硕士与博士,纽约州立大学石溪分校的应用数学硕士,曾就读于清华大学计算机科学与技术系。诸葛越的研究结果获多项专利,2005年获美国计算机学会数据库专业委员会十年最佳论文奖。
  葫芦娃:15位Hulu北京创新实验室的人才。他们利用擅长的机器学习、深度学习等领域知识和算法模型,建立了一套定制化的机AI平台,改变着推荐引擎、视频编解码、内容理解、广告投放等多项与用户息息相关的在线业务技术。
目录
版权信息
推荐序
前言 人工智能的三次浪潮
机器学习算法工程师的自我修养
第1章 特征工程
01 特征归一化
02 类别型特征
03 高维组合特征的处理
04 组合特征
05 文本表示模型
06 Word2Vec
07 图像数据不足时的处理方法
第2章 模型评估
01 评估指标的局限性
02 ROC曲线
03 余弦距离的应用
04 A/B测试的陷阱
05 模型评估的方法
06 超参数调优
07 过拟合与欠拟合
第3章 经典算法
01 支持向量机
02 逻辑回归
03 决策树
第4章 降维
01 PCA最大方差理论
02 PCA最小平方误差理论
03 线性判别分析
04 线性判别分析与主成分分析
第5章 非监督学习
01 K均值聚类
02 高斯混合模型
03 自组织映射神经网络
04 聚类算法的评估
第6章 概率图模型
01 概率图模型的联合概率分布
02 概率图表示
03 生成式模型与判别式模型
04 马尔可夫模型
05 主题模型
第7章 优化算法
01 有监督学习的损失函数
02 机器学习中的优化问题
03 经典优化算法
04 梯度验证
05 随机梯度下降法
06 随机梯度下降法的加速
07 L1正则化与稀疏性
第8章 采样
01 采样的作用
02 均匀分布随机数
03 常见的采样方法
04 高斯分布的采样
05 马尔可夫蒙特卡洛采样法
06 贝叶斯网络的采样
07 不均衡样本集的重采样
第9章 前向神经网络
01 多层感知机与布尔函数
深度神经网络中的激活函数
03 多层感知机的反向传播算法
04 神经网络训练技巧
05 深度卷积神经网络
06 深度残差网络
第10章 循环神经网络
01 循环神经网络和卷积神经网络
02 循环神经网络的梯度消失问题
03 循环神经网络中的激活函数
04 长短期记忆网络
05 Seq2Seq模型
06 注意力机制
第11章 强化学习
01 强化学习基础
02 视频游戏里的强化学习
03 策略梯度
04 探索与利用
第12章 集成学习
01 集成学习的种类
02 集成学习的步骤和例子
03 基分类器
04 偏差与方差
05 梯度提升决策树的基本原理
06 XGBoost与GBDT的联系和区别
第13章 生成式对抗网络
01 初识GANs的秘密
02 WGAN:抓住低维的幽灵
03 DCGAN:当GANs遇上卷积
04 ALI:包揽推断业务
05 IRGAN:生成离散样本
06 SeqGAN:生成文本序列
第14章 人工智能的热门应用
01 计算广告
02 游戏中的人工智能
03 AI在自动驾驶中的应用
04 机器翻译
05 人机交互中的智能计算
后记
媒体评论
  诸葛越博士主编的此书是Hulu公司里十几位每天做前沿机器学习工作的工程师科学家一起合写的,是原创的、实际的、直接可用的内容。这本书致力于普及人工智能和机器学习,帮助每个软件工程师成为自信的AI实践者,每个数据科学家成为出众的AI研究者。

  ——沈向洋/ 微软全球执行副总裁,美国工程院院士



  计算机理论和算法常常让人感到高冷,因为它们和具体的应用之间缺少了一些桥梁。诸葛越博士的这本书,教授大家如何搭建这些桥梁。它可以让计算机的从业者对理论的认识有一个飞跃,也可以让非计算机专业的工程人员了解计算机科学这个强大的工具。

  ——吴军/《浪潮之巅》《数学之美》作者



  在越来越多的机器学习专业书籍中,Hulu工程师们的这本专著让我眼前一亮。本书没有拾人牙慧,从学术角度来整理机器学习的理论和算法体系;而是从一线工程师的视角出发,在职业方向、面试重点、模型实战和应用案例等诸方面有精到的介绍。对每个有志进入此领域的工程师来说,本书为你铺设了一条快速通往目标的道路。另外,本书为多位工业界实战专家合作完成,内容却相当连贯系统,实在难能可贵。

  ——刘鹏/《计算广告》作者,科大讯飞副总裁
前言
  前言 人工智能的三次浪潮
  2018年年初,招聘季正如火如荼地进行,而“数据科学家”和“算法工程师”绝对算得上热门职业。
  “人工智能”“机器学习”“深度学习”“建模”“卷积神经网络”等关键词,不仅仅是人们茶余饭后的谈资,而且更会像“数据结构”“排序”和“链表”一样,成为软件工程师的必备技能。
  人工智能技术正在对社会结构、职场、教育等带来革命性的变化。 未来几年是人工智能技术全面普及化的时期,也是该技术的相关人才最为稀缺的时期。所以,我们希望能够通过这本书,帮助对人工智能和机器学习感兴趣的朋友更加深入地了解这个领域的基本技能,帮助已经有计算机技术基础的同行们,成为驾驭人工智能和机器学习的高手。
  写在书的前面,我先简单介绍一下我了解的人工智能和机器学习的背景和历史,解释为什么现在是学习机器学习算法的大好时机。
  ■ 我与人工智能
  我的本科专业是人工智能。当年我上大学时,清华大学的计算机系每个年级有6个班,入学的时候就把每个班的专业分好。我们三班的专业是人工智能。所以在本科的时候,我就接触到许多当时人工智能领域的前沿技术。我的人工智能入门课的导师是可亲可敬的林尧瑞教授,也是《人工智能导论》的作者。这门课被我们戏谑为“猴子摘香蕉”,因为最开始的问题就是一只智能的猴子,如何自己组合积木去拿到天花板上挂着的香蕉。
  当时清华大学的本科是5年制,正要开始改革,有少部分学生可以在四年级的时候开始接触研究生的一些活动,6年可以拿到硕士学位。我有幸被选为这几个学生之一,在本科四年级的时候,我进入了清华大学的人工智能实验室,师从张钹老师,做一些简单的研究。 从张老师和高年级的同学们那里,我学到人工智能领域不少当时国际先进的知识。
  刚刚进入斯坦福的时候,去听一个小型的午餐讲座(Brown Bag),也就是一二十个人吧。那位同学讲到一半,教室门突然被打开,大胡子的约翰·麦卡锡(John McCarthy)教授走了进来,大声地问:“听说这里有不要钱的午饭?” 然后他走到房间的前面,抓了两个三明治,大摇大摆地走出去了。主持讲座的老师愣了一下,说:“欢迎大家来到斯坦福——世界上最著名的科学家会走进你们的教室来抢你们食物的地方!”
  或许你不知道,“人工智能”(Artificial Intelligence)这个词,就来自约翰·麦卡锡。
  因为本科是人工智能专业,所以我对人工智能一直比较感兴趣,在斯坦福又去学了一次人工智能课CS140。当时教这个课的是尼尔斯·尼尔森 (Nils Nilsson)教授。他是另外一位人工智能的学科创始人和世界级专家,写作了被广泛引用的经典之作——《对人工智能的探索》(The Quest for Artificial Intelligence)。尼尔森教授的课非常有趣,我还跟他做了一个小的项目,规划一个扫地机器人的路径。至今,我还保留了这门课的笔记。
  说实话,我年轻的时候每天做作业、做课题,没有意识到,能和这些顶级科学家同堂是多么幸运的事,也未必知道自己正在见证某个技术领域的世界前沿。最顶尖的技术,开始都是只有小众才能理解和欣赏的。
  然而,我的博士论文并没有专攻人工智能,反而做的是大数据方向,做了最早的数据仓库和数据挖掘工作。现在看来,我这几次和人工智能以及人工智能大咖的偶遇,刚好和人工智能的三次浪潮有关。第一次人工智能的浪潮就是约翰·麦卡锡那一代人。他们从20世纪50年代开始,打下了计算机学科和人工智能的理论基础。 第二次是我在清华大学期间,研究者们看到了一些人工智能应用的可能性,比如机械手、机器人、专家系统。最近,基于大数据、机器学习的人工智能再次兴起,可以称为人工智能的第三次浪潮 。
  ■ 人工智能的三次浪潮
  我来简单定义和解释一下本书用到的概念。
  人工智能泛指让机器具有人的智力的技术。这项技术的目的是使机器像人一样感知、思考、做事、解决问题 。人工智能是一个宽泛的技术领域,包括自然语言理解、计算机视觉、机器人、逻辑和规划等,它可以被看作计算机专业的子领域,除了和计算机相关,它还和心理学、认知科学、社会学等有不少交叉。
  机器学习指计算机通过观察环境,与环境交互,在吸取信息中学习、自我更新和进步。 大家都了解计算机程序是怎么回事,一个程序是计算机可以执行的一系列的指令,比如打印一张图。那么机器学习跟我们熟知的程序的本质区别是什么呢?你可以想象,某个程序是机器写的,而不是一个程序员写的。那么机器怎么知道如何写这个程序呢?这个机器就是从大量的数据当中学到的。
  简单地说,大多数机器学习算法可以分成训练(training)和测试(testing)两个步骤,这两个步骤可以重叠进行。训练,一般需要训练数据,就是告诉机器前人的经验,比如什么是猫、什么是狗、看到什么该停车。训练学习的结果,可以认为是机器写的程序或者存储的数据,叫模型(model)。总体上来说,训练包括有监督(supervised learning)和无监督(unsupervised learning)两类。有监督好比有老师告诉你正确答案;无监督仅靠观察自学,机器自己在数据里找模式和特征。深度学习(deep learning)是机器学习的一种方法,它基于神经元网络,适用于音频、视频、语言理解等多个方面。
  我们先来短暂地回顾一下人工智能的三次浪潮。它们有什么特点?又有什么不同?它们又是怎样互相联系,如何在前一次的基础之上建立的?
  第一次人工智能浪潮大约在20世纪50年代。1956年,在达特茅斯的人工智能研讨会上,约翰·麦卡锡正式提出“人工智能”这个概念,被公认是现代人工智能学科的起始。麦卡锡与麻省理工学院的马文·明斯基(Marvin Minsky)被誉为“人工智能之父”。
  在计算机被发明的早期,许多计算机科学家们就认真地思考和讨论这个人类发明出来的机器,和人类有什么根本区别。图灵机和图灵测试,就是这个思考的一个最典型结果。最初的那批思考人工智能的专家,从思想和理论上走得非常前沿,内行的专家很早就看到了计算机的潜力。我们现在所问的这些问题,他们其实都问过了。比如,什么叫“推理”(reasoning), 机器如何推理;什么叫“懂得”(understanding),机器如何懂得;什么叫知识(knowledge),机器如何获取和表达知识;什么时候,我们无法分辨出机器和人。这个阶段产生了许多基础理论,不仅是人工智能的基础理论,也是计算机专业的基石。
  从技术上来说,第一次人工智能的大发展,主要是基于逻辑的。1958年麦卡锡提出了逻辑语言 LISP。从20世纪50年代到20世纪80年代,研究者们证明了计算机可以玩游戏,可以进行一定程度上的自然语言理解。 在实验室里,机器人可以进行逻辑判断、搭积木;机器老鼠可以针对不同的路径和障碍做出决定;小车可以在有限的环境下自己驾驶。研究者们发明了神经网络,可以做简单的语言理解和物体识别。
  然而,在人工智能的前二三十年里,它虽然是一个硕果累累的科研领域,人们实际生活中的用处却几乎没有。20世纪80年代初,人工智能因为缺乏应用而进入“冬季”。到80年代末和90年代初,在我刚入大学的那段时间里,人工智能科学家们决定另辟蹊径,从解决大的普适智能问题,转向解决某些领域的单一问题。“专家系统”这个概念被提了出来,它让这些研究成果找到了第一个可能的商业出路。
  计算机技术经过了30年左右的发展,数据存储和应用有了一定的基础。研究者们看到人工智能和数据结合的可能性,而结合得最好的应用就是“专家系统”。如果我们能把某一个行业的数据,比如说关于心脏病的所有数据,都告诉一个机器,再给它一些逻辑,那这个机器岂不是就成了“心脏病专家”,如果我们要看病,是否就可以问它?
  看病、预报天气等各行各业的专家系统,听起来非常有希望、有意义,也确实有实际的应用场景,所以当时学术界对人工智能又掀起了一阵热潮。然而,比较有意思的是,当我们想要用这些专家系统来做一些聪明的诊断的时候,我们发现遇到的问题并不是如何诊断,而是大部分的数据在当时还不是数字化的。病人的诊断历史还停留在看不懂的医生手写处方上。有些信息就算是已经开始数字化,也都是在一些表格里面,或者是在一些不互相连接的机器里面,拿不到,用不了。
  于是,我们这一批想去做自动诊断的人,反而去做了一些基础的工作。这个基础的工作用一句话说,就是把世界上所有的信息数字化。
  在一批人致力于把世界上每一本书、每一张图、每一个处方都变成电子版的时候,互联网的广泛应用,又把这些信息相互联接了起来,成了真正的大数据。同时,摩尔定律(Moore’s law)预测的计算性能增加一直在起作用。随着计算能力的指数增长,那些只能在实验室里或有限场景下实现的应用,离现实生活越来越近了。1997年,“深蓝”打败当时的世界象棋冠军Garry Kasparov,和2017年AlphaGo围棋打败李世石一样,被公认是一个里程碑 。其实,随着计算能力的提高,在这些单一的、有确定目标的事情上机器打败人,都只是个时间问题。
  第三次的人工智能浪潮就是基于另外两个技术领域的大发展,一个是巨大的计算能力,一个是海量的数据。巨大的计算能力来自于硬件、分布式系统、云计算技术的发展。最近,专门为神经网络制作的硬件系统(neural-network-based computing)又一次推动了人工智能软硬件结合的大进步。海量的数据来源于前几十年的数据积累和互联网技术的发展。比如,2001年上市的GPS系统,带来前所未有的大量出行数据;智能手机带来了前所未有的人们生活习性的数据,等等。计算能力和数据的结合,促进、催化了机器学习算法的飞跃成长。
  这次的人工智能浪潮起始于近10年。技术的飞跃发展,带来了应用前所未有的可能性。最近这次人工智能浪潮和前两次最基本的不同是它的普遍应用和对普通人生活的影响。也就是说,人工智能离开了学术实验室,真正走进大众的视野。
  ■ 人工智能全面逼近人类能力?
  为什么这次人工智能浪潮如此凶猛?人工智能真的全面逼近了人类的能力吗?人工智能技术现在发展到什么阶段?我们先来看3个简单的事实。
  首先,历史上第一次,计算机在很多复杂任务的执行上超过人类或者即将超过人类,比如图像识别、视频理解、机器翻译、汽车驾驶、下围棋,等等。这些都是人们容易理解的,一直由人类完成的任务。所以,人工智能取代人类的话题开始出现在各种头条。
  其实,在单一技术方面,许多计算相关的技术早已超过人类的能力,而且被广泛应用,比如导航、搜索、搜图、股票交易。不少人已经习惯于用语音给简单指令操作。但是,这些相对单纯的技术主要是“完成一个任务”,计算机没有过多地涉猎人的感知、思考、复杂判断,甚至于情感。
  然而,近几年来机器完成的任务,从复杂性和形式越来越逼近人类。比如,基于机器学习的自动驾驶技术已经趋于成熟,这项技术不仅会对人们的出行方式有革命性的影响,而且会影响到城市建设、个人消费、生活方式。人们也许再也不需要拥有汽车,再也不需要会开车。大家对这类新技术的快速到来既兴奋又恐惧,一方面享受技术带来的便利,另一方面又对太快的变化有些手足无措。
  另外,计算机的自学习能力不断增强。现代机器学习算法,尤其深度学习类机器学习算法的发展,使机器的行为不再是相对可预测的“程序”或者“逻辑”,而更像“黑盒思考”,有了近乎人类的难以解释的思考能力。
  然而,仔细看来,虽然在不少特殊领域中,人工智能有了突飞猛进的发展,但是距离人工智能的鼻祖们在第一次浪潮时研究的通用智能(general purpose intelligence)其实还相差非常远。这是第二个事实。机器还是被放在特定情况下完成特定任务,只不过任务更复杂了。机器还是缺少一些最基本的人的智能,比如常识。人工智能仍然无法理解哪怕是简单的情感,比如害怕。对两三岁的孩子来说非常简单的帮忙、合作,机器都是做不到的。好比有人开玩笑说:“它们还是不会炒鸡蛋。”
  第三个事实,是这次人工智能和机器学习的应用场景非常宽广。近几年人工智能和机器学习应用的大发展,这个曾经是学术研究领域的概念一时间进入大众视野,成为和未来相关的必谈话题。计算机视觉、深度学习、机器人技术、自然语言理解,都被提到应用层。算法类的应用走出学术界,深入社会的各个角落, 渗入人们生活的方方面面。大家熟知的有人脸识别、自动驾驶、医疗诊断、机器助手、智慧城市、新媒体、游戏、教育等,还有并不常被谈论的比如农业生产的自动化、老人和儿童的护理、危险情景的操作、交通调度,等等。我们很难想象社会的哪一个方面,不会被这次浪潮所波及。
  向前看十年,人工智能和机器学习的大发展,在于这些技术的普及和应用。大批的新应用将会被开发,人工智能基础设施会迅速完善,原有的传统软件和应用需要被迁移使用新的算法。所以,现在是成为一个人工智能和机器学习专家的良机。
  ■ 这本书是如何写成的
  无论海内海外,媒体行业一直都走在人工智能应用的最前沿,因为媒体往往接触上千万甚至上亿的用户;有千变万化的用户每天离不开的内容,比如新闻、体育、电影;有丰富多彩的内容与用户的结合场景;还有丰厚的有创意的商机。
  Hulu是一家国际领先的视频媒体公司,提供优质电影、电视剧点播和直播节目。Hulu技术架构最为先进的一点是人工智能和机器学习算法的广泛应用,用在个性化内容推荐、搜索、视频内容理解、视频传输和播放、 广告预测和定向、安全检测、决策支持,甚至视频编辑和客服系统。机器学习算法的背后是专门打造的大规模数据处理系统。“算法无处不在”是Hulu当今和未来技术架构的定位。 可以说,Hulu是未来的互联网技术公司,全面“算法化”的一家带头公司。
  为了支持各类的人工智能算法应用,Hulu在北京的创新实验室集合了大批人工智能和机器学习的顶尖人才。Hulu的数据科学家、算法工程师和软件工程师都工作在同一个团队,每天解决用户的实际问题,积累了大量实用的经验。Hulu 北京的学习气氛也相当浓厚。除了定期的机器学习专题研讨和大数据及机器学习公开课,Hulu也在内部开设了深度学习课程。
  2017年年底,人民邮电出版社的俞彬编辑问我能否写一本关于人工智能和机器学习算法实操的书。目前市场上有关人工智能的书可以分为两类,一类是非常系统的教科书,还有一类是关于人工智能和人类未来的社科类图书。我们能否写一本实操类的书,介绍一个真正的计算机从业人员需要掌握的技能呢?
  抱着试一试的心理,我让公司里的同事自愿报名参加这个集体项目。一共有15位资深研究员和算法工程师参与了这本书的内容创作,这是个成功的合作案例。我们先学习了一下现有的相关书籍,然后头脑风暴了一番,觉得我们可以做一个问答集,以比较有趣的问答形式,集中当前算法工程师和研究员感兴趣的话题,用问答引出这个行业的基本概念。
  在互联网行业,敏捷开发都是以最快的速度,做一个“最小化产品”,让用户的反馈来带领产品的方向。我们写这本书也是如此。为了让大家能够落笔写出没有错误、通俗易懂的问答,为了收集读者的反馈,也为了不把写一本大部头书列为第一天的目标,我们先在Hulu的微信公众号上,以每周发两个问答的形式,从2017年11月到2018年3月期间,一共发出了30篇“机器学习问答”系列文章。这些文章受到了业界好评,也收到各种问题和反馈,成了我们这本书的核心内容。
  关于书的章节组织,我们也进行过仔细的讨论。人工智能和机器学习算法范围很大,我们的理念是要涵盖该领域最基本的内容,介绍基本概念,同时,跟上算法发展的最新步伐。所以本书介绍了传统机器学习算法,比如逻辑回归、决策树等,同时花了比较大的篇幅介绍近几年流行的最新算法,包括各种神经网络(深度学习)、强化学习、集成学习等,还会涉猎学术界正在讨论中的新领域和新算法。同时,本书强调了实现一个企业里真正实用的算法系统所需要的技能,比如采样、特征工程、模型评估。因为机器学习算法往往需要比较深的背景知识,所以在每个问题和解答之前,会对该领域做简单的背景介绍。每个问答有不同的难度,以供读者自我衡量。
  在核心的机器学习算法问答内容之外,我们增加了两个部分,一是“机器学习算法工程师的自我修养”,介绍业界典型的算法工程师的工作内容和要求。这些实例可以帮助广大的读者了解掌握机器学习技能以后的工作和去向。二是“人工智能热门应用”,相信不少读者都听说过这些应用的故事,比如无人驾驶车、AlphaGo等。我们希望从内行人的角度,解释一下这些超级应用背后的原理是什么。当你读完本书,掌握了机器学习技能以后,你也可以在幕后操作这些热门的智能应用了。
  本书信息量很大,涉猎人工智能和机器学习的各个子领域。每个公司、每个业务、每个职位,不一定会用到全部的技能。所以关于阅读这本书,我有以下几个建议。
  (1)顺读法:从头至尾阅读。如果你能读懂全部内容,所有的题目都会解答,欢迎你到Hulu来申请工作吧!
  (2)由简至难法: 每道题的旁边都标明了难度。一星最简单,五星最难。在本书中,还提供了一个题目的列表。一颗星的题目,主要是介绍基本概念,或者是为什么要做某一件事,比如 “什么是ROC曲线?”“为什么需要对数值类型的特征做归一化?”。如果你是机器学习的入门学习者,可以从背景知识和简单的题目出发,循序渐进。
  (3)目标工作法:不是所有的公司、所有的职位都需要懂得各类算法。如果你目前的工作或者想去的工作在某个领域,它们可能会用到某几类算法。如果你对某个新的领域很感兴趣,比如循环神经网络,那你可以专攻这些章节。不过无论用哪类算法,特征工程、模型评估等基本技能都是很重要的。
  (4)互联网阅读法:一本书很难把广泛的领域讲得面面俱到,尤其是题目和解答,可以举一反三有很多花样。所以,我们在很多章节后都有总结和扩展。对某个领域感兴趣的朋友们,可以以这本书为起点,深入到扩展阅读,成为这一方面的专家。
  (5)老板读书法:如果你是一个技术管理者,你需要解决的问题是算法可能对你现有的技术体系有什么帮助,和怎么找到合适的人,帮你做出智能的产品。建议你可以粗略地浏览一下本书,了解机器学习的各个技术领域,找到合适的解决方案。然后,你就可以用本书作面试宝典了。
  这本书出版的目的,是让更多的人练习和掌握机器学习相关的知识,帮助计算机行业人员了解算法工程师需要的实际技能,帮助软件工程师成为出色的数据科学家,帮助公司的管理者了解人工智能系统需要的人才和技能,帮助所有对人工智能和机器学习感兴趣的朋友们走在技术和时代的前沿。
  人工智能和机器学习的算法还在日新月异地发展中,这本书也会不断更新,不断地出新版本。希望得到读者朋友们的悉心指正,让我们一起跟上这个技术领域的进步步伐。
  2018年4月10日
精彩书摘
  俗话说,“巧妇难为无米之炊”。在机器学习中,数据和特征便是“米”,模型和算法则是“巧妇”。没有充足的数据、合适的特征,再强大的模型结构也无法得到满意的输出。正如一句业界经典的话所说,“Garbage in,garbage out”。对于一个机器学习问题,数据和特征往往决定了结果的上限,而模型、算法的选择及优化则是在逐步接近这个上限。
  特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。从本质上来讲,特征工程是一个表示和展现数据的过程。在实际工作中,特征工程旨在去除原始数据中的杂质和冗余,设计更高效的特征以刻画求解的问题与预测模型之间的关系。
  本章主要讨论以下两种常用的数据类型。
  (1)结构化数据。结构化数据类型可以看作关系型数据库的一张表,每列都有清晰的定义,包含了数值型、类别型两种基本类型;每一行数据表示一个样本的信息。
  (2)非结构化数据。非结构化数据主要包括文本、图像、音频、视频数据,其包含的信息无法用一个简单的数值表示,也没有清晰的类别定义,并且每条数据的大小各不相同。
  01 特征归一化
  为了消除数据特征之间的量纲影响,我们需要对特征进行归一化处理,使得不同指标之间具有可比性。例如,分析一个人的身高和体重对健康的影响,如果使用米(m)和千克(kg)作为单位,那么身高特征会在1.6~1.8m的数值范围内,体重特征会在50~100kg的范围内,分析出来的结果显然会倾向于数值差别比较大的体重特征。想要得到更为准确的结果,就需要进行特征归一化(Normalization)处理,使各指标处于同一数值量级,以便进行分析。
  知识点
  特征归一化
  问题 为什么需要对数值类型的特征做归一化?
  难度:★☆☆☆☆
  分析与解答
  对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。最常用的方法主要有以下两种。
  (1)线性函数归一化(Min-Max Scaling)。它对原始数据进行线性变换,使结果映射到[0, 1]的范围,实现对原始数据的等比缩放。
精彩插图