读商战数据挖掘:你需要了解的数据科学与分析思维09文本的挖掘


1. 证据和概率

1.1. 对实例的了解视作支持或反对不同目标变量值的证据

1.2. 对实例的了解则可以表示为实例的特征

1.3. 如果你知道每个特征所提供的证据的强度,那么就能应用原则性方法,从概率上合并证据,从而得到有关目标变量值的结论

1.4. 作为消费者的我们,已经对网页上貌似免费的大量信息和服务习以为常

  • 1.4.1. 所谓的“免费”往往建立在线上广告存在收益的基础上,这与广播电视的“免费”大同小异

1.5. 展示广告与搜索广告不同

  • 1.5.1. 重要区别在于:在大多数页面中,用户通常不会输入任何与他真正想找的内容有关的文字

1.6. 一个包含超过1亿个博客和500亿余篇博文的博客平台

  • 1.6.1. 每一个博客都可以视作为感兴趣的用户提供信息的“内容块”

1.7. Facebook用户留下的每一个“赞”也可以视为体现用户喜好的证据,这同样有助于精准投放广告

1.8. 人类虽然能很好地用知识和常识辨别证据支持结论还是反对结论,但是在准确估计证据强度方面奇差无比

1.9. 历史数据不仅能用于判断证据的方向(支持或反对)​,还能用于估计证据的强度

1.10. 不只适用于证据评估,也适用于结合证据以估计类成员可能性

1.11. 每个单词可能都会提供一些支持或反对分类的证据,而我们需要将这些证据结合起来

2. 根据概率合并证据

2.1. p(C|E)

  • 2.1.1. 读作“给定E后C的概率”或“在E的条件下C的概率”

  • 2.1.2. 是一种条件概率,其中“|”有时也叫作“条件条”​

  • 2.1.3. p(C|E)应随证据E的改变而改变

2.2. 联合概率与独立性

  • 2.2.1. 联合概率,记作p(AB)

  • 2.2.2. 用条件概率表示的联合概率

  • 2.2.2.1. p(AB)=p(A)·p(B|A)

  • 2.2.2.2. A和B的概率等于A的概率乘以B在A的条件下的概率

  • 2.2.2.3. 该公式是数据科学中(确切地说,是所有的科学中)最著名的公式之一的基础

2.3. 事件可以完全独立、完全不独立或介于二者之间

  • 2.3.1. 如果两事件并非完全独立,那么已知其一,另一事件的概率就会受到影响

  • 2.3.2. 但p(AB)=p(A)·p(B|A)在所有情况下都适用

2.4. 贝叶斯法则

  • 2.4.1. 以牧师Thomas Bayes的名字命名,他在18世纪推导出了该法则的一个特例

  • 2.4.2. p(AB)=p(B)·p(A|B)

  • 2.4.3. p(A)·p(B|A)=p(AB)=p(B)·p(A|B)

  • 2.4.4. p(A)·p(B|A)=p(B)·p(A|B)

2.5. 贝叶斯方法

  • 2.5.1. 贝叶斯法则与仔细思考条件独立性这一基本概念相结合,构成了大量更为高级的数据科学技术的基础

  • 2.5.2. 包括贝叶斯网络、概率主题模型、概率关系模型、隐马尔可夫模型、马尔可夫随机场等

3. 将贝叶斯法则应用到数据科学中

3.1. 数据科学有极大一部分内容基于“贝叶斯”方法,而贝叶斯方法的核心推理又基于贝叶斯法则

3.2. p(C=c)是类别的先验概率,即我们在看到证据前给类别分配的概率

  • 3.2.1. ​“主观”先验,即某个决策者基于其所有的知识、经验和观点得出的信念

  • 3.2.2. 基于先前在其他证据上应用的贝叶斯法则得出的“先验”信念

  • 3.2.3. 根据数据推断出的无条件概率

3.3. p(E|C=c)是在类C=c的条件下,证据E(被用于对实例分类的特征)的概率

3.4. p(E)是证据的概率,即特征向量E在所有实例中的普遍程度

3.5. 数据科学中的贝叶斯方法通过假设概率独立性来解决这样的问题

  • 3.5.1. 解决这种复杂问题的最常用方法是对独立性做非常强的假设

3.6. 条件独立和朴素贝叶斯

  • 3.6.1. 两事件相互独立,意味着已知其中之一,不会得知另一事件的概率信息

  • 3.6.2. 变量互相条件独立,也就是说,在特征向量p(e1∧e2∧…∧ek|c)中,给定类c,每个ei都与其他ej相互独立

  • 3.6.3. 朴素贝叶斯方程

3.7. 朴素贝叶斯的优劣势

  • 3.7.1. 虽然朴素贝叶斯是个非常简单的分类器,但是它仍将所有特征证据都考虑在内,因而在存储空间和计算时间方面具有优势

  • 3.7.2. 虽然朴素贝叶斯非常“朴素”​,且其独立性假设非常严格,但在许多现实分类问题上的表现却惊人地好

  • 3.7.2.1. 因为即使独立性假设被违反,分类器的性能也一般不会降低

  • 3.7.3. 业界人士的确会用朴素贝叶斯来排序,其各不同类别中仅包含实例的相对值

  • 3.7.4. 朴素贝叶斯的另一个优势是,它是一种天然的“增量学习器”

  • 3.7.4.1. 增量学习器是一种能随训练更新模型的归纳技术

  • 3.7.4.2. 每出现一个新的训练实例它都会进行一次更新,且在出现新的训练数据时,它不需重新处理所有训练过的实例

  • 3.7.4.3. 增量学习在应用过程中训练标签不断显露出来的情况下,尤其有优势

  • 3.7.5. 朴素贝叶斯正是许多个性化的垃圾邮件监测系统的基础

  • 3.7.6. 朴素贝叶斯几乎包含在所有数据挖掘工具包中,作为常见的基线分类器,它常常用于与更复杂的方法作比较

3.8. 生成方法

  • 3.8.1. 这其中一大类常用方法被称为贝叶斯方法

  • 3.8.2. 严格依赖于贝叶斯法则

3.9. 贝叶斯方法的相关文献博大精深,你在数据科学领域也会发现它们非常常见

4. 证据“提升度”的模型

4.1. 提升度是正向类在选定的子总体中的比例与在整个总体中的比例之比

4.2. 证据提升度及其组合形式非常有助于理解数据和比较实例的分数,但概率的实际终值必须审慎考虑

5. 文本的表示和挖掘

5.1. 大部分数据挖掘方法是以特征向量为输入的,然而在现实中,我们获得的数据并非都是以特征向量形式表示的

5.2. 文本数据

  • 5.2.1. 如今,由于互联网已成为无处不在的沟通渠道,文本数据变得极为常见

  • 5.2.2. 文本不过是数据的另一种形式,文本处理也只是表示工程的特殊情形

  • 5.2.3. 实际上,处理文本不仅需要专用的预处理步骤,有时还需要数据科学团队具有特定的专业知识

5.3. 文本无处不在

  • 5.3.1. 许多传统应用程序仍会产生或记录文本

  • 5.3.1.1. 病历、用户投诉记录、产品查询记录和维修记录仍是人与人(而非计算机)之间的主要交流方式,因此仍需将其“编码”为文本

  • 5.3.1.2. 要想对这类庞大的数据进行开发利用,必须将其转换成有意义的形式

  • 5.3.2. 包含大量个人网页、Twitter简讯、电子邮件、Facebook状态更新、产品介绍、Reddit评论和博文等形式的文本

  • 5.3.3. 由大量面向文本的数据科学支撑的

  • 5.3.4. 在各个行业中,理解用户的反馈通常需要理解文本

  • 5.3.5. 如果想“聆听用户的意见”​,那么就得亲自去读此人所写的内容,如产品评论、客户反馈表格、意见书、电子邮件等

5.4. 比较简单的方法是把数据转化成符合现有工具要求的形式

  • 5.4.1. 文本、图像、音频、视频和空间信息形式的数据通常需要特别处理,有时甚至需要数据科学团队具有一定的专业知识

6. 文本很难处理

6.1. 文本往往被称作“非结构化”数据

  • 6.1.1. 指的是文本中不含一般数据所具备的结构:由有固定意义的域构成的记录表格(也就是特征向量的集合)​,以及表格之间的关联关系

  • 6.1.2. 虽然文本中的确存在大量结构,但是这些结构是语言学结构,它们可供人类理解,但计算机无法理解

6.2. 从数据角度看,文本相对较脏,因为人们写东西常常不合文法,总是犯拼写错误、把词连在一起、胡乱缩写和乱加标点

6.3. 也可能存在同义词(多词同义)和同形异义词(一词多义)

6.4. 文本在输入数据挖掘算法前,必须经过大量的预处理

6.5. 通常,文本的特性越复杂,文本问题所包含的方面就越多

7. 表示法

7.1. 将文本的正文转化成能直接输入数据挖掘算法的数据集的基本步骤

7.2. 文本挖掘的一般策略是,在所有可用的技术里选择最简单的(也就是最便宜的)

7.3. 文档指一段文本,无所谓长短。它既可以是一个句子,也可以是100页的报告,还可以介于两者之间

7.4. 一篇文档中的所有文本会被放在一起加以考虑,并在匹配或分类时,将所有文本作为单独一项进行检索

7.5. 文档由单独的语符(token)或词语(term)构成

7.6. 文档的集合则被称为语料库(corpus)

7.7. 词袋模型

  • 7.7.1. 把一组文档(每一篇都是形式自由的单词序列)转化为熟悉的特征向量形式

  • 7.7.2. 每篇文档都是一个数据项,而我们事先不知道它们的特征是什么

  • 7.7.3. 把每篇文档作为单词的集合,忽略语法、词序、句型结构和标点

  • 7.7.4. 把文档中的每个单词都作为可能的重要关键词

  • 7.7.5. 该表示法非常简单,生成成本不高,且适用于许多任务

  • 7.7.6. 包在数学中指的是多重集,即其中的成员可以出现不止一次

  • 7.7.7. 词袋表示法首先把文档当作单词的包(即多重集)​,而忽略词序及其他语言结构

  • 7.7.8. 用于文本挖掘的表示法通常比单纯计算词频更加复杂

  • 7.7.9. 最基本的方法将每个单词视作一个语符,并把每篇文档用1(文档中存在该语符)或0(文档中不存在该语符)表示

  • 7.7.9.1. 该方法将文档简化为其中所包含的一组单词

  • 7.7.10. 基本的词袋模型方法相对简单

  • 7.7.10.1. 不需要复杂的解析能力和其他语言学分析,却在许多工作中表现惊艳,因而往往是数据科学家解决新文本挖掘问题时的首选

  • 7.7.11. 词袋表示法将每个单词作为一个词语,完全忽略词序

7.8. 词频

  • 7.8.1. 用文档中的字数(词频)代替0或1,这能区分单词使用的次数

  • 7.8.2. 词频表示法

  • 7.8.2.1. 统一字母的大小写,将每个单词都变为小写,从而使Skype和SKYPE相同

>  7.8.2.1.1. 由大小写不同而产生的单词变体非常常见(比如iPhone、iphone和IPHONE)​,所以统一大小写一般非常必要
  • 7.8.2.2. 对一些单词进行词干提取,去除它们的后缀,使类似于announces、announced和announcing的这样动词全都转化为announc

  • 7.8.2.3. 删除停用词

>  7.8.2.3.1. 停用词是在英语(或任何一种需要解析的语言)中极其常见的词,比如the、and、of和on,一般需要删除

>  7.8.2.3.2. 停用词并不总是需要删除
  • 7.8.2.4. 一些系统不会使用原始计数,而是会根据文档长度,对词频进行标准化

  • 7.8.2.5. 使用词频的目的是表示词语与文档的相关性

  • 7.8.2.6. 长文档的单词往往比短文档多,所以单词的出现次数也更多

>  7.8.2.6.1. 并不意味着长文档比短文档更重要,或相关性更强

>  7.8.2.6.2. 为了根据文档长度进行校正,需要用一些方法对原始词频进行标准化

7.9. 度量稀疏度

  • 7.9.1. 逆文档频率

  • 7.9.2. 词频度量的是一个词语在一篇文档中的普遍程度,那么在决定词语的权重时,我们可能还想知道该词在整个语料库中的普遍程度

  • 7.9.3. 一个词语不能太罕见

  • 7.9.4. 一个词语也不能太常见

  • 7.9.4.1. 过于常用的词语通常会被删掉,而实现方法之一是给可出现词语的文档数(或文档所占比例)设定一个任意的上限

7.10. TFIDF

  • 7.10.1. 一种非常流行的文本表示法是词频(TF)和逆文档频率(IDF)相结合的产物,俗称TFIDF

  • 7.10.2. 给定文档d,词语t的TFIDF值的计算方法

  • 7.10.2.1. TFIDF(t, d)=TF(t, d)×IDF(t)

  • 7.10.2.2. TFIDF针对的是单篇文档(d)​,而IDF则依赖整个语料库

  • 7.10.3. 每篇文档都变成了一个特征向量,而语料库则是这些特征向量的集合,可用于数据挖掘中的分类算法、聚类算法或检索

  • 7.10.4. 文档中含有许多可能具有文本表示功能的词语,所以经常要用到特征选择

  • 7.10.5. 特征选择的方法有很多,比如给词语计数附加最小阈值或最大阈值,或按照诸如信息增益这样的指标来将词语按重要程度排序,从而剔除信息增益较低的词语

  • 7.10.6. 词袋文本表示法把文档中的每个词作为独立的潜在关键词(特征)​,然后基于词频和罕见程度给每篇文档赋值

  • 7.10.7. TFIDF是一种常见的词语值表示法,但它未必是最优的方法

8. n-grams序列

8.1. 词序也很重要,其信息需要在表示中保留

8.2. 相邻的两个单词通常叫作2-grams

8.3. 最大为3的n-grams词袋

  • 8.3.1. 指的是把每篇文档中的单个单词、相邻两个单词和相邻三个单词组作为文档特征对文档进行表示

8.4. n-grams适用于特定词组比较重要,而组成词组的单词却意义不大的情况

8.5. n-grams的优势是容易生成,不要求使用者掌握语言学知识或复杂的解析算法

8.6. n-grams的主要劣势是其极大地扩大了特征集

  • 8.6.1. 如果要在数据挖掘中应用n-grams,就必须额外考虑处理大量特征的问题(比如特征选择)和计算存储空间的问题

9. 命名实体提取

9.1. 包含某种命名实体提取器,它们通常可以处理原始文本,并提取出被标注为人名或组织名的短语

10. 主题模型

10.1. 主题层的中心思想是,首先对语料库的主题集合分别建模

10.2. 把每篇文档视作一个单词序列,但是这次不直接把单词用于最后的分类器,而把单词映射到一或多个主题中

10.3. 最终的分类器则依据中间的主题来定义,而非单词

10.4. 优势是(比如在搜索引擎中)查询可以使用与某文档中特定单词并不完全匹配的词语

10.5. 构建主题模型的一般方法包括矩阵因子分解方法(如潜在语义索引)和概率主题模型(如隐含狄利克雷分配)​

10.6. 在主题建模中,词语与主题相关联,词语权重则通过主题建模过程学习

10.7. 与聚类相同,主题从数据的统计规律性中显现

10.8. 主题既不一定容易理解,也不一定为我们所熟知

10.9. 主题是隐含信息

  • 10.9.1. 主题模型是一种隐含信息模型

  • 10.9.2. 隐含信息可以理解为信息中一种未被观测到的中间层,处于输入层与输出层之间

  • 10.9.3. 寻找文本中的隐含主题和寻找观影者的隐含“品味”维度这两种技术在本质上是相同的

  • 10.9.4. 不仅要将单词映射到(未被观测到的)主题,还要将主题映射到文档,而这虽然使得整个模型更加复杂、学习成本更高,但也会使其性能更好

11. 通过挖掘新闻报道预测股价变动

11.1. 股票市场在每个交易日都会有所变动,企业会进行决策并宣布决策,如并购、发布新产品、收益预期等,而金融新闻行业会对此进行报道

11.2. 提前很长时间预测新闻效果是很难的

  • 11.2.1. 由于股票太多,因而新闻发布会很频繁,而市场会随之快速做出反应

11.3. 准确预测股价是很难的,因此我们只需正确预测股价变化方向:上涨、下跌或不变

11.4. 预测股价的微小变动是很难的,因此我们将只预测较大的变动

11.5. 将股价变动与特定的新闻报道关联起来是很难的,原则上,任何新闻都有可能影响股价

11.6. 新闻报道(文本文档)的时间序列和其对应的每日股价的时间序列

11.7. 金融新闻种类广泛,包括收益报告、分析师评估(​“我们要重申对苹果的‘强力买入’评级”​)​、市场评论(​“今晨的其他市场推手股票包括Lycos公司和Staples公司”​)​、证券交易委员会档案、财务资产负债表等

11.8. 新闻格式多种多样,有的新闻是列表数据,有的则是多段“今日头条新闻”的格式,不一而足

11.9. 股票标签并不完美

11.10. 交易时间之外会有许多事件发生,因而靠近开盘时间和收盘时间时股价波动很大

11.11. 新闻报道更需要谨慎对待