数据挖掘基础

制作不易,请点赞收藏加关注哟,您的支持是我持续创作的最大动力!


前言

本文基于书籍《数据仓库与数据挖掘(Python+Hadoop+Hive)微课视频版》魏伟一 张志国 秦宏武主编 所写的数据挖掘部分(3、6、7、8、9、10、13章节)学习笔记。


第3章节 数据预处理

3.1 数据预处理的必要性

3.1.1原始数据中可能存在哪些问题?

1.数据不一致(如同意数据库中不同表的数据单位不统一)
2.噪声数据(异常数据、杂质)
3.缺失值(null nan)

3.1.2 数据质量要求

1.准确性(Correctness)
2.完整性(Completeness)
3.一致性(Consistency)
4.时效性(Timeliness)
5.可信性(Believability)
6.可解释性(Interpretability)

3.2 数据清洗

3.2.1 数据清洗方法

1.缺失值的处理
1)忽略元组(删除列)
2)人工填写缺失值
3)使用一个全局常量填充缺失值
4)使用(均值/中位数/众数等)填充缺失值
5)使用模型预测缺失值
噪声数据与离群点的区别:噪声数据是指观测数据到随机误差或方差,观测值是真实数据与噪声的混合。而离群点属于观测值,即可能由真实数据产生,也可能由噪声带来。
2.噪声数据的处理
1)分箱(并将箱中的每个值替换为箱中的均值)
2)回归
3)离群点检测(p217)

3.2.2利用Pandas进行数据清洗

1.缺失值检测与处理
例子:【缺失待补】
1)检测:isnull()、sum()、any()、info()等
2)处理:1.删除缺失值dropna()、
--------------2.填充缺失值fillna()、
--------------3.均值填充data.mean()等
2.数值替换
replace()
3.利用函数或映射进行数据转换
map()
例子:【缺失待补】
4.异常值检测与处理
1)散点图
2)箱线图
示例:

# 第一步:求四分位数中的Q1 Q3  还有求IQR
sfw = df_m.describe()
Q1=sfw.loc['25%'].values
# loc是按照索引取 取出来Q1类型为<class 'pandas.core.series.Series'>,
# 要加上.values转换为<class 'numpy.ndarray'>
Q3=sfw.loc['75%'].values
IQR = Q3-Q1
IQR

# 第二步:通过规则判断出离散值并替换掉他
for x in df_m['Age']:
    if x<Q1-1.5*IQR or x>Q3+1.5*IQR:
        df_m['Age'] = df_m['Age'].replace(x,mean)
        print(x)

# 第三步:绘图
import matplotlib.pyplot as plt
import seaborn as sn
# sn.boxplot(df_m['Age'])
plt.boxplot(df_m['Age'])

3)3σ法则
示例:

# 第一步: 求平均值和方差
mean = df_m['Age'].mean() # 求平均数
std = np.std(df_m['Age'])

# 第二步: 比较这个值和平均之差的绝对值与三倍标准差的大小 如果大于标准差则替换掉他
for x in df_m['Age']:
    if np.abs(x-mean)>3*std: # 如果这列中每个值与平均值的绝对值有没有大于三倍标准差
        df_m['Age'] = df_m['Age'].replace(x,mean) # 就用均值给它替换掉
        print(x)

# 第三步:检查
# 把均值 标准差输出一下看求的是否正确   print(x) 检查哪些值被替换

3.3 数据集成

为了解决处理数据冗余和不一致的情况

3.3.1 数据集成中的关键问题

1.实体识别
2.数据冗余和相关性分析
卡方检验的原理和python中的函数分别是什么
1)标称属性进行卡方检验
3)数值属性的协方差
例子:【缺失待补】
3.元组重复
4.数据值冲突检测与处理(如同属性数值纲量和单位不同)

3.3.2利用Pandas合并数据

1.merge()与SQL中的jion类似
2.concat()
display()是干啥的
示例:

data = pd.concat([data1,data2],axis = 0)

3.使用combine_first()函数合并数据
示例:

w1.combine_first(w2)

3.4 数据标准化

3.4.1 最小值最大值标准化(离差标准化)MinMaxScale()

3.4.2 标准差标准化StandardScale()

注意:为什么要标准化?什么时候需要标准化?什么时候不需要标准化?
1.数据标准化的目的是将数据统一到同一量纲下(获得某种无关性,如偏置无关、尺度无关、长度无关,使标准化后的数据潜在的物理意义、几何意义与当前问题的需要契合。
2.涉及距离计算以及损失函数中含有正则项的算法,如K-Means、KNN、PCA、SVM等,需要进行数据标准化。
3.使用与距离计算无关的概率模型和树模型时,如朴素贝叶斯、决策树、随机森林时不需要数据标准化。

3.5 数据归约

3.5.1常用的维归约(删除冗余数据或降维)方法

1.属性子集选择
1)逐步向前选择
2)逐步向后删除
3)逐步向前选择和逐步向后删除的结合
4)决策树归纳
2.小波变换
3.主成分分析PCA降维
1)算法原理
属性子集选择是将冗余数据剔除,小波变换、主成分分析是将原始数据变换或投影到较小的空间

3.5.2 数量规约

1.回归和对数线性模型
2.直方图
3.聚类
4.抽样
5.数据立方聚类

3.5.3 数据压缩

3.6数据变换与数据离散化

3.7 利用sklearn进行数据预处理

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

总结

本文主要总结第三章数据预处理主要内容,数据预处理主要步骤包括:数据清洗、数据集成、数据标准化(数据转换)、数据标准化、数据归约,通过数据预处理,将获取的脏数据整理转化成可以数学分析和建模的有效数据,为建立良好的模型尽力基础。(后续章节会陆续更新!需要的同学可以收藏夹关注哦,也可以加QQ:212306556一起学习交流!)

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值