# 第三章 数据集

在整本书中，所有的模型和技术都是应用在可在线免费获得的真实数据集上。我们将根据任务的不同而使用不同的数据集，分别是分类、回归和文本分类。

## 3.1 自行车租赁（回归）
此数据集包含了从华盛顿 [Capital-Bikeshar](https://www.capitalbikeshare.com) 公司获取的的每天的自行车租赁数，以及所处的季节和当天天气。Capital-Bikeshare 公司非常慷慨的公布了这些数据。Fanaee-T和Gama为这些数据添加了天气和季节信息。目标是预测在天气和季节已知的情况下，会有多少辆自行车会被租赁。这些数据都可以从 [UCI 机器学习数据库](http://archive.ics.uci.edu/ml/datasets/Bike+Sharing+Dataset) 里下载。

有许多新特性被添加到数据集中，但本书的例子中并没有使用到所有的特性。下面列出使用到的数据特性：

* 自行车租赁的数量，包括来自于游客用户和注册用户。这个数量也是回归任务的预测目标。

* 季节，包括春、夏、秋、冬
* 当天是否为假期
* 年份，2011 或 2012
* 自 2011 年 1 月 1 日（数据集中的第一天）起的天数。引入此特性是为了考虑随时间变化的趋势。
* 当天是否为周末
* 那天的天气情况。是下面几种情况中的一个:
    * 晴，少云，部分多云，多云
    * 舞+云，雾+碎云，雾+少云，雾
    * 小雪，小雨+雷雨+散云，小雨+散云
    * 大雨+冰雹+雷雨+薄雾，雪+薄雾
* 温度（摄氏度）。
* 相对湿度百分比（0 到 100）。
* 风速，单位：km/h。

对于本书中的例子，数据已经过了一些处理。您可以找到用R语言写的处理脚本在本书对应的 [GitHub repository](https://github.com/christophM/interpretable-ml-book/blob/master/R/get-bike-sharing-dataset.R)，以及用到的 [RData文件](https://github.com/christophM/interpretable-ml-book/blob/master/data/bike.RData)。


---
参考文献: Fanaee-T, Hadi, and Joao Gama. “Event labeling combining ensemble detectors and background knowledge.” Progress in Artificial Intelligence. Springer Berlin Heidelberg, 1–15. doi:10.1007/s13748-013-0040-3. (2013).↩

## 3.2 YouTube 垃圾邮件评论（文本分类）

作为文本分类的一个例子，我们使用了来自 5 个不同 YouTube 视频的 1956 条评论。幸运的是，一篇垃圾邮件分类的学术论文的作者免费公布了这些数据（Alberto、Lochter 和 Almeida（2015 年）。

这些评论是在 2015 年上半年通过 YouTube API 从 YouTube 上观看最多的十个视频中的五个收集的。所有 5 个都是音乐视频。其中之一是鸟叔的“江南 Style”，其他的艺术家是Kate Perry、LMFAO、Eminem 和 Shakira。

我们选一部分评论来看一下。这些评论都由人工标注，如果是垃圾评论则类别是「1」，否则类别是「0」。

评论|类别
---|---
Huh, anyway check out this you[tube] channel: kobyoshi02|1
Hey guys check out my new channel and our first vid THIS IS US THE MONKEYS!!! I’m the monkey in the white shirt,please leave a like comment and please subscribe!!!!|1
just for test I have to say murdev. com|1
me shaking my sexy ass on my channel enjoy ^ _ ^|1
watch?v=vtaRGgvGtWQ Check this out |1
Hey, check out my new website!! This site is about kids stuff. kidsmediausa . com|1
Subscribe to my channel|1
i turned it on mute as soon is i came on i just wanted to check the views…|0
You should check my channel for Funny VIDEOS!!|1
and u should.d check my channel and tell me what I should do next!|1

你也可以去 YouTube 看看评论部分。但是千万别舍本逐末，没看评论但是却开始看猴子从海滩上的游客那里偷喝鸡尾酒的视频了。自 2015 年以来，谷歌垃圾邮件探测器也可能发生了很大变化。

[点击观看鸟叔「江南Style」](https://www.youtube.com/watch?v=9bZkp7q19f0&feature=player_embedded)

同样如果你想使用这些数据，可以在本书的GitHub repository 里找到数据的 [RDdata file](https://github.com/christophM/interpretable-ml-book/blob/master/data/ycomments.RData) 和[R-script](https://github.com/christophM/interpretable-ml-book/blob/master/R/get-SpamTube-dataset.R)，里面有一些很方便的函数。


---

参考文献： Alberto, Túlio C, Johannes V Lochter, and Tiago A Almeida. “Tubespam: comment spam filtering on YouTube.” In Machine Learning and Applications (Icmla), Ieee 14th International Conference on, 138–43. IEEE. (2015).

## 3.3 宫颈癌危险因素（分类）

宫颈癌数据集包含预测女性是否会患宫颈癌的指标和危险因素。这些特征包括人口统计学数据（如年龄）、生活方式和病史。数据可从 [UCI 机器学习库](https://archive.ics.uci.edu/ml/datasets/Cervical+cancer+%28Risk+Factors%29) 下载，并由 Fernandes、Cardoso 和 Fernandes（2017）整理。

本书中使用到的数据集的部分特性如下：

* 年龄（岁）
* 性伴侣数量
* 首次性行为（岁）
* 怀孕次数
* 吸烟与否
* 烟龄（单位：年）
* 是否服用激素避孕药
* 服用激素避孕药的时间（单位：年）
* 是否有宫内节育器
* 使用宫内节育器（IUD）的年数
* 是否患有性传播疾病（STD）
* 性病诊断次数
* 第一次性病诊断后到现在的时间
* 上次性病诊断到现在的时间
* 生理学检查结果为“健康”或“癌症”。这是目标输出。

生理学检查结果作为判断是否患癌症的最终结果。对于本书中的例子，生理学结果被用作目标。

数据中每列的缺失值都是由众数（最频繁的值）来代替，这可能并非是一个好办法，因为真正的答案可能与缺失值的概率相关。同时数据可能存在偏差，因为这些问题是非常私人的，所以可能有些人并没有给出真正的答案。但这并不是一本关于缺失数据插补的书，所以我们必须认为插补的缺失数据是足以作为回归分析来使用的。

要使用此数据集复现本书的示例，请在本书的 Github Repository中找到预处理的 [R-scrip](https://github.com/christophM/interpretable-ml-book/blob/master/R/get-cervical-cancer-dataset.R)和最终的 [RData file](https://github.com/christophM/interpretable-ml-book/blob/master/data/cervical.RData)。

---

参考文献：
Fernandes, Kelwin, Jaime S Cardoso, and Jessica Fernandes. “Transfer learning with partial observability applied to cervical cancer screening.” In Iberian Conference on Pattern Recognition and Image Analysis, 243–50. Springer. (2017).↩
