一、第1关引言-根深之树不怯风折,泉深之水不会涸竭
- 背景:
现实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行数据挖掘,或挖掘结果差强人意。为了提高数据挖掘的质量产生了数据预处理技术; - 概念:
数据的预处理是指对所收集数据进行分类或分组前所做的审核、筛选、排序等必要的处理; - 目的:
通过数据预处理,大大提高了数据挖掘模式的质量,降低实际挖掘所需要的时间! - 数据预处理方法
- 数据清理:填写空缺的值,平滑噪声数据,识别、删除孤立点,解决不一致性;
- 数据集成:集成多个数据库、数据立方体或文件;
- 数据变换:规范化和聚集;
- 数据归约:得到数据集的压缩表示,它小得多,但可以得到相同或相近的结果;
- 数据离散化:数据归约的一部分,通过概念分层和数据的离散化来规约数据,对数字型数据特别重要。
1、数据质量的多维度量不包含以下那个选项?
- A、精确度
- B、完整度
- C、不一致性
- D、可信度
2、数据预处理的方法不包含以下那个选项?
- A、数据清理
- B、数据集成
- C、数据变换
- D、数据保留
二、第2关:数据清理-查漏补缺
空缺值处理
- 忽略元组:当类标号缺少时通常这么做(假定挖掘任务设计分类或描述),当每个属性缺少值的百分比变化很大时,它的效果非常差;
- 人工填写空缺值:工作量大,可行性低;
- 使用一个全局变量填充空缺值:比如使用 unknown 或 -∞;
- 使用属性的平均值填充空缺值;
- 使用与给定元组属同一类的所有样本的平均值;
- 使用最可能的值填充空缺值:使用像 Bayesian 公式或判定树这样的基于推断的方法。
查看缺失值:
import numpy as np
import pandas as pd
# 打开文件
train = pd.read_csv('diabetes_null.csv', na_values=['#NAME?'])
total = train.isnull().sum().sort_values(ascending=False)
print(total)#输出缺失值在每列中的个数
percent =(train.isnull(