数据挖掘中如何对标称数据属性进行预处理? [关闭]

Posted

技术标签:

【中文标题】数据挖掘中如何对标称数据属性进行预处理? [关闭]【英文标题】:How to pre processed the nominal data attributes in data mining? [closed] 【发布时间】:2018-07-15 07:35:52 【问题描述】:

Dataset image我已经对标称数据属性进行了一次热编码,但后来我想对数据进行聚类,所以请提出可行的解决方案。我是数据挖掘新手

【问题讨论】:

能否请您提供更多详细信息以及一些可以解决问题的示例数据 欢迎来到 Stack Overflow。请阅读此How to create minimal, complete and verifiable example 你检查答案了吗?对您有帮助吗? 是的,我仍在研究算法部分..我认为 k-modes 算法对标称数据有好处。 是的,我也检查过,这对你来说是个好习惯,祝你好运 【参考方案1】:

考虑到您没有提供有关问题的正确信息,而且您似乎对这些概念不熟悉,因此我提供了关于虚假数据的完整解决方案。您可以从中学习并获得解决方案的要点。

我已经在 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]

【讨论】:

以上是关于数据挖掘中如何对标称数据属性进行预处理? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

机器学习类别/标称(categorical)数据处理:序号编码(Ordinal Encoding)

数据和编码

使用Categorical_endcoder包对标称变量进行个性化编码

机器学习类别/标称(categorical)数据处理:独热编码(One Hot Encoding)

数据挖掘概念与技术读书笔记认识数据

在scikit learn中,如何处理数值和标称值混合的数据?