想系统学习机器学习,有什么书值得推荐?

[复制链接]
仙履奇缘 发表于 2023-10-5 16:07:09|来自:北京 | 显示全部楼层 |阅读模式
想系统学习机器学习,入门,进阶,提升等每个阶段都有什么书推荐吗
全部回复5 显示全部楼层
调皮 发表于 2023-10-5 16:07:32|来自:北京 | 显示全部楼层

本书介绍

    CS 189是加州大学伯克利分校的机器学习课程。本指南可以作为一个全面的课程指南,以便与学生和公众分享我们的知识,并希望吸引其他大学的学生对伯克利的机器学习课程感兴趣。

本书免费获取地址: ML必读基础书籍-《机器学习综述》免费分享

本书目录





内容截图








本书免费pdf下载地址:ML必读基础书籍-《机器学习综述》免费分享

往期精品内容推荐

21量化交易必读新书-《算法交易和强化学习》免费pdf分享

深度学习花书《Deep Learning》-中英文版分享-AI必读10本经典

机器学习经典书籍-《贝叶斯推理与机器学习》免费分享

文档理解相关领域、论文、数据集和工业应用资源分享

肖桐、朱靖波老师新著-《机器翻译统计建模与深度学习方法》中文版书籍分享

历史最全自然语言处理测评基准分享-数据集、基准(预训练)模型、语料库、排行榜

机器学习基础经典书籍分享-《计算机科学和机器学习相关代数、拓扑学、微分学和最优化理论》

自然语言处理圣经-《自然语言处理综述》-最新版及AI必读10本经典分享
pincai 发表于 2023-10-5 16:08:29|来自:北京 | 显示全部楼层
以上各位答主已经回答得挺全面了,那我就从AI工程角度补充一些学习资源吧。AI工程是一门新兴的学科,市面上的技术专著并不是很多,以下是我认为比较不错的一些书籍和课程,供大家参考:
一、书籍类
1、《机器学习工程实战》(Machine Learning Engineering)


作者:【加拿大】安德烈·布可夫
译者:王海鹏;丁静
本书侧重于讲解机器学习应用和工程实践技术,是对机器学习工程实践和设计模式的全面回顾。按照项目准备、数据收集和准备、特征工程、监督模型训练、模型评估、模型部署、模型服务、监测和维护等方面进行讲解,是为数不多的讲解如何应用机器学习的书籍之一。
2、《机器学习:软件工程方法与实现》


作者:张春强;张和平;唐振
这是一本介绍如何在机器学习项目实践中应用软件工程思想、方法、工具和技术的书籍。作者结合自己10年的工程实践经验,以机器学习核心概念和原理作为出发点,延伸介绍了数据分析和处理、特征选择、模型调参以及大规模模型和系统架构等多方面的应用技术和实践。
3、《机器学习流水线实战》(Building Machine Learning Pipelines)


作者:【美】汉内斯·哈普克;凯瑟琳·纳尔逊
译者:孔晓泉;郑炜;江骏
本书介绍了机器学习流水线每个环节的构建方法,以及如何利用TensorFlow Extended(TFX)构建机器学习流水线,包括数据读取、数据校验、数据预处理、模型训练、模型分析、模型验证、模型部署、模型反馈等环节,涵盖了整个机器学习模型开发的生命周期。
4、《机器学习系统:设计与实现》


作者:麦络、董豪、金雪锋、干志良
书籍由麦络(爱丁堡大学)、董豪(北京大学、鹏程实验室)、金雪锋(MindSpore首席架构师)、干志良(MindSpore架构师)主导,联合学术界、工业界的老师和专家共同写作。
作为一名软件工程师,可以通过市面上大部分的深度学习/机器学习书籍或教程,学习经典算法(如SGM、逻辑回归、朴素贝叶斯)、主流神经网络(CNN、RNN、GNN),并使用框架完成训练、部署和推理。但是,当我们更进一步,想要探究这些算法/模型背后的深度学习框架时,却发现系统性讲解的书籍、教程几乎没有。
最近阅读了《机器学习系统:设计与实现》这本书,该书作为一本系统讲解机器学习框架的书,它能帮助开发者快速了解机器学习系统的全貌,并对深刻理解框架背后的技术细节有很好的指导。
全书分为3个部分:基础篇介绍了机器学习系统的基础;进阶篇从系统设计的角度,介绍在设计现代机器学习系统中需要考虑的问题和解决方案;拓展篇介绍了机器学习框架下的众多扩展应用。
为方便大家快速了解本书,我整理了《机器学习系统:设计与实现》读书笔记,欢迎大家阅读&指正。
5、《Kubeflow学习指南:生产级机器学习系统实现》(Kubeflow for Machine Learning)


作者:【美】 特雷弗·格兰特,【加】 霍尔顿·卡劳,【俄】 鲍里斯·卢布林斯基,【美】  理查德·刘,【美】  伊兰·菲洛年科 著
译者:狄卫华
Kubeflow是基于K8S的机器学习工具包,是为数据科学家和数据工程师构建生产级别的机器学习实现而设计的。本书采用循序渐进的方式,从 Kubeflow 的安装、使用和设计开篇,随后从模型训练的整个周期展开,涵盖了数据探索、特征准备、模型训练/调优、模型服务、模型测试、模型监测和模型版本管理等各个环节,既有相关的理论知识也囊括了真实的使用案例,能够让读者在学习 Kubeflow 知识的同时全面了解机器学习的相关知识,是入门和深入学习Kubeflow以及机器学习的良好指南。
二、课程类
1、《实用机器学习》(Practical Machine Learning)
课程地址:
Practical Machine Learning大家耳熟能详的李沐老师带来的又一门AI课程,介绍在模型训练与算法之外的实用机器学习技术,其能够用于各种真实项目中解决实际的工程技术问题。主要内容包括数据收集与处理、高效的模型训练、超参数调优、模型融合、迁移学习等技术。在B站有李沐老师亲自讲解的中文授课视频,老师账号为跟李沐学AI。
2、《Machine Learning in Production / AI Engineering》(CMU 17-445/17-645/17-745/11-695)
课程地址:
https://ckaestne.github.io/seai/卡内基梅隆大学(CMU)的Christian Kästner教授带来的一门AI工程课程,在国内还比较少见这种系统化讲解AI工程技术应用的课程,从需求工程开始,讲解机器学习项目的设计、质量保证、开发过程与团队、负责任的AI等专题技术。该教授也有计划将这门课程写成一本书籍出版。
3、《Machine Learning Engineering for Production (MLOps) 专项课程》
课程地址:
https://www.coursera.org/specializations/machine-learning-engineering-for-production-mlops吴恩达(Andrew Ng)老师带来的MLOps专项课程,讲解机器学习项目应用于生产环境的实际项目时,所遇到的种种挑战和技术实践,是Coursera上的热门课程之一。
三、论文类
1、《Teaching Software Engineering for AI-Enabled Systems》(面向AI使能系统的软件工程课程体系)
面对AI课程中很少有解决工程问题的课程现状,卡内基梅隆大学的Christian Kästner和Eunsuk Kang设计了一门新课程,向有ML背景的学生教授软件工程技术,在AI与软件工程结合的方向进行了探索,以论文的形式给大家分享了其教学实践。
为方便大家了解论文内容,我对论文进行了翻译及解读,欢迎大家阅读&指正,详见-【AI工程论文解读】01-面向AI使能系统的软件工程课程体系。
2、《Hidden Technical Debt in Machine Learning Systems》(机器学习系统中的隐性技术债)
当前在构建机器学习系统时,开发者们更多关注于算法优化和技术创新,较少关注如何构建稳定的系统。谷歌的工程师们基于大量的机器学习系统构建和维护经验,在论文中列举了构建机器学习系统时,可能存在的Technical Debt(技术债)。
为方便大家了解论文内容,我对论文进行了翻译及解读,欢迎大家阅读&指正,详见【AI工程论文解读】02-聊聊机器学习系统中的技术债。

最后,本人也在梳理AI工程方面的技术实践,大家有兴趣了,可以访问专栏《AI工程与实践》,并加入我们,一起交流、学习AI技术。
amo_xue 发表于 2023-10-5 16:09:03|来自:北京 | 显示全部楼层
还在迷茫学习机器学习用什么书?来,这个回答一步到位!
机器学习是人工智能的一部分,它是为了帮助计算机能像人类一样思考,所研究出的计算机理论。
作为一门理论,机器学习是一门跨学科融合的产物,包含了统计学、概率论等学科。
你可以把它理解为【通过训练数据和算法模型让机器具有人工智能】的方法,这些方法,在程序里,我们称之为算法。
基于上面的描述,机器学习的书籍范围其实也就大体定了。
最近这段时间,借着 ChatGPT 的火爆,机器学习人工智能的风潮又刮起来了,最近来问我这方面问题的同学越来越多,我很开心看到这种变化,但是也发现很多同学并不知道学习这些内容有什么用,也不知道学了能用来干嘛,只是觉得最近火就想学。
鉴于这种情况,我推荐大家去看一下「知乎知学堂」联合「AGI课堂」推出的【程序员的AI大模型进阶之旅】公开课,一共2天的课程。像我上面说的 ChatGPT 就是基于 AI 大模型中的 GPT 模型构建的应用程序,属于机器学习的范畴。这次公开课邀请的都是圈内的技术大佬解读最前沿的技术,了解这次 AI 技术跟以往的变革有什么不同,普通人如何在让自己成为这次变化的受益者,如何借助大模型提高收入的可能性。
希望大家都能好好了解一下,希望你的学习不只是跟风,而是真的从机器学习或者人工智能能够帮助到自己的学习和工作的角度去考虑。
机器学习想要系统学习的话,入门推荐看下面几本书:
《机器学习》
周志华老师的《机器学习》(西瓜书)作为机器学习领域的入门教材,可以说是学习机器学习的必读教材,在内容上基本涵盖了机器学习的很多方面,包括基础知识、经典的机器学习方法以及规则学习和强化学习这些进阶知识。


我当初在学的时候用的是这本书,后来周志华老师又出了一本《机器学习理论引导》,可以买来搭配着看。
《统计学习方法(第2版)》
纯理论的书,怎么说呢,想学机器学习,统计学习是迈不过去的坎~
李航老师这本书强推,全面介绍了统计学习的重要方法,用的都说好!


3. 《机器学习实战》
这本书是我同学送我的,主要就是介绍机器学习基础,还有就是如何用算法进行分类,还有监督学习和无监督学习的经典算法,再就是机器学习算法里的一些附属工具。


通过一些实例,切入日常工作任务,没有很多学术化的语言,通过实例学习到机器学习的核心算法,算是一本实战经典书。
---
呃,说句题外话:
实战的话,除了上面这本书,其实我更多的还是建议大家直接上 scikitlearn 官网就好了,官网上的内容非常详细,不管是算法说明、参考文档或者对应的案例都应有尽有。
当然了,官网都是英文的,刚开始看还是会有些难度,但是怎么说呢,如果你想搞机器学习,我还是建议你能学会看英文的文档,这个对于我们的学习是很重要的!
---
至于机器学习的进阶,其实就是细化到具体的方向去学习了。
我在研究生的时候接触过深度学习,对深度学习还是比较熟悉的。
所谓“深度学习”,是机器学习领域新的研究方向。在语音和图像识别方面,深度学习的效果更好。机器想要蜕变成人工智能,“深度学习”是必经之路。
深度学习的话我必须要推荐这本神书《动手学深度学习》,豆瓣评分 9.4 分,面向中文读者的能运行、可讨论的深度学习教科书!

(1)每一小节都是可以运行的 Jupyter 记事本!
你可以自由修改代码和超参数来获取及时反馈,从而积累深度学习的实战经验。


(2)公式 + 图示 + 代码
不仅结合文字、公式和图示来阐明深度学习里常用的模型和算法,还提供代码来演示如何从零开始实现它们,并使用真实数据来提供一个交互式的学习体验。


这本书的作者之一,<a href="http://www.zhihu.com/search?q=%E6%9D%8E%E6%B2%90&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A2210780210%7D" class="internal">李沐老师,亚马逊首席科学家(Principal Scientist),加州大学伯克利分校客座助理教授,美国卡内基梅隆大学计算机系博士。
这本书开源了,网上随便看,如果觉得看书不用非得看纸质书,直接看电子版的就可以了。
链接:《动手学深度学习》:面向中文读者、能运行、可讨论
同时大家可以搭配着李沐老师的深度学习课来看书。


这门课从零开始教授深度学习,你只需要有基础的 Python 编程和数学基础就可以学,主要是包括多层感知机、卷积神经网络、循环神经网络、和注意力机制四大类模型以及一些计算机视觉和自然语言处理的内容,知乎上直接就能看。
李沐的深度学习课 - 知乎同时对于深度学习来说,看前沿论文是必不可少的。
我再给大家推荐一个深度学习的 Paper 指南的项目,全称“Deep Learning Papers Reading Roadmap
非常适合学习深度学习,想要看论文但是又不知道该如何下手的小伙伴。
主要包括以下内容:

  • 1 深度学习历史与基础

    • 1.1 入门书籍
    • 1.2 深度学习综述
    • 1.3 深度信念网络
    • 1.4 ImageNet 发展
    • 1.5 语音识别发展

  • 2 深度学习

    • 2.1 模型
    • 2.2 优化器
    • 2.3 无监督学习
    • 2.4 循环神经网络
    • 2.5 神经图灵机
    • 2.6 深度强化学习
    • 2.7 深度迁移学习
    • 2.8 小样本深度学习

  • 3 应用

    • 3.1 自然语言处理
    • 3.2 目标检测
    • 3.3 视觉跟踪
    • 3.4 图像描述
    • 3.5 机器翻译
    • 3.6 机器人
    • 3.7 艺术
    • 3.8 目标分割



这不是知识的讲解,而是里程碑式的论文。
项目地址:https://github.com/floodsung/Deep-Learning-Papers-Reading-Roadmap
希望对你有所帮助

推荐就先推荐这些,有什么问题大家可以评论区走起。
希望大家能够静下心来好好去学,而不是收藏了就是会了。
祝大家根据自己的需求,早日学会你想学的编程语言,早日修成大佬!
当然如果觉得我写的还不错,记得帮我 @Rocky0429 点个赞呀,让我看到你的支持。
我有点懒 发表于 2023-10-5 16:09:29|来自:北京 | 显示全部楼层
作为数据科学的新手,你是否因为没有实践经验,在面试中屡屡被diss?如果是的话,你可以从《A Collection of Data Science Take-Home Challenges》“借”一个项目经验,让面试官对你刮目相看。
前言

有很多同学私信我,反映我发表的内容有点“硬核”,询问有没有适合算法新手的内容?或者数据科学的知识需要掌握到什么程度才能在互联网行业找到一份入门级别的算法工作?
对于第一点,我是同意的。我发表的关于推荐算法的很多内容,都需要读者有推荐、广告、搜索的实际工作经验,才能理解。否则,你未必能够意识到在小数据集下常规操作,却在“推广搜”海量数据、高维稀疏、在线持续更新的环境下根本不可能完成。意识不到问题的存在,无法对要解决的痛点感同身受,自然也就无法理解算法的精髓。
至于第二点,互联网算法工程师的入门级基本技能有哪些?倒让我想起了我在美国准备进入这个行业时所准备的TakeHome Challenge。
TakeHome Challenge是硅谷大厂考察数据科学人才的基本形式,一般用于一面。

  • 筛选简历后,大厂会给候选人发一道考题。
  • 题目包含一份数据,一般是该公司真实数据的脱敏版本。数据量不大,一般也就几万条,保证单机能够跑得通。
  • 所问的问题,也来自该公司业务的真实场景。
  • 要求候选人在规定时间内(不同公司有不同规定,一般1~3天),利用所提供的数据建立模型,回答所提问题,帮助公司改善产品。
  • 提交作业的形式,要包含你的代码和你的分析过程。
  • 也算是开卷考试,也不怕你请枪手,反正后面还有其他面试环节。
其实这种考察形式还挺重要的,可惜国内用得不多。和面试时让你白板写程序一样,考察的都是候选人的实际动手能力,毕竟talk is cheap, show me your codes。候选人提交的作业能够很大程度上反映他的解决数据问题的真实水平,包括:代码能力、建模能力、产品意识、沟通表达能力等。特别是针对校招生,因为没啥项目经验可聊(如果有的话,这样的校招生就太受欢迎了),如果只考察机器学习算法理论,很难保证招来的人能够干活(编程题考察的是写程序的水平,未必是解决算法实际项目的水平)。其实对于社招也应该适用,毕竟P7跳槽时要被要求白板编程也不算新闻了,再多做一个takehome challenge也不算太过分,毕竟考察的都是基本功,免得招来一个只知道写ppt和周报的“邵式兄弟”。
我亲身经历过Airbnb的takehome challenge,和下图的差不多。因为我对这种考察形式有所准备,也顺利通过了。不过后来就covid-19了,airbnb就开始裁员了,晕:-c。不过说回来了,虽然takehome challenge国内大厂用得不多,但是面试官要考察的点总是相通的,无非就是代码能力、数据处理能力、建模能力、评估能力、表达沟通能力等那几样。知道了考点,候选人可以在面试中主动体现自己在相关能力上的优势,比如“我做过一个项目,提取过几个有意思的特征,......”。我是非常欣赏这种候选人的,说明他是内行人,也是个聪明人。


怎么准备TakeHome Challenge?

综上所述,准备takehome chanllenge对于数据科学的工作面试还是大有帮助的,特别是对项目经验不足的校招生。那该如何准备呢?
这里我推荐一本书《A Collection of Data Science Take-Home Challenges》。这本书是我当初跨行进入数据科学领域,准备第一场面试时的复习资料,当初也花了我大几十刀(这还只包括题目和数据集,不包括答案)。这本书出了20道题目,类似高考前的模拟卷,“黄冈真题”。


目前来看,这几十刀还是值得的。

  • 一来,从以上内容可以看出,

    • 这本书涵盖了多种类型的互联网业务,比如:电商、内容媒体、银行、在线旅游、......等。
    • 另外也涵盖几乎所有的数据应用场景,比如:推荐、广告、搜索、风控、运营、数据分析、......等。

  • 二来,所提的问题都来源于真实的业务场景,题目中的数据集也能够反映出真实的数据环境,从而帮你加深对某一具体业务的理解,使你在面试中看起来像是个“内行”。
如果你是一个想进入互联网行业从事数据工作的有志打工好青年,看了N本书,上了N门网课,感觉理论知识也学得差不多了,苦于没有项目实战经验,不妨从这本书中“借”一个项目经验。

  • 比如,你想面银行或互联网金融的风控岗,仔细看看第10、12题。
  • 如果你想面试携程或飞猪,好好看看题目13。
  • 如果你想从事电商的数据分析,题目5的漏斗分析简直就是必修课。
  • 如果你想进滴滴或高德从事地图业务,认真准备一下题目14。
把对口的“借来”的项目经历写入简历,能帮助你的简历在一大堆没有实战经验的竞争者中脱颖而出;到了面试环节,这份“借来”的项目经历也帮你提升了对面试岗位的业务、数据特点的理解,从而给面试官留下深刻的印象,觉得招来的不是小白,而是“来之能战”。
我把这本书、书中题目所使用的数据、我对各题目的解答,打包放到百度网盘上。想获取这份资源的同学,关注我的公众号“推荐道”,回复takehome,限时一个月,免费领取。
成功的TakeHome Challenge长什么样?

一份帮你求职成功的takehome chanllenge长什么样?面试官希望从中发现候选人的哪些素质?
代码风格

好的代码风格非常重要,在我看来,比多刷几道leetcode还重要,毕竟未来在实际工作中遇到leetcode hard-level的机率是不高的。而目前最现实的需求时,你提交的code是要被面试官review的。如果你写的程序他都看不懂,你的面试结果也就可想而知了。
其实保持一个好的代码风格并不难,能做到如下几点就算不错了:

  • 给你的变量、函数、类起一个见名知意的好名字
  • 代码模块化。不要一个功能几百行写到底,而是要拆分成函数或类。
  • 恰当的注释,帮你的面试官理解你的代码。
另外,一般我们都是用Juypter Notebook来把代码、报告一起提交。你需要熟练掌握Markdown语法,并把你报告中的重要结论用加粗、高亮、放大字体、不同颜色等方式凸显出来,引起面试官的注意。
操作数据的能力

这必须是每个数据打工的人基础功。多表关联、排序、分组、聚合都是常见考点。
如果你使用Python,面试官希望看到,你是能够熟练使用NumPy/Pandas的,包括能提升效率的一些高级技巧。比如你能熟练调用Panads API完成批量操作,而不是自己写了一个for循环。
另外,面试官也希望你能够熟练调用matplotlib/seaborn/plotly等库将复杂的数据可视化。正所谓“一图胜千言”,清晰的图表、曲线反映了候选人的表达能力,特别是在面对非技术背景的合作伙伴的时候。
可惜,takehome chanllenge的数据量都比较小,无法反映候选人面对大数据的处理能力。但是也不排除假想一个Hive场景,让候选人写一个比较复杂的SQL出来。
特征预处理的基本功

我在之前的文章中曾经多次强调特征工程的重要性,正所谓Garbage in, Garbage out。所以特征处理能力,也是takehome chanllenge的关键考点。
第一条就是,不要一上来就把数据往模型里扔,那将是一个大大的减分项。正确的姿势是先做一些explorary data analysis,检查是否存在脏数据。现实场景中的数据没那么干净,你会见到各种奇形怪状的脏数据。对脏数据的警惕程度,能够反映出候选人的专业性。
第二,面试官希望能够看到你在构建特征时的创意。能够提取出好的特征,反映出候选人对这个业务的深入理解。
第三,就是考察候选人的特征处理技巧了。

  • 对数值特征:离群点、缺失值、标准化、数据平滑、......
  • 对类别特征:如何编码、过滤停用词、......。一般takehome challenge数据不多,用不上hashtrick。但是如果你提到了,比如“如果id类特征太多,可以考虑使用hashtrick”,反映出你对推广搜不陌生,面试官倒是应该高看你一眼。
建模基本功

考察候选人对常用的模型框架,比如xgboost/lightgbm/tensorflow/pytorch的熟练掌握程度。
虽然说,一般takehome challenge给候选人答题的时间是以天计,但是如果你真的花了3天时间,给几万条数据建个模型,说实在的,基本上这面试也就到此为止了,后面没啥机会了。我当初做Airbnb的takehome challenge,从拿到考题到交卷,也就半天的时间。
在有限的时间内完成建模,就要求候选人必须有一件称手的兵器(xgboost/lightgbm/tensorflow/pytorch,sklearn有点小儿科了),并且“招之即来,来之能战”。拿到考题,才想起google某个api的具体用法,就有点拉胯了。
评估模型的基本功

不能正确的评估模型,也就无法对模型做出改进。
划分train/validation/test三个数据集,是最基本的常识。如果你把全部数据都投入训练,并基于训练指标形成结论,那就趁早洗洗睡吧。
遇到label不均衡的数据集是常态,

  • 用AUC评价也算是常识。如果新手候选人提到GAUC,我要是面试官,就再高看他一眼。
  • 模型一般只能给出概率,而实际业务需要一个确定的结论,做出决策所依赖的threshold到底应该划在哪里?
  • 现实场景中几乎看不到正负样本5/5开的数据集,基于threshold=0.5来做出结论的,也趁早洗洗睡吧。
  • 采用不同的threshold,precision是多少?recall是多少?结合具体业务,我到底是应该“错杀三千”,还是考虑“放走一个”?
如果候选人除了给出在整个test集上的指标,还知道划分子集并给出每个子集上的指标(比如:新老用户上的不同指标、不同分类的商品上的指标),听我的,千万不要放过他。(说真的,能想到这一层的候选人,也用不着从我这里“借”项目经验。)
以上说的还都是离线评测,有的题目要求候选人设计线上AB实验方案。如何分桶(按人分桶,还是按流量分桶)、如何设计指标反映对业务的提升、......,都是常规考点。
分析并改进的能力

如前所述,一般takehome challenge给你1~3天的时间,但是你千万不要卡着3天的上限交卷。毕竟我们不是在打kaggle比赛,没必要为了auc千分位上的提升,又是建多模型boosting & stacking,又是grid search把整个超参空间搜个遍。
面试官从不期待候选人给出一个完美模型,因为这个东西本来就不存在。takehome challenge有两个考察目的:

  • 首先,候选人能够在有限的时间里面(一般就半天),给出一个还不错的模型。这考察的是候选人对知识、技能、工具的熟练掌握程度。
  • 然后,候选人能够分析初版模型的问题,并给出改进意见。因为完美模型虽然不存在,但是老板们鞭策我们追求完美的声音却始终萦绕在每个打工人的耳边。
面试官希望看到:

  • 第一步分析出,初版模型到底是underfitting还是overfitting?(当然,如果候选人对overfitting有非常规的看法的话,嗯,肯定会有下次面试,咱俩好好唠唠。)然后,根据underfitting还是overfitting,针对性地提出具体改进方案。
  • 比如:哪个超参数还需要继续调整?
  • 比如:哪些特征还需要加强?怎么加强?
  • 比如:是否需要收集更多的数据?怎么收集?
要达到以上目的,候选人需要有能力打开模型的黑盒,比如掌握基本的特征重要性分析方法。
产品意识

毕竟我们不是在实验室从事理论研究,我们希望看到候选人能够从数据中提炼出想法,改善产品,带来切实的收益。

  • 比如:发现某个用户分群特征(e.g., 性别、年龄)的重要性非常强,模型在不同人群上的表现差异很大。候选人提出使用运营等手段,加强劣势人群对产品的认知。
  • 比如:模型认为某个特征的重要性非常低,但是这与常理不符。这时,候选人提出是不是产品设计有问题,导致这个重要特征发挥不了作用。
另外,如果候选人能够将自己使用app的亲身体验与数据中表现的模式结合起来就更好了,说明招来的是一个热爱这款产品的“同道中人”。
举例说明

刚才讲了这么多,也算是我当过候选人,也当过面试官的切身感受。还是那句话,即使不采用takehome challenge的考察形式,以上内容也算是数据从业者的基本素质,是面试中的常见考点,也希望候选人能够主动展示。
我拿我求解“07.Marketing Email Campaign”这道题的过程,演示一下如何在takehome challenge中向面试官展示自己的能力。
先提前声明:我的solution也是好多年前做的了。当时我也是新手,对第二章强调的几个考点感受也不深,所以我的solution也并非面面俱到,就算是给大家“抛砖引玉”了。
先看题目,这道题的场景是一个邮件营销的场景,业务方关心的是有多少人打开了邮件,又有多少人点击了其中的广告链接。

  • What percentage of users opened the email and what percentage clicked on the link within the email? (考察数据处理能力)
  • The VP of marketing thinks that it is stupid to send emails to a random subset and in a random way. Based on all the information you have about the emails that were sent, can you build a model to optimize in future email campaigns to maximize the probability of users clicking on the link inside the email? (建模能力)
  • By how much do you think your model would improve click through rate ( defined as # of users who click on the link / total users who received the email). How would you test that? (评估模型的能力)
  • Did you find any interesting pattern on how the email campaign performed for different segments of users? Explain (分析改进能力,还有产品意识)
我的答案在我的github上,获取方式见本文最后。
帮助面试官理解

我用jupyter notebook撰写代码与报告。报告一上来,我就将我的解题过程列出来,帮助面试官理解我的解题思路。



分析结果多用图表展示。重要结论字体加粗、放大、用醒目颜色,引起面试官的注意。


总之一句话,帮助面试官,就是帮助你自己。
改进模型



要让面试官知道,时间所限,这一版模型还凑合,但是我知道如何改进能让它更好。
产品意识

从数据中提取出能够改善产品的观点。


为了能够得出这些结论,我演示了如何从XGBoost获取特征重要性。



模型评估

给业务方讲AUC来评价你的模型是没有意义的,你必须将它翻译成“人话”。
首先,模型给出的是概率,但是业务方需要的是一个确切、可行动的结论。这里,我用TPR(true postive rate)和FPR(false positive rate)来量化我的不同决策的影响(点开概率超过多少,才发营销邮件)。




基于我的决策,我拿业务方关心的指标来证明模型的有效性,即节省了流量,有些潜在用户可能收不到邮件,但是广告打开率翻倍了,总之广告的效率更高了。



总结

本文介绍了takehome challenge这种硅谷常见的面试数据科学从业者的形式。借着takehome challenge这个话题,根据我做过候选人也当过面试官的亲身感受,我列举了数据科学面试中的常见考点,算是回答了“算法学到什么程度才能找到一份工作”、“怎么才能转行算法工程师”这类新手比较关心的问题。
准备takehome challenge对于已经掌握了数据科学的基本知识,但是苦于缺乏项目实战经验的新手是非常有帮助的。根据你要面试的行业、岗位,新手不妨从我提供的资源中“借”一个项目经验。把“借来”的、对口的项目经历写入简历,能帮助你的简历在一大堆没有实战经验的竞争者中脱颖而出;到了面试环节,这份“借来”的项目经历也帮你提升了对面试岗位的业务、数据特点的理解,从而给面试官留下“来之能战”的深刻印象。
还是那句话,虽然takehome challenge这种考察形式在国内大厂并不多见,但是考点总是相通的。熟练掌握后,候选人可以在面试中主动向面试官展现自己的相关能力。
本文也提供了准备takehome challenge的相关资源。花了我几十美刀的电子书、数据集,还有我对20道题目的答案,都放在百度网盘上,作为我回馈粉丝的福利。关注我的公众号“推荐道”,回复takehome,限时一个月,免费领取。
- END -
WAITWIND 发表于 2023-10-5 16:10:18|来自:北京 | 显示全部楼层
机器学习好书重磅来袭!本书单含机器学习、深度学习、数学基础、神经网络及自然语言处理领域。

机器学习

1、《零基础学机器学习


  • 像漫画书一样有趣的机器学习入门书


一般通过“对话形式”展开的书都十分有趣,《零基础学机器学习》不仅读起来令人轻松愉悦,而且内容全面,实战性强。
本书主人公“小冰”是一只可可爱爱的90后程序媛,一天早上她被老板告知要从零开始跟着“咖哥”学机器学习,于是就这样走上了从零开始学机器学习的道路。


本书包括机器学习快速上手路径、数学和 Python 基础知识、机器学习基础算法(线性回归和逻辑回归)、深度神经网络、卷积神经网络、循环神经网络、经典算法、集成学习、无监督和半监督等非监督学习类型、强化学习实战等内容,并且所有案例均通过 Python 及 Scikit-learn 机器学习库和 Keras 深度学习框架实现,同时还包含丰富的数据分析和数据可视化内容。
机器学习入门必备“小白书”,与小冰一起参加机器学习课堂培训,通过丰富的实战案例学习理论与技术吧!
2、《Python机器学习基础教程》



机器学习已成为许多商业应用和研究项目不可或缺的一部分,海量数据使得机器学习的应用范围远超人们想象。本书将向所有对机器学习技术感兴趣的初学者展示,自己动手构建机器学习解决方案并非难事!
书中重点讨论机器学习算法的实践而不是背后的数学,全面涵盖在实践中实现机器学习算法的所有重要内容,帮助读者使用Python和scikit-learn库一步一步构建一个有效的机器学习应用。
3、《场景化机器学习



AWS首席开发者布道师费良宏作序推荐;无须精通数学或编程,巧用机器学习成为业务小能手。在新一波数字化转型浪潮中,借助机器学习技术为业务创新赋能,这成了几乎所有公司可以甚至必须探索的方向。有了恰当的工具,无须高深的数学知识或专业的技术背景,你就能在日常业务中享受机器学习带来的便利。
本书凝聚了作者丰富的业务自动化经验,以虚拟人物为主线,展示了如何在客户留存、客户支持等业务场景中应用机器学习技术,从而让流程更快速、工作更高效、决策更明智。
4、《百面机器学习 算法工程师带你去面试



本书收集了超过100道机器学习的题目,这些题目大部分在近年算法工程师的笔试、面试中出现过,作者试图从实际应用出发,给出详细的解答,打通从理论到应用的障碍。书中还讲述了很多算法背后的小故事,增加读者对问题的理解。
5、《机器学习的数学



上海交通大学特别研究员、阿里巴巴、百度算法专家、优酷首席科学家、谷歌机器学习开发者专家力荐教材,SIGAI创始人全新力作,彻底解决机器学习的数学问题。
本书的目标是帮助读者全面、系统地学习机器学习所必须的数学知识。全书由8章组成,力求精准、最小地覆盖机器学习的数学知识。包括微积分,线性代数与矩阵论,最优化方法,概率论,信息论,随机过程,以及图论。
本书从机器学习的角度讲授这些数学知识,对它们在该领域的应用举例说明,使读者对某些抽象的数学知识和理论的实际应用有直观、具体的认识。
深度学习

1、《深度学习入门  基于Python的理论与实现》  


  • 日本深度学习入门经典畅销书


原版上市不足2年印刷已达100 000册。长期位列日亚“人工智能”类图书榜首,众多五星好评。
书中使用Python3,尽量不依赖外部库或工具,从基本的数学知识出发,带领读者从零创建一个经典的深度学习网络,使读者在此过程中逐步理解深度学习。
书中不仅介绍了深度学习和神经网络的概念、特征等基础知识,对误差反向传播法、卷积神经网络等也有深入讲解,此外还介绍了深度学习相关的实用技巧,自动驾驶、图像生成、强化学习等方面的应用,以及为什么加深层可以提高识别精度等疑难的问题。
2、《动手学深度学习》


  • 亚马逊科学家作品,被全球超150所高校选为教程


目前市面上有关深度学习介绍的书籍大多可分两类,一类侧重方法介绍,另一类侧重实践和深度学习工具的介绍。本书同时覆盖方法和实践。本书不仅从数学的角度阐述深度学习的技术与应用,还包含可运行的代码,为读者展示如何在实际中解决问题。
为了给读者提供一种交互式的学习体验,本书不但提供免费的教学视频和讨论区,而且提供可运行的Jupyter记事本文件,充分利用Jupyter记事本能将文字、代码、公式和图像统一起来的优势。这样不仅直接将数学公式对应成实际代码,而且可以修改代码、观察结果并及时获取经验,从而带给读者全新的、交互式的深度学习的学习体验。
3、《深度学习


  • AI圣经!深度学习领域奠基性的经典畅销书


长期位居美国亚马逊AI和机器学习类图书榜首!所有数据科学家和机器学习从业者的必读图书!特斯拉CEO埃隆·马斯克等国内外众多专家推荐!
《深度学习》由全球知名的三位专家Ian Goodfellow、Yoshua Bengio 和Aaron Courville撰写,是深度学习领域奠基性的经典教材。
全书的内容包括3个部分:第1部分介绍基本的数学工具和机器学习的概念,它们是深度学习的预备知识;第2部分系统深入地讲解现今已成熟的深度学习方法和技术;第3部分讨论某些具有前瞻性的方向和想法,它们被公认为是深度学习未来的研究重点。
4、《Python深度学习



《Python深度学习》由Keras之父、现任Google人工智能研究员的Franc.ois Chollet执笔,详尽展示了用Python、Keras、TensorFlow进行深度学习的探索实践,涉及计算机视觉、自然语言处理、生成式模型等应用。
在学习完本书后,读者将了解深度学习、机器学习和神经网络的关键概念,具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力,学会解决现实世界中的深度学习问题。除此之外,本书还深刻剖析了当前的"人工智能热",从理性的视角展望了深度学习在未来的可能性。
5、《百面深度学习 算法工程师带你去面试》



深度学习是目前学术界和工业界都非常火热的话题,在许多行业有着成功应用。本书由Hulu的近30位算法研究员和算法工程师共同编写完成,专门针对深度学习领域,是《百面机器学习:算法工程师带你去面试》的延伸。
本书仍然采用知识点问答的形式来组织内容,每个问题都给出了难度级和相关知识点,以督促读者进行自我检查和主动思考。书中每个章节精心筛选了对应领域的不同方面、不同层次上的问题,相互搭配,展示深度学习的“百面”精彩,让不同读者都能找到合适的内容。
神经网络

1、《Python神经网络编程



神经网络是一种模拟人脑的神经网络,以期能够实现类人工智能的机器学习技术。本书揭示神经网络背后的概念,并介绍如何通过Python实现神经网络。全书分为3章和两个附录。

  • 第1章介绍了神经网络中所用到的数学思想。
  • 第2章介绍使用Python实现神经网络,识别手写数字,并测试神经网络的性能。
  • 第3章带领读者进一步了解简单的神经网络,观察已受训练的神经网络内部,尝试进一步改善神经网络的性能,并加深对相关知识的理解。
自然语言处理

1、《自然语言处理入门



这是一本务实的入门书,助你零起点上手自然语言处理。HanLP 作者何晗汇集多年经验,从基本概念出发,逐步介绍中文分词、词性标注、命名实体识别、信 息抽取、文本聚类、文本分类、句法分析这几个热门问题的算法原理与工程实现。书中通过对多种算法的讲解,比较了它们的优缺点和适用场景,同时详细演示生产级成熟代码,助你真正将自然语言处理应用在生产环境中。随着本书的学习,你将从普通程序员晋级为机器学习工程师,最后进化到自然语言处理工程师。
2、《自然语言处理实战》



本书是介绍自然语言处理(NLP)和深度学习的实战书。NLP已成为深度学习的核心应用领域,而深度学习是NLP研究和应用中的必要工具。本书分为3部分:第一部分介绍NLP基础,包括分词、TF-IDF向量化以及从词频向量到语义向量的转换;第二部分讲述深度学习,包含神经网络、词向量、卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆(LSTM)网络、序列到序列建模和注意力机制等基本的深度学习模型和方法;第三部分介绍实战方面的内容,包括信息提取、问答系统、人机对话等真实世界系统的模型构建、性能挑战以及应对方法。
本书面向中高级Python开发人员,兼具基础理论与编程实战,是现代NLP领域从业者的实用参考书。
关联阅读

<a data-draft-node="block" data-draft-type="link-card" href="http://zhuanlan.zhihu.com/p/341750791" data-size="small" data-image="http://pic3.zhimg.com/v2-115185eaa0b961caf0b04a53d7021046_720w.jpg" data-entity-type="article" class="internal">https://zhuanlan.zhihu.com/p/341750791========
赠人玫瑰,手留余香,不要忘记点赞、收藏、关注 @人民邮电出版社 哦~
一键三连,感恩有你~

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则