数据挖掘中如何对标称数据属性进行预处理?
How to pre processed the nominal data attributes in data mining?
Dataset image我已经对标称数据属性进行了一次热编码,但后来我想对数据进行聚类,所以请提出可行的解决方案。我是数据挖掘新手
考虑到您没有提供有关问题的正确信息,而且您似乎对这些概念不熟悉,我提供了一个关于假数据的完整解决方案。您可以从中学习并获得解决方案的要点。
我已经在 python 中实现并假设您熟悉 skit-learn :
from numpy import array
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
from sklearn import cluster
# define example
data = ['cold', 'cold', 'warm', 'cold', 'hot', 'hot', 'warm', 'cold', 'warm', 'hot']
values = array(data)
print(values)
# integer encode
label_encoder = LabelEncoder()
integer_encoded = label_encoder.fit_transform(values)
print(integer_encoded)
# binary encode
onehot_encoder = OneHotEncoder(sparse=False)
integer_encoded = integer_encoded.reshape(len(integer_encoded), 1)
onehot_encoded = onehot_encoder.fit_transform(integer_encoded)
print(onehot_encoded)
# Clustering step:
kmeans = cluster.KMeans(n_clusters=3)
kmeans.fit(onehot_encoded)
print(kmeans.labels_)
结果如下:
['cold' 'cold' 'warm' 'cold' 'hot' 'hot' 'warm' 'cold' 'warm' 'hot']
[[1. 0. 0.]
[1. 0. 0.]
[0. 0. 1.]
[1. 0. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 0. 1.]
[1. 0. 0.]
[0. 0. 1.]
[0. 1. 0.]]
上述数据的集群标签是:
[1 1 2 1 0 0 2 1 2 0]
Dataset image我已经对标称数据属性进行了一次热编码,但后来我想对数据进行聚类,所以请提出可行的解决方案。我是数据挖掘新手
考虑到您没有提供有关问题的正确信息,而且您似乎对这些概念不熟悉,我提供了一个关于假数据的完整解决方案。您可以从中学习并获得解决方案的要点。
我已经在 python 中实现并假设您熟悉 skit-learn :
from numpy import array
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
from sklearn import cluster
# define example
data = ['cold', 'cold', 'warm', 'cold', 'hot', 'hot', 'warm', 'cold', 'warm', 'hot']
values = array(data)
print(values)
# integer encode
label_encoder = LabelEncoder()
integer_encoded = label_encoder.fit_transform(values)
print(integer_encoded)
# binary encode
onehot_encoder = OneHotEncoder(sparse=False)
integer_encoded = integer_encoded.reshape(len(integer_encoded), 1)
onehot_encoded = onehot_encoder.fit_transform(integer_encoded)
print(onehot_encoded)
# Clustering step:
kmeans = cluster.KMeans(n_clusters=3)
kmeans.fit(onehot_encoded)
print(kmeans.labels_)
结果如下:
['cold' 'cold' 'warm' 'cold' 'hot' 'hot' 'warm' 'cold' 'warm' 'hot']
[[1. 0. 0.]
[1. 0. 0.]
[0. 0. 1.]
[1. 0. 0.]
[0. 1. 0.]
[0. 1. 0.]
[0. 0. 1.]
[1. 0. 0.]
[0. 0. 1.]
[0. 1. 0.]]
上述数据的集群标签是:
[1 1 2 1 0 0 2 1 2 0]