假设我在熊猫中有一个电影数据框。其中一项功能是流派。
它有一个流派名称列表。例如:
Movie_ID Genre
1 [Action, Thriller, Drama]
2 [Romance, Comedy]
3 [Action, Romance]
如何将此列用于聚类问题,例如 K 均值聚类?
假设我在熊猫中有一个电影数据框。其中一项功能是流派。
它有一个流派名称列表。例如:
Movie_ID Genre
1 [Action, Thriller, Drama]
2 [Romance, Comedy]
3 [Action, Romance]
如何将此列用于聚类问题,例如 K 均值聚类?
您可以轻松地在 Pandas 中使用get_dummy 函数将它们转换为数值向量。
这个想法是分类变量没有数值直觉,例如当涉及到距离的定义时。但试想一下,您有一个具有喜剧、浪漫和犯罪3 个值的特征类型。然后,您可以通过说Comedy = (1,0,0)、Crime = (0,1,0)和Romance = (0,0,1)在 3 维空间中对它们进行建模。它将 1 个功能替换为三个,但直观上效果很好。
我只是在编辑后才理解你的问题!之前有点模糊。但是我保留了最初的答案并添加了更新。
在这种情况下,使用特征流派的值(该列中所有流派集合的唯一值)作为新特征,否则用 1 和 0 确定它们的存在。应该管用。
Movie_ID Action Thriller Drama Romance Comedy
1 1 1 1 0 0
2 0 0 0 1 1
3 1 0 0 1 0
K-means 对此类数据的效果非常糟糕,因为该方法旨在处理连续值,其中需要优化平方误差。
与其试图找到与您的“钉子”相匹配的锤子,您首先需要了解您的“钉子”,因为它可能是一个螺丝钉!那么你的目标是什么,答案结果是什么,什么时候结果好?只有这样你才能找到优化这个问题的算法。如果您只是尝试随机算法,将您的数据强制转换为不保留相关属性的不自然形式,这是浪费时间。他们实际上将解决一个不同的问题。