数据挖掘中的数据
属性的类型
- 分类的(定性的):标称、序数
- 数值的(定量的):区间、比率
标称(=,≠
)
例如邮政编码、雇员ID、眼球颜色、性别
序数(>,<
)
例如矿石硬度、成绩、街道号码
区间(+,-
)
例如日历日期、摄氏或华氏温度
比率(×,÷
)
例如绝对温度、货币量、计数、年龄、质量、长度、电流
数据集
数据集的一般特性
- 维度:数据集中对象具有的对象数目
- 稀疏性
- 分辨率
遗漏值
出现遗漏值的原因
- 信息收集不全
- 某些属性不能用于所有对象
处理遗漏值的策略
- 删除数据对象或属性
- 估计遗漏值
- 在分析时忽略遗漏值
数据预处理
聚集
将两个或多个对象合并成单个对象
聚集是删除属性的过程,或压缩特定属性不同值个数的过程。
抽样
样本是具有代表性的
抽样方法:
- 简单随机抽样
- 无放回抽样
- 有放回抽样
- 分层抽样
维规约
- 如果维度较低,许多数据挖掘算法的效果就会更好
- 维规约可以使模型更容易理解
维灾难
随着数据维度的增加,许多数据分析变得非常困难,数据在它所占据的空间中越来越稀疏
相似度和相异性
简单属性的相似度和相异度
标称的
相异度
d={0,1,if x=yif x≠y
d
=
{
0
,
if
x
=
y
1
,
if
x
≠
y
相似度
s={0,1,if x=yif x≠y
s
=
{
0
,
if
x
=
y
1
,
if
x
≠
y
序数的
相似度
d=|x−y|(n−1)
d
=
|
x
−
y
|
(
n
−
1
)
相似度
s=1−d
s
=
1
−
d
区间或比率的
相异度
d=|x−y|
d
=
|
x
−
y
|
相似度
s=−d,s=11+d,s=e−d,s=1−d−dmindmax−dmin
s
=
−
d
,
s
=
1
1
+
d
,
s
=
e
−
d
,
s
=
1
−
d
−
d
m
i
n
d
m
a
x
−
d
m
i
n
简单匹配系数
SMC=f11+f00f01+f10+f11+f00
S
M
C
=
f
11
+
f
00
f
01
+
f
10
+
f
11
+
f
00
Jaccard系数
J=f11f01+f10+f11
J
=
f
11
f
01
+
f
10
+
f
11
import numpy as np
import scipy.spatial.distance as dist
x = np.array([0, 0, 1, 1, 1])
y = np.array([0, 1, 0, 0, 1])
matv = np.array([x, y])
# print(matv)
ds = dist.pdist(matv, 'jaccard')
print(ds)
余弦相似度
cos(x,y)=x⋅y||x||⋅||y||
c
o
s
(
x
,
y
)
=
x
⋅
y
|
|
x
|
|
⋅
|
|
y
|
|
import numpy
x=numpy.array([3,20,3.5])
y=numpy.array([-3,34,7])
dist=numpy.dot(x,y)/((numpy.linalg.norm(x))*(numpy.linalg.norm(y)))
print(dist)
欧几里得距离
d(x,y)=∑i=1n(xi−yi)2‾‾‾‾‾‾‾‾‾‾‾‾⎷
d
(
x
,
y
)
=
∑
i
=
1
n
(
x
i
−
y
i
)
2
import numpy
x=numpy.array([3,20,3.5])
y=numpy.array([-3,34,7])
dist=numpy.sqrt(numpy.sum(numpy.square(x-y)))
print(dist)