Dataset image我已对标称数据属性进行了一次热编码,但后来我想对数据进行聚类,因此请提出可行的解决方案。我是数据挖掘的新手
答案 0 :(得分:0)
考虑到您没有提供有关问题的正确信息,并且您似乎对这些概念不熟悉,我提供了关于虚假数据的完整解决方案。您可以从中学习并获得解决方案的分数。
我已经在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_)
以下是结果:
<'冷''冷''冷''温暖''冷''热''热''温暖''冷''温暖''热''
[[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]