我使用k-means方法根据能耗、面积(平方米)和所在地的气候带对一些建筑进行聚类。气候带是一个分类变量。值可以是A、B、C或D。它应该转换为数字值,因此有两个选项。首先是LabelEncoder,然后是假人。当我使用每一种方法时,结果完全不同。我想问一下,使用哪种方法更正确
我想因为“get_dummies”为每个分类变量创建了更多维度,所以应该给分类变量更多的决策权,这通常是不有利的。另一方面,使用LabelEncoder似乎也不完全正确。因为我们可以说“A=1,B=2,C=3,D=4”或“A=3,B=2,C=4,D=1”或许多其他选项。这可能会改变结果,即使结果无关紧要。所以我不确定哪一个更好用
欢迎提供任何统计或数学解释
多谢各位
**我所说的“得到傻瓜”是什么意思
由于各种原因,标准的k-means算法并不直接适用于分类数据。分类数据的样本空间是离散的,没有自然起源。在这样的空间上,欧几里德距离函数,或者说曼哈顿距离函数,并没有真正的意义。红色、黄色、橙色、蓝色和绿色之间的“距离”是多少?你可能想考虑使用一种叫做“余弦相似性”的技术。余弦相似性是一种度量标准,用于度量多个文本字符串,甚至整个文档的相似程度,而不考虑其大小。从数学上讲,它测量在多维空间中投影的两个向量之间的夹角的余弦。余弦相似性是有利的,因为即使两个相似的文档之间的距离远达欧几里德距离(由于文档的大小),它们仍然可能朝向更近的方向。角度越小,余弦相似性越高
这里有几个链接可以帮助你
https://www.machinelearningplus.com/nlp/cosine-similarity/
https://sites.temple.edu/tudsc/2017/03/30/measuring-similarity-between-texts-in-python/
我将在这里补充另一个答案。我想我的第一个答案非常正确。然而,我确实找到了一种使用K-means对文本进行聚类的方法,因此我将在这里分享,因为我正在寻找有关该技术“正确性”的反馈
结果:
如果存在类别的逻辑顺序(即颜色
Red
与类别Yellow
比与类别Green
更相似),则可以对类别应用加权值。但这是一个典型的“假”类别特征(因为它可以分解为数字特征向量,如您所示)如果问题与真实的分类特征有关,则每个类别之间的距离都相同。您可以根据该类别的逻辑重要性(权重)为任何类别特征设置固定距离以进行聚类
如果您的所有功能都是分类的或混合的,请查看k-mode or k-prototype算法
相关问题 更多 >
编程相关推荐