我正在为一个大型数据文件上的Kmeans聚类算法编写一个mapreduce程序。每个观察值都由包含分类变量和数值变量的列组成。对于Kmeans,不宜在距离计算中包含分类变量。因此,我们需要筛选出包含分类条目的列。
我的问题是:过滤掉带有字符的条目很容易,但是如果一列只包含数字,但又被视为分类(如Zipcode、ID),该怎么办?
谢谢!
发布于 2014-04-28 22:12:09
删除所有分类变量可能不是可行的方法。您是否尝试将您的数据集转换为数字数据集?有不同的方法,但例如:
给定一个包含(比方说)3个类别(黑色、白色和蓝色)的分类变量a(比方说颜色),您可以用三个新的二进制变量(a_1、a_2、a_3)替换数据集中的a。对于给定的对象,这些新的二进制变量中只有一个应该等于1,其他所有变量都应该为零。所以,如果一个对象有a=black,那么a_1=1,a_2=0,a_3=0。
您仍然需要对这些新变量进行标准化。有不同的方法..。你可以尝试a_1=a_1-均值(A_1)(频率)。
https://stackoverflow.com/questions/23328409
复制相似问题