开源 Python 爬虫网站秒搜所有豆瓣好书

程序员在提升自己的道路,大多还是会选择阅读编程书籍这一途径,但找到一本好书就没那么容易了。

通过查看各大销售网站的销量数据和评价,以及豆瓣评分和评价人数,可以帮助我们更快的挖掘出经典的计算机书籍,还有那些被人们忽视的好书。

为什么说它很好用呢?演示一遍你就知道了:

好书一下
好书一下

可以看出这网站的界面非常简洁,没有花里花哨的内容,只有干货,你可以直接通过关键字、分数、和评价人数这三个选项进行搜索,比如我们可以搜索关键字:编程;分数:9.0;评价人数:100 人以上

查找结果的显示方式有按照分数排序和人数排序两种,按照分数排序的截图如下:

分数排序
分数排序

按照评价人数排序的截图如下:

人数排序
人数排序

除了以上演示的操作,这个网站并实现了以下功能:

  • 可以爬下豆瓣读书标签下的所有图书
  • 按评分排名依次存储
  • 存储到 Excel 中,可方便大家筛选搜罗,比如筛选评价人数 >1000 的高分书籍;可依据不同的主题存储到 Excel 不同的 Sheet
  • 采用 User Agent 伪装为浏览器进行爬取,并加入随机延时来更好的模仿浏览器行为,避免爬虫被封

也就是说你不仅可以在网站上搜索,还能通过下载各类目下的 Excel 书单文件,直接在 Excel 中搜索

Excel书单文件
Excel书单文件

效果截图如下:

效果截图
效果截图

GitHub地址项目 GitHub 地址

MIT 全面解读 2019 深度学习最前沿课程

MIT 正在进行中的深度学习课程就全面描绘了当下的状态。最近一节课,Lex Fridman 老师展现了深度学习各方向的最领先状态,也回顾了过去两年间通往前沿的一步步进展。涉及自然语言处理、深度强化学习、训练和推断的加速等等。

这节课涉及的重大进展,共 12 个方面,分别是:

  • BERT 和自然语言处理(NLP
  • 特斯拉 Autopilot 二代(以上)硬件:规模化神经网络
  • AdaNet:可集成学习的 AutoML
  • AutoAugment:用强化学习做数据增强
  • 用合成数据训练深度神经网络
  • 用 Polygon-RNN++ 做图像分割自动标注
  • DAWNBench:寻找快速便宜的训练方法
  • BigGAN:最领先的图像合成研究
  • 视频到视频合成
  • 语义分割
  • AlphaZero 和 OpenAI Five
  • 深度学习框架

跨象乘云™ 提供 PPT 本地下载。

《图形深度学习》开放课程

CreativeAI: Deep Learning for Graphics

在计算机图形学中,许多传统问题现在通过基于深度学习的数据驱动方法得到更好的解决。在越来越多的问题设置中,深层网络是最先进的,远远超过了专门手工设计的方法。本教程对深度学习的核心理论、实践和图形相关应用进行了系统性的概述。以下为跨象乘云整理的大纲目录及 PPT 链接:

内容目录:

  1. 概述
  2. 机器学习基础
  3. 神经网络基础
  4. 特征可视化
  5. 直接监督的替代方案
  6. 图像
  7. 3D
  8. 物理动画

同时,课程还给出来大量的实验代码,并发布在 Github 上,包含主题:

  • 线性回归和多项式回归
  • 随机梯度下降
  • 多层感知器
  • 边缘过滤网络
  • 卷积网络
  • 过滤器可视化
  • 权重初始化策略
  • 彩色化网络
  • 自编码器
  • 变分自编码器
  • 生成对抗网络
  • 卷积网络镜像
  • PDE Learning
GitHub地址项目 GitHub 地址

亚马逊发布机器学习课程视频及配套实验

继谷歌、微软、Deepmind后,亚马逊在近日也宣布,把自家培训软件工程师和数据科学家的机器学习课程免费开放。这家庞大的互联网巨头非常重视自身员工的培训,本次公开内容包括 30 多个数字 ML 课程,总计时长超过 45 小时,。马逊同时推出认证选择,学习者可以通过测试考试后,可以拿到证书,辅助其获得业界的认可。

亚马逊还很贴心的将课程分类,为四类人士量身定做了职业发展路径,分别迎合开发人员,数据科学家,数据平台工程师和业务人士的需要。

开源中文书《动手学深度学习》上线

MXNet 创始人李沐、Aston Zhang 等人所著的交互式书籍《动手学深度学习》推出了在线预览版,面向在校学生、工程师和研究人员,旨在帮助读者从入门到深入、动手学习深度学习,即使是零基础的读者也完全适用。与吴恩达的课程侧重于 TensorFlow 不一样,这本书是亚马逊 MXNet 零基础深度学习课程的重要组成部分,为此,亚马逊团队开发了 MXNet 的新前端 Gluon,课程内容推荐使用 Gluon 进行开发。李沐表示,开设这门课程的初衷,是看到了目前刚开始接触机器学习的学习者没有很完善的参考资料的现状,这门课程可以帮助他们从深度学习入门到最新最前沿的算法,从 0 开始通过交互式的代码来讲解每个算法和概念。PDF 预览版下载。

GitHub地址项目 GitHub 地址

吴恩达深度学习教程中文笔记

8 月 8 日,吴恩达在他自己创办的在线教育平台 Coursera 上线了他的人工智能专项课程(Deep Learning Specialization)。此课程广受好评,通过视频讲解、作业与测验等让更多的人对人工智能有了了解与启蒙,国外媒体报道称:吴恩达这次深度学习课程是迄今为止,最全面、系统和容易获取的深度学习课程,堪称普通人的人工智能第一课。这些课程专为已有一定基础(基本的编程知识,熟悉 Python、对机器学习有基本了解),想要尝试进入人工智能领域的计算机专业人士准备。介绍显示:“深度学习是科技业最热门的技能之一,本课程将帮你掌握深度学习。”

在这 5 堂课中,学生将可以学习到深度学习的基础,学会构建神经网络,并用在包括吴恩达本人在内的多位业界顶尖专家指导下创建自己的机器学习项目。Deep Learning Specialization 对卷积神经网络 (CNN)、递归神经网络 (RNN)、长短期记忆 (LSTM) 等深度学习常用的网络结构、工具和知识都有涉及。

课程中也会有很多实操项目,帮助学生更好地应用自己学到的深度学习技术,解决真实世界问题。这些项目将涵盖医疗、自动驾驶、和自然语言处理等时髦领域,以及音乐生成等等。Coursera 上有一些特定方向和知识的资料,但一直没有比较全面、深入浅出的深度学习课程——《深度学习专业》的推出补上了这一空缺。

课程的语言是 Python,使用的框架是 Google 开源的 TensorFlow。最吸引人之处在于,课程导师就是吴恩达本人,两名助教均来自斯坦福计算机系。完成课程所需时间根据不同的学习进度,大约需要3-4个月左右。学生结课后,Coursera 将授予他们 Deep Learning Specialization 结业证书。

“我们将帮助你掌握深度学习,理解如何应用深度学习,在人工智能业界开启你的职业生涯。”

吴恩达在课程页面中提到。

GitHub地址项目 GitHub 地址

OpenAI 重磅发布深度强化学习资源

在项目主页中,OpenAI 提供了非常完整的使用教程,包括 Spinning Up 的详细介绍、各种环境下的安装方法、收录的算法,以及实验实现的教程等。除此之外,OpenAI 也提供了丰厚的学习资料,包括:强化学习的入门基础、结合 Spinning Up 学习 RL 的课程、论文推荐、实验练习和基准结果参考等。给人的第一印象就是,要想在深度强化学习上从 Zero 到 Hero,天天逛这个网站就够了。

线性代数与张量开放课程

数学是机器学习的基础。斯坦福大学教授 Stephen Boyd 联合加州大学洛杉矶分校的 Lieven Vandenberghe 教授出版了一本基础数学书籍《Introduction to Applied Linear Algebra》,从向量到最小二乘法,分三部分进行讲解并配以辅助资料。此外,这本书也是斯坦福 EE103 课程、UCLA EE133A 课程的教材,由剑桥大学出版社出版(允许网络公开)。

该书还可用于自学,并辅以在线提供的资料,例如下面这份 470 页的 PPT.

人工智能、机器学习和认知计算

近日,IBM 发布了《人工智能、机器学习和认知计算入门指南

几千年来,人们就已经有了思考如何构建智能机器的想法。从那时开始,人工智能 (AI) 经历了起起落落,这证明了它的成功以及还未实现的潜能。如今,随时都能听到应用机器学习算法来解决新问题的新闻。从癌症检测和预测到图像理解和总结以及自然语言处理,AI 正在增强人们的能力和改变我们的世界。

现代 AI 的历史包含一部伟大的戏剧应具有的所有要素。上世纪 50 年代,随着对思维机器及阿兰·图灵和约翰·冯·诺依曼等著名人物的关注,AI 开始崭露头角。尽管随后经历了数十年的繁荣与萧条,并被寄予了难以实现的厚望,但 AI 和它的先驱们仍然一直在努力前行。如今,AI 展现出了它的真正潜力,专注于应用并提供深度学习和认知计算等技术。

新一代人工智能的时间线
新一代人工智能的时间线

Python 交互式的学习资源

Project Python 是一本免费的交互式书籍,它通过使用图形、动画和游戏来教你用 Python编写代码。后面你还将学到解决经典计算机科学问题的方法,软件设计的原则,以及如何分析算法性能。即使基础薄弱你也不会感到吃力。交互书籍覆盖的内容包括:

  • 功能,抽象和风格
  • 变量和表达式
  • 循环和条件
  • 调试
  • 参数,返回值和范围
  • 动画; 鼠标和键盘输入
  • 列表和 for 循环
  • 读写文本文件
  • 嵌套循环
  • 物理模拟
  • 类和对象
  • 递归
  • 排序
  • 分析算法
  • 分类算法分析
  • 堆栈,队列和词典
  • 链接列表
  • 图表

23 个 Pandas 核心操作

Pandas 是基于 NumPy 构建的库,在数据处理方面可以把它理解为 NumPy 加强版,同时 Pandas 也是一项开源项目。它基于 Cython,因此读取与处理数据非常快,并且还能轻松处理浮点数据中的缺失数据(表示为 NaN)以及非浮点数据。在本文中,基本数据集操作主要介绍了 CSV 与 Excel 的读写方法,基本数据处理主要介绍了缺失值及特征抽取,最后的 DataFrame 操作则主要介绍了函数和排序等方法。

读取 CSV 格式的数据集

pd.DataFrame.from_csv(“csv_file”)

或者

pd.read_csv(“csv_file”)

读取 Excel 数据集

pd.read_excel("excel_file")

将 DataFrame 直接写入 CSV 文件

如下采用逗号作为分隔符,且不带索引:

df.to_csv("data.csv", sep=",", index=False)

基本的数据集特征信息

df.info()

基本的数据集统计信息

print(df.describe())

将 DataFrame 输出到一张表

print(tabulate(print_table, headers=headers))

当「print_table」是一个列表,其中列表元素还是新的列表,「headers」为表头字符串组成的列表。

列出所有列的名字

df.columns

删除缺失数据

df.dropna(axis=0, how='any')

返回一个 DataFrame,其中删除了包含任何 NaN 值的给定轴,选择 how=「all」会删除所有元素都是 NaN 的给定轴。

替换缺失数据

df.replace(to_replace=None, value=None)

使用 value 值代替 DataFrame 中的 to_replace 值,其中 value 和 to_replace 都需要我们赋予不同的值。

检查空值 NaN

pd.isnull(object)

检查缺失值,即数值数组中的 NaN 和目标数组中的 None/NaN。

删除特征

df.drop('feature_variable_name', axis=1)

axis 选择 0 表示行,选择表示列。

将目标类型转换为浮点型

pd.to_numeric(df["feature_name"], errors='coerce')

将目标类型转化为数值从而进一步执行计算,在这个案例中为字符串。

将 DataFrame 转换为 NumPy 数组

df.as_matrix()

取 DataFrame 的前面「n」行

df.head(n)

通过特征名取数据

df.loc[feature_name]

对 DataFrame 使用函数

该函数将令 DataFrame 中「height」行的所有值乘上 2:

df["height"].apply(*lambda* height: 2 * height)

或者:

def multiply(x):
return x * 2
df["height"].apply(multiply)

重命名行

下面代码会重命名 DataFrame 的第三行为「size」:

df.rename(columns = {df.columns[2]:'size'}, inplace=True)

取某一行的唯一实体

下面代码将取「name」行的唯一实体:

df["name"].unique()

访问子 DataFrame

以下代码将从 DataFrame 中抽取选定了的行「name」和「size」:

new_df = df[["name", "size"]]

总结数据信息

# Sum of values in a data frame
df.sum()
# Lowest value of a data frame
df.min()
# Highest value
df.max()
# Index of the lowest value
df.idxmin()
# Index of the highest value
df.idxmax()
# Statistical summary of the data frame, with quartiles, median, etc.
df.describe()
# Average values
df.mean()
# Median values
df.median()
# Correlation between columns
df.corr()
# To get these values for only one column, just select it like this#
df["size"].median()

给数据排序

df.sort_values(ascending = False)

布尔型索引

以下代码将过滤名为「size」的行,并仅显示值等于 5 的行:

df[df["size"] == 5]

选定特定的值

以下代码将选定「size」列、第一行的值:

df.loc([0], ['size'])

自然语言处理最新教材开放下载

乔治亚理工大学 Jacob Eisenstein 教授开放了自然语言处理领域的最新教材《Natural Language Processing》,该教材 2018 年 6 月第一版的 PDF 已经在 GitHub 上开放下载。这本书的内容主要分为四大章节,即 NLP 中监督与无监等学习问题、序列与解析树等自然语言的建模方式、语篇语义的理解,以及后这些技术最在信息抽取、机器翻译和文本生成等具体任务中的应用。

Eisenstein 将这一本非常完善的教材称之为「Notes」,它是在乔治亚理工大学学习自然语言处理相关领域所需要了解的基础。例如在介绍自然语言处理理论与方法的课程 CS4650/7650 中,这本开放书籍就作为标准的课程教材。

CS4650/7650 2018 春季课程需要阅读 GitHub 目录下 eisenstein-nlp-notes-jan-10-2018.pdf 文件,而另外一个文件 eisenstein-nlp-notes.pdf 会包含一些章节上的更新,不过它会在整个学期内进行。Eisenstein 表示这本开放书籍也可以用于其它研究或课程,书籍上的任何误差或反馈都能直接发邮件给作者。

自然语言处理是令计算机能访问人类语言的一组方法。在过去的十年中,自然语言处理已经深入了我们的日常生活:自动机器翻译在网站和社交媒体中已经无处不在、文本分类确保了电子邮箱在海量垃圾邮件中屹立不倒、搜索引擎已经不再只是字符匹配与网络分析,它已经能理解高维度的复杂语言,还有近来对话系统的兴起也令信息的分享与交互更高效。

这些强大的应用其实都基于一套通用的思想,即利用算法、语言规则、逻辑和统计知识理解自然语言。这本书的目的是提供这些思想与技术的基础,并应用于各种实际的任务中。此外,这本书除了详细的概念与算法,同时还包括一些高阶主题,读者可按需求学习与阅读。

此前,机器之心网站做了详细的课程介绍

GitHub地址项目 GitHub 地址

吴恩达《机器学习思维》公开预订

人工智能、机器学习和深度学习正在改变众多行业。吴恩达一直在写一本书:机器学习思维(Machine Learning Yearning),教你如何构建机器学习项目。本书的重点不在于教授机器学习算法,而在于如何使机器学习算法发挥作用。一些技术类的 AI 课程会给你一个锤子;而这本书教你,如何使用机器学习这把锤子。如果你渴望成为 AI 的技术领导者并想学习如何为你的团队设定方向,这本书将会对你有帮助。

阅读《Machine Learning Yearning》后,您将获取以下内容:

  • 如何了解到 AI 项目最有前途的方向;
  • 如何诊断机器学习系统中的错误;
  • 如何在复杂设置中构建 ML,例如不匹配的训练/测试集;
  • 如何建立一个 ML 项目来比较与人类的表现;
  • 如何了解何时以及如何应用端到端学习、迁移学习和多任务学习。

从之前的经验看,学习如何制定这些“战略性”决策的唯一方法是,在研究生课程或公司中,通过多年积累的经验来培养。我正在写的这本机器学习思维,希望可以帮你快速获得这项技能,以便可以更好地构建新一代人工智能系统。

这本书大约有 100 页,包含许多易于阅读的只有 1 – 2 页的章节。如果你希望在每章完成后收到草稿,请注册邮件列表。点击注册网站后,可以免费收到最新完成的章节。同时,你可以看到一封吴恩达写给大家的名为《你如何组织一个 AI 项目?》的公开信,详细阐述了这本书将涵盖的内容以及他写这本书的目的。

UC Berkeley 在线课程:数据科学、机器学习、推理重采样

近日,伯克利 RISE 实验室在教育网络平台上开放了一门免费的数据科学入门课程,该课程面向那些需要学习数据科学而又缺少数学及编程经验的人,除了数据科学基础,也涵盖了机器学习课程。

数据科学基础系列课将从头开始教授计算和推理思想。它涵盖了从测试假设,应用统计推断,可视化分布和绘制结论等所有内容,值得一提的是,所有编程作业都是在 Python 中编写代码并使用真实世界的数据集。

其中一门课程会让学生基于从不同国家收集的多年来的经济数据跟踪全球经济增长。另一门课程会使用细胞样本数据集来创建能够诊断乳腺癌的分类算法。在现实世界中进行数据科学的探索,能够使前沿的统计学和计算机科学概念更加直观,并且适合于每一个普通人。

在这个日益变得数据驱动化的世界中,Data 8X 课程为学生提供了一个机会,无论他们身处世界的哪一个角落、年纪多大、有什么样的教育背景,都可以学习如何使用、理解和应用数据科学概念。参与课程的学员只需要在网站提供的 Jupyter Notebook 编程环境下学习和完成作业,其中包含了开始编码所需的所有工具,无需任何复杂的安装过程或陡峭的学习曲线。本课程不要求学员具备任何统计学、计算机科学或编程经验。三门免费课程包括:

  • 数据科学基础: 使用 Python 进行计算思维,通过使用流行的编程语言 Python,教授计算思维的基础知识,这是当今数据驱动世界的基本技能。
  • 重采样思维: 通过重采样的推理思维教导如何使用推理思维根据随机样本中的数据对未知数作出结论。
  • 预测和机器学习: 教授如何使用机器学习,专注于回归和分类,自动识别数据模式并做出更好的预测。

UC Berkeley 深度强化学习开放课程

UC Berkeley 最近发布了 CS 294: Deep Reinforcement Learning, Fall 2017 —— 深度强化学习的开放课程资源(中文翻译),这个课适合已经有一定机器学习基础的同学学习。同时,该课程主题选择深度增强学习,即紧跟当前人工智能研究的热点,又可作为深度学习的后续方向,值得推荐。

深度强化学习可以说是人工智能领域现在最热门的方向,吸引了众多该领域优秀的科学家去发掘其能力极限。而深度强化学习本身也由于其通用性备受各个应用领域推崇,从端对端游戏控制、机器人手臂控制、推荐系统,甚至也来到了自然语言对话系统。然而如何在日新月异,几乎每日都在更新迭代的深度强化学习的进展中保持好节奏,那是这篇文章带给大家的建议和思考。