Chapter_01 数据挖掘基础

About This Course

了解数据挖掘和知识发现

熟悉数据挖掘中的常见算法

掌握数据挖掘算法的具体应用

掌握对于实际案例的具体操作流程

开启对于科研的兴趣

什么是数据挖掘?

什么是数据?

数据(data) 在拉丁文里是“已知”的意思

凡是用某种载体记录下来的、能反映自然界和人类社会某种信息的,就可称之为数据

古人“结绳记事”,打了结的绳子就是数据

现代社会,数据的种类和数量越来越丰富,载体也越来越多

数字是数据,文字是数据,图像、音频、视频等都是数据

信息(Information)是高于数据的,是由数据提炼出的

什么是数据

大数据时代

Big data is a field that treats ways to analyze, systematically extract information from, or otherwise deal with data sets that are too large or complex to be dealt with by traditional data-processing application software.

大数据是处理传统数据处理应用软件无法处理的过于庞大或复杂的数据集的分析、系统地提取信息的方法。

大数据时代

个人数据越来越多

企业数据越来越多

存储设备容量不断增加

数据

1、Private Data

2、Open Data

  • Technically Open: available in a machine-readable standard format, which means it can be retrieved and meaningfully processed by a computer application.

    (技术上开放:以机器可读的标准格式提供,这意味着它可以被计算机应用程序检索和有意义的处理。)

  • Legally Open: explicitly licensed in a way that permits commercial and non-commercial use without restrictions.(合法开放:明确授权,允许商业和非商业使用,没有限制。)

什么是数据挖掘?

数据挖掘(Data Mining)又称Knowledge Discovery in Database

是指从数据库的大量数据中揭示出隐含的、先前未知并有潜在价值的信息的非平凡过程。

什么是数据挖掘?精确定义

According to Han et al.

Extraction of interesting (non-trivial(非平凡的), implicit(隐含的), previously unknown(先前未知的) and potentially useful(有潜在价值的)) patterns or knowledge from huge amount of data

According to Witten et al.

The process of discovering patterns in data

Automatic(自动)/semiautomatic(半自动)

Patterns must lead to some advantage

数据挖掘和统计学的区别

Quote from Witten et al.

“What is the difference between [data mining] and statistics?

Cynics looking wryly at the explosion of commercial interest (and hype) in this area, equate data mining to statistics plus marketing.

(在这一领域的商业兴趣(和炒作)的爆炸式增长中,一些人把数据挖掘与统计和营销等同起来。)

In truth, you should not look for a dividing line between [data mining] and statistics because there is a continuum – and a multidimensional one at that – of data analysis techniques. Some derive from the skills taught in standard statistics courses, and others are more closely associated with the kind of machine learning that has arisen out of computer science.”

(事实上,你不应该在[数据挖掘]和统计之间寻找一条分界线,因为数据分析技术是连续的——而且是多维的。一些来自标准统计学课程中教授的技能,另一些则与计算机科学中产生的机器学习密切相关。)

数据挖掘和机器学习的区别

机器学习数据挖掘中的一种重要工具。

然而数据挖掘不仅仅要研究、拓展、应用一些机器学习方法,还要通过许多非机器学习技术解决数据仓储、大规模数据、数据噪声等实践问题。

机器学习的涉及面也很宽,常用在数据挖掘上的方法通常只是“从数据学习”。然而机器学习不仅仅可以用在数据挖掘上,一些机器学习的子领域甚至与数据挖掘关系不大,如增强学习自动控制等。

In general, 数据挖掘是从目的而言的,机器学习是从方法而言的,两个领域有相当大的交集,但不能等同。

Ref:

机器学习和数据挖掘的联系及区别

大数据的背景下,采用的大数据与数据挖掘有什么本质上的不同?

数据挖掘和机器学习的区别

数据挖掘和机器学习的区别

Knowledge Discovery 过程

Knowledge Discovery 过程

数据挖掘的常用工具

数据挖掘的常用工具

数据挖掘的任务

数据挖掘的任务

特征

特征

目标变量

<font size=5 color="red">目标变量</font>

任务:发现特征和目标变量之间的关系

如何选择算法

监督学习 Supervised Learning

有目标变量,即数据是有标签的

无监督学习 Unsupervised Learning

没有目标变量,即没有类别信息

半监督学习 Semi-supervised Learning

既使用有标签的数据,又使用无标签的数据来训练模型。其中,有标签的数据用来学习模型,无标签的数据用来优化模型。

半监督学习

如何选择算法

选择算法时需要考虑的问题:

1.目的是什么?需要完成什么任务?

2.需要分析或收集的数据是什么?

选择算法时需要考虑的问题

数据挖掘算法

KDnuggets 每年评选出15 大最常用算法和方法

KDnuggets 每年评选出15 大最常用算法和方法

KDnuggets 每年评选出15 大最常用算法和方法

数据挖掘的流程

数据挖掘的流程

数据

数据

划分数据

划分数据

训练数据

训练数据

交叉验证 Cross Validation

交叉验证 Cross Validation

留一法交叉验证 Cross Validation

留一法交叉验证 Cross Validation

留一法交叉验证 Cross Validation

数据挖掘的应用

1. Future Healthcare

Mining can be used to predict the volume of patients in every category. Processes are developed that make sure that the patients receive appropriate care at the right place and at the right time. Data mining can also help healthcare insurers to detect fraud and abuse.

(数据挖掘可以用来预测每一类患者的数量。制定了确保病人在正确的地点和正确的时间接受适当的治疗的程序。数据挖掘还可以帮助医疗保险公司发现欺诈和滥用行为。)

2. Market Basket Analysis

know the buyer’s needs and change the store’s layout accordingly. Using differential analysis comparison of results between different stores, between customers in different demographic groups can be done.

(了解买家的需求,并相应地改变商店的布局。利用差异分析比较不同商店之间的结果,不同人口统计群体之间的顾客可以做。)

3. Education

Educational Data Mining, concerns with developing methods that discover knowledge from data originating from educational Environments. The goals of EDM are identified as predicting students’ future learning behavior, studying the effects of educational support, and advancing scientific knowledge about learning.

(教育数据挖掘,关注开发从源自教育环境的数据中发现知识的方法。EDM的目标被确定为预测学生未来的学习行为,研究教育支持的效果,并推进关于学习的科学知识。)

4. Fraud Detection

A supervised method includes collection of sample records. These records are classified fraudulent or non-fraudulent. A model is built using this data and the algorithm is made to identify whether the record is fraudulent or not.

(监督方法包括样本记录的集合。这些记录是欺诈或非欺诈的。使用这个数据建立一个模型,并通过算法来确定记录是否欺诈。)

Scikit-learn 需知

1.Scikit-learn has built-in data sets

(Scikit-learn有内置的数据集)

2.Third-party public data sets are also easily available

(第三方公共数据集也很容易获得)

3.There are ready-made classifiers to train baseline models

(有现成的分类器来训练基线模型)

4.Scikit-learn has its own plotting API

(Scikit-learn有自己的绘图API)

5.Scikit-learn has built-in feature selection methods

(Scikit-learn有内置的特征选择方法)

6.Pipelines allow you to chain together all the steps in a machine learning workflow

(管道允许您将机器学习工作流中的所有步骤链接在一起)

7.With the ColumnTransformer you can apply different preprocessing to different features

(在ColumnTransformer中,您可以将不同的预处理应用于不同的特性)

8.You can easily output an HTML representation of your pipeline

(您可以轻松地输出管道的HTML表示)

9.There is a plotting function to visualize trees

(有一个绘图函数来可视化树)

10.There are many third-party libraries that extend the features of Scikit-learn

(有许多第三方库扩展了Scikit-learn的功能)

Chapter_02 了解数据

About This Course

  1. 数据类型

  2. 数据属性

  3. 数据统计及可视化

  4. 相似度计算

数据类型

记录数据

  • 关系型记录

  • 矩阵

  • 文档数据: 文本文件

  • 事务数据(Transaction data)

2.1 关系型记录

2.2 事物数据

图形和网络数据

  • World Wide Web

  • 社交网络

  • 分子结构

  • 道路网络( Road network )

2.3 分子结构

2.4 社交网络

有序数据

  • 视频数据

  • 时间数据: 时间序列time-series

  • 序列数据: 基因序列数据

2.5 时间序列time-series

空间, 图像和多媒体数据

  • 空间数据: 点,线,多边形

  • 图像数据

2.6 图像数据

数据对象

数据集由数据对象组成

数据对象表示一个实体,也可以被叫做“样本,实体,例子,对象,元祖

For Examples:

销售数据库: 顾客,销售商品,销量

医疗数据库: 病人,病例

学校数据库: 学生,老师,课程

数据对象属性描述.

数据库的一行 -> 一个数据对象;

数据库的一列 ->一个属性.

属性

属性 (维度,特征,变量): 一个数据段,表示数据对象的特征

  • 比如,学号,姓名,地址

2.7 属性

属性类别:

Nominal标称型:有限目标中的取值,“与名称有关”。

标称属性的值是一些符号或者是事物的名称。

Note:尽管有的标称属性有数值,但是不能把它当成数值属性。

  • 班级 = {计算机一班**, 计算机二班}

Binary二元型:标称属性的一种,只有两个类别或状态

只有两个状态(0 或 1)

性别={男,女**}

Ordinal序数型:

有排序的连续数值,但是连续值之间的大小是未知的,记录不能客观评价的排序。

衣服型号 = {小,中,大}, 年级

“优”,“良”,“差”这些值是有意义的先后次序,但是我们不能说“优”比“良”好多少,“良”比“差”好多少,它们之间的差是未知的。

Note:标称、二元、序数属性描述对象的特征,而不给出实际大小或者数量。

数值型属性:

整型或实数,从无限的数值集合中取值

  • Interval区间属性

    • 以同等大小的单位测量

    • 取值有顺序

    • E.g., temperature in C˚or F˚, calendar dates

    • 注:这里就是说20C˚不是10C˚的两倍,只能转换为开尔文才能相比

    • 没有真正的0

  • Ratio比率属性

    • 我们可以将数值描述为比测量单位大一个数量级(10k是5k的两倍)。
    • 注:这里就是说数值之间能有意义地相比

    • E.g., temperature in Kelvin, length, counts

Quick Test

以下属性属于什么类型?

  1. 邮政编码 Nominal标称型

  2. 工资收入 数值型比率Ratio

  3. 是否感染新冠 二元型

  4. 学号 Nominal标称型

  5. 街道号码 Ordinal序数型

2.8 属性类别