在大数据时代,大量有价值的信息以文本等非结构化、异构型的数据格式存储于互联网网页中。从 Web 上快速、有效地提取这些信息对人文社会科学的深度研究尤为重要。
那么,如何获取这些信息呢?一个利器就是:
网络爬虫
。它能为我们提供高质量的分析文本,分析质量远高于传统工具。
事实上,无论是在管理学、经济学、金融学、会计学,还是人文社会科学的其他领域,基于网络爬虫的文本分析类研究都得到了高度的关注。其火热程度可以从相关论文的 Google 学术引用次数窥豹一斑。
例如,在金融和会计领域,Loughran and McDonald (2011) 发表于
Journal of Finance
上的有关文本分析技术的综述性文章,短短 8 年时间,引用率已经超过 1000。二人于 2016 年发表于
Journal of Accounting Research
的另一篇介绍文本分析在会计和金融领域应用的综述性文章目前已被引用 300 余次。
此外,在政治学领域,Grimmer and Stewart (2013) 的 “Text as data: The promise and pitfalls of automatic content analysis methods for political texts”,被引用 1200 余次;经济学领域,Hoberg and Phillips (2016, JPE) 被引用 500 余次。
机器学习 (Machine Learning, ML) 是一门多领域交叉学科,涉及概率论、统计学、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用涉及人工智能的各个领域,它主要使用归纳、综合而不是演绎。机器学习已经有了十分广泛的应用,例如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别等。
对于经济、金融、管理等人文社会科学领域而言,就目前而言,机器学习至少在如下几个方面具有重要作用:
-
解决可信度和数据异常值的问题:传统统计模型通常需要假设数据是如何创建的,数据的背后的过程以及数据的可信度。然而,机器学习通过使用高度灵活的算法来消除这些限制性的假设,这些算法不会给予比它应得的更多的可信度。
-
支持现代计算机和海量数据集:与手工流程不同,机器学习不假设世界充满了直线。相反,它会自动调整方程式以查明最佳模式,并测试哪些算法和模式最适合独立验证数据(而不是仅测试所训练的数据)。
-
利用缺少的值预测未来:高级机器学习不是要求数小时的数据清理,而是可以构建一个蓝图,优化特定算法的数据,自动检测缺失值,确定哪些算法不适用缺失值,寻找取代缺失值的最佳值,并使用缺失值的存在来预测不同的结果。
相信有不少老师和同学一直在使用 Stata, Eviews 和 R 等软件,而且只使用其中的一种,因为这已经能够应对多数实证分析工作的要求了。
然而,当某一天你看到「爬虫」、「文本分析」、「机器学习」、「数据挖掘」等名词出现在自己所在领域的 Top 期刊上,而自己却心生畏怯时,就会冒出一个自我质疑来:
我要不要再多学一个编程语言或软件?
这不禁让人想起
“狐狸与刺猬”
的故事。二者的区别,据说最早是公元前七世纪的古希腊诗人阿尔奇洛克斯提出来的,他说:“狐狸知道很多事,刺猬则只知道一桩大事。”当受到威胁时,狐狸会随机应变,想出很多好点子;而刺猬则总是用同一种方法来应对:把自己卷成一个球。这两种动物,一个聪明狡猾,灵活善变;另一个恪守成式,以不变应万变。
正如哲学家柏林所说,两者的本质差异在于:刺猬坚持一种普遍原则,万事万物都用一种理念来解释;而狐狸则从多个维度出发,抓住那些常常看似不相干甚至矛盾的线索,发现实际是有关联的。
我们身边有很多 “伟大的刺猬”,也有很多 “伟大的狐狸”。
在尚未修炼到能参透
“一桩大事”
之前,不妨多效仿狐狸,多学习不同的思想、不同的方法,尽量都去尝试一下,最后再决定什么是最适合自己的。
「Python 是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,已经成为继 JAVA,C++ 之后的第三大语言,它代码简洁,功能强大,非常适合爬虫,可以帮助我们有效地获取、统计和分析网络文本数据。」
课程关注的重点在于 Python 的实际运用,我们将利用经典文献与案例进行演示,并讲解常见的、基本的语句结构,以便学员能够自行编写出所需的程序。在三天的课程中,你将学到:
-
Python:
了解 Python 的基础知识、使用 Python 库进行数据分析、静态网页与动态网页的数据抓取
-
机器学习:
掌握机器学习的基本概念,以及一些经典的机器学习算法及其实现,包括:决策树、多变量线性回归分析、Logistic 回归、Softmax 回归、正则化、神经网络等内容
-
实操:
通过讲解经典论文与经典案例来向大家展示 Python 的实际操作和实现过程。
各个专题的具体介绍如下:
第一讲:
介绍 Python 语言的基础的入门知识与操作。其中,基本语法的讲授内容包括 Python 的处理数据类型、基本语法、函数功能等。
第二讲:
介绍在 Python 中使用特定类库对数据进行科学计算分析(Numpy+Scipy)、数据管理(Pandas)、作图(Matplotlib)、参数估计和假设检验等常用功能的操作。涉及的 Python 科学计算包: Numpy、Pandas、Matplotlib 等。
第三讲:
介绍使用 Python 语言抓取网页中目标数据的基本操作,本讲的内容包括静态网页数据的抓取与动态网页数据抓取两部分。首先概括性介绍基础的 Http 协议、HTML 语言、JavaScript 语言等,在此基础之上介绍使用 Python 爬取静态网页(beautifulsoup)、动态网页(selenium+phantomjs)的所需数据,并使用数据库对其进行存储。
第四讲:
介绍使用 Python 进行机器学习的基础知识。主要讲解机器学习的基本知识,以及机器学习的数学基础;并讲解决策树算法、单变量线性回归算法及基于梯度下降的求解方法,并介绍如何使用 Python 来实现决策树与单变量线性回归算法。
第五讲:
介绍使用多种机器学习算法的原理与实现,主要包括多变量线性回归、Logistic 回归、Softmax 回归等;以及介绍解决过拟合的正则化等方法,并且应用具体的例子利用 Python 来实现各类机器学习算法。
第六讲:
分两部分介绍如何使用 Python 实现神经网络机器。第一部分介绍神经网络基础知识,包括神经网络基础知识、神经网络的架构等;第二部分是讲授如何编写基于反向传播算法的神经网络,并用其演示手写数字的识别。