数据到知识过程
1. 数据选择
● 选择与给定任务相关的数据
2. 数据预处理
● 处理缺失的数据
● 删除重复项
● 特征选择
● 归一化
● ...
3. 数据转换
● 将数据转换为合适的表示形式
4. 数据挖掘
● 聚类
● 分类
● 回归
● 关联
● 相关性
● ...
5.数据后续处理
● 可视化
● 解释
● 理解
● ...
什么使得模式有用或有意义?
主要目标:泛化性
■ 模式应对未见过的数据保持准确
■ 泛化性可能因为数据量小和/或数据有偏见而受到影响。
** 模式表示相关性,但相关性并不意味着因果关系。
寻找"可疑"的模式 - 现实检查
高冰淇淋销售额,鲨鱼攻击次数越多。 但这并不意味着两者之间有直接关系。
更可能的解释是存在一个混淆变量:天气,特别是温度。
常见的数据挖掘任务方法
1. 关联规则
● 输入:事务数据
■ 事务:带有一组项目的数据记录
■ 项目集合来自固定的集合
● 模式:关联规则
■ 基于其他项目的出现预测项目的出现
2. 聚类
● 输入:数据和数据点之间的明确定义的相似性
● 模式:簇
■ 相似的数据点的组(与其他数据点比较)
■ 最大化簇内 (intra-cluster) 相似性
■ 最小化簇间 (inter-cluster) 相似性
3. 分类
● 输入:带有多个属性的数据集
● 模式:作为其他属性值的函数的属性的分类值
■ K最近邻、决策树、线性分类等
4. 回归
● 输入:带有多个属性的数据集
● 模式:作为其他属性值的函数的属性的数值
5. 图挖掘
● 输入:G = (V, E)
■ 顶点(或节点)V的集合(数据点)
■ 边E的集合(数据点之间的关系)
● 模式:基于图结构的模式
5. 推荐系统
● 输入:用户评价的项目(例如,观众评价的电影)
■ Alice如何评价餐厅"KFC"?
■ "KFC"应该推荐给Alice吗?
● 基于相似性预测缺失值的模式
■ 利用项目的特性
■ 利用用户或项目之间的相似性
数据属性类型
1. 类别:
● 标称 (Nominal) : 标签
■ 运算: =, ≠
■ 例如:车辆类型(轿车/卡车),发型,国籍
● 序数 (Ordinal) : 有意义的顺序标签
■ 运算:=, ≠, <, >
■ 例如:等级(低/中/高),顾客满意度(不满意/中等/非常满意)
2. 数字:
● 区间 (Interval) : 有意义的距离测量
■ 运算: =, ≠, <, >, +, -
■ 例如:以摄氏度为单位的外部温度,电影发布日期
● 比率 (Ratio) : 有意义的比率测量
■ 运算:=, ≠, <, >, +, -, *, /
■ 例如:距离,产品价格,水的体积,存款金额
数据类型
1. 结构化数据
● 高度组织:遵循预定义的数据模型
● 每个对象都有相同的固定属性集
● 容易搜索、汇总、操作、分析数据
● 例如:财务系统、在线订单系统
2. 半结构化数据
● 没有严格的数据模型:结构化和非结构化数据的混合
● 数据交换格式:XML,JSON,CSV
● 带标签的非结构化数据(例如,音乐文件 + 艺术家,歌曲标题,发行日期,流派等)
3. 非结构化数据
● 没有固定的数据模型
● 需要更高级的数据分析技术
● 例如:电子书,卫星图像,播客,微博内容
数据表示类型
1. 记录数据
这种数据类型主要是由数据记录组成,如表格或数据库中的行。它是最常见的数据表示形式,每个记录都有固定的属性或字段。例如,一个学生的记录可能包括其姓名、学号、年级和专业。
2. 图数据
图数据是由顶点和边组成的结构数据。在这种表示中,顶点可以代表实体,边则表示实体之间的关系。社交网络是图数据的一个常见例子,其中个人是顶点,他们之间的友谊关系则是边。
3. 有序数据
有序数据考虑到数据之间的顺序或时间关系。例如,时间序列数据、视频和音频流就是这种类型的数据。这种数据类型特别关心元素之间的时间间隔或序列。
数据质量
1. 噪声 (Noise)
● 数据 = 真实信号 + 噪声
■ 由过期软件导致的计算错误(也可能是固有噪声或外部影响)
■ 在电子表格中手动输入数据时的键入错误(由人或机器造成)
■ 数据下载过程中的丢包
■ 数据格式中的不一致性(例如,24小时制与12小时制,DD/MM/YY与YYYY/MM/DD)
■ 数据单位中的不一致性(例如,公斤与磅)
2. 异常值 (Outliers)
● 异常值:属性值与其他点明显不同的数据点
● 情况1: 异常值为噪声
■ 例如,在股票市场数据中由于数据输入错误而突然出现的巨大跳跃。
■ 尝试去除异常值和/或使用不易受异常值影响的方法。
● 情况2: 异常值为目标值 (目的是找到稀有/奇异/异常的数据点)
■ 例如,医学研究中寻找罕见疾病的病例。
■ 例如,网络流量分析中寻找罕见的大流量事件。
3. 缺失值 (Missing Values)
● 常见原因:
■ 在线调查中的可选问题被忽略。
■ 设备断电或断网,导致数据未能记录。
■ 在适用于成年人的调查中,未有关于学校的问题(因为它不适用)。
● 处理缺失值:
■ 删除有缺失值的数据点。
■ 删除有缺失值的属性(并不是所有的属性都同样重要)。
■ 尝试填充缺失值(例如,使用附近城市的平均降雨量)。
4. 重复值 (Dupliactes)
● 重复值:指代同一对象/实体的数据点(例如,两个联系人记录指代同一个人)。
■ 完全重复:数据点的属性值相同。
■ 近似重复:数据点的属性值(稍微)有所不同(例如,同一个人的名字拼写略有不同,如Jon与John)。
● 任务:消除重复值。
■ 对于完全重复值相对容易。
■ 对于近似重复值可能需要使用更复杂的数据清理技术。
探索性数据分析 (EDA)
● EDA — 了解你的数据(通过基本转换和可视化)
■ 评估数据质量
■ 基本合理性检查
■ 获取数据的初步见解
■ 提出新的问题
** 没有固定流程和严格规定!
EDA — 识别噪声
● 使用直方图检查数据值的分布。
EDA — 识别噪声/异常值
● 使用箱线图检查属性值的分布
■ 明确表示异常值
注意:并不是所有的异常值都是“不好的”或被视为噪声。例如,CEO的薪水通常比普通员工的薪水高得多。是否应该移除它取决于分析的目标。
EDA — 识别噪声/异常值
● 使用散点图检查相关性
■ 在实践中并不总是可行的
■ 需要对数据有深入的了解。
EDA — 缺失值
● 例如:如果人们没有公开体重,则默认值为(0)
■ 这已经可能对简单的分析产生负面影响,例如计算均值/平均值。
EDA — 属性类型
看起来是数值型,但实际上是分类型(有序的) (1: 正常, 2: 高于正常, 3: 远高于正常)
● 通常是数据集文档的一部分
● 解释需要对数据有深入的了解 ➜ 对于自动化方法通常是不可能的。
EDA — 类标签的分布
● 分类任务通常从平衡的数据集中受益
■ 平衡 = 所有类别(几乎)均等地被表示
■ 类的分布也会影响找到的模式的评估。
EDA — 可视化高维数据
● 使用降维技术进行可视化(此处:t-SNE)
● MNIST 数据集
■ 60k手写数字 0, 1, 2, …, 9 (每个类约6k样本)
■ 28×28 像素 ➜ 784 特征 (整数灰度值 0..255)
EDA — 非结构化数据(仅为一些直觉)
● 纯文本
■ 语言,(大小的)词汇
■ 正式与非正式文本(例如,带有俚语、表情符号、表情的社交媒体内容)
● 图片/视频
■ 尺寸和分辨率
■ 色彩空间
● 音频
■ 采样率和频率范围
■ 录音类型(例如,语音与音乐)
数据预处理
● 主要目的
■提高数据质量("输入垃圾,输出垃圾!")
■为数据挖掘算法生成有效输入
■从数据中移除复杂性以简化分析
● 核心预处理任务
■数据清洗
■数据减少
■数据转换
■数据离散化
数据清洗
● 提高数据质量
■ 删除或填充缺失的值
■ 识别并移除异常值 (如果异常值不是分析的目标)
■ 识别并移除/合并重复项
■ 纠正错误和不一致性 (例如,将英寸转换为厘米)
非琐碎的任务,通常非常特定于应用。
数据减少
● 减少数据点的数量
■ 抽样 — 选择数据点的子集(通常是随机或分层抽样)
■ 通常用于初步分析或当数据大小极大时
● 减少属性的数量
■ 移除不相关的属性(例如,id或在伦理上有问题的属性,如宗教、性取向等)
■ 降维 — 将数据映射到低维空间(PCA、LDA、t-SNE等)
● 减少属性值的数量(去噪的一种形式)
■ 聚合或泛化
■ 带平滑的分箱处理。
减少属性值数量
● 聚合
■ 在数值属性的概念层次中上移 (例如,从天到年)
■ 对分类属性进行泛化
● 分箱和平滑
■ 按属性值排序(例如,高度)
■ 将数据分成等大小的箱子
■ 用箱子的平均值替换每个值 (在这个例子中,平均值也被四舍五入)
数据转换
● 一些数据减少技术也会转换数据
■ 降维、聚合/泛化、分箱等。
● 属性构造
■ 添加或替换从现有属性推断出的属性
■ 例如:重量、体积 ➜ 密度
● 标准化
■ 将属性值缩放到指定范围内的值(例如,[0,1])
■ 标准化:使用均值和标准差进行缩放。
数据离散化
● 将连续属性转换为有序属性
■ 有些算法只接受分类属性
■ 将回归任务转换为分类任务
● 示例:将体重转换为体重类别
■ 许多现有的离散化方法
■ 这里:使用3个用户定义的箱子进行离散化。
独热编码
● 将分类属性转换为数值属性
■ 将分类属性转换为一系列的二进制属性 0/1
■ 允许在分类属性上应用任何针对数值特征的方法。