数据集图片我已经对名义数据属性进行了独热编码,但之后我想对数据进行聚类分析,请建议可行的解决方案。我是数据挖掘的新手
回答:
考虑到您没有提供关于您问题的适当信息,而且似乎您对这些概念还不熟悉,我提供了一个基于虚构数据的完整解决方案。您可以从中学习,并获取解决您问题的要点。
我用Python实现,并假设您熟悉skit-learn:
from numpy import arrayfrom sklearn.preprocessing import LabelEncoderfrom sklearn.preprocessing import OneHotEncoderfrom sklearn import cluster# define exampledata = ['cold', 'cold', 'warm', 'cold', 'hot', 'hot', 'warm', 'cold', 'warm', 'hot']values = array(data)print(values)# integer encodelabel_encoder = LabelEncoder()integer_encoded = label_encoder.fit_transform(values)print(integer_encoded)# binary encodeonehot_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]