请提供有关以下群集问题的编码数据的建议。 我有一个包含汽车使用信息的数据集。数据集包含以下字段: 1.车型(Toyoya Celica,宝马,日产X-Trail,马自达Cosmo等) 2.建成年份 3.汽车行驶的国家 4.在大修之前开车的距离
重要提示:上述数据集稀疏。 在大多数情况下,对于给定的汽车,所有国家都不知道“距离”。
问题: 对于一辆特定的汽车预测它将在一个“距离”未知的国家的大修之前运行的“距离”。
我的方法: 我想将数据集中的每条记录表示为具有以下组件的稀疏向量: 1.二元(1/0)汽车模型组件。这些组件的数量等于数据集中所有可能模型的数量。 2.汽车运行的二进制(1/0)国家/地区。这些组件的数量等于数据集中所有可能国家/地区的数量。 3.距离。一个整数分量,等于汽车行驶的距离。
接下来,我想聚类(k-means)这些向量并分析结果组。
问题: 1)在我的向量中,我混合了不同性质的组件 - 二进制(模型,国家)和连续(距离)。如何计算向量之间的分量距离?余弦相似度? 2)使用有限值集(模型,国家)对组件进行编码以便与连续组件(如距离)配合良好的其他方法?
谢谢! 安东
答案 0 :(得分:1)
1)根据我的经验,标准只是对(整个数据集的)特征进行加权,使得它们的范围相似。我认为余弦相似性不会很好 - 考虑2辆车的距离分别为1和2公里/英里。它们的距离和它们的距离差异可以忽略不计,但对于余弦相似性(如果我理解正确的话)则很重要。
2)由于汽车只能有1个车型和1个国家(我假设),每个都可以用整数表示(0 =丰田Celica,1 =宝马,2 =日产X-Trail,3 =马自达Cosmo)等等。)。
我假设您对不同模型或国家之间的关系一无所知,因此只需将距离定义为相等(如果相等则为1,如果不相等则为0,适当加权)将是您可以做的最好的。如果一辆车可以有一个以上型号或国家,我建议使用汉明距离。
我希望您在描述您的方法时偶然跳过Year Built,这是重要的数字数据。
所有这一切,我认为除非你添加一些额外的功能(包含一些连续的(数字)数据),例如make(丰田,日产,马自达等),重量,否则群集效果不会太好。如果可能的话,国家平均温度,国家平均降雨量或降雪量,道路状况的数字表示等。据我所知,聚类对于非数字数据(例如make / model)并不能很好地工作,但是,如果加权正确(或者如果你可以定义不同品牌/模型之间的数学关系),我想它可以工作。
只是一个想法,但如何用经度和纬度来定义国家呢?然后你可以计算国家之间的距离。否则,如果可能的话,我可能会建议用国家的数字功能替换它。
附注 - 在群集中使用二进制字段的问题(对于品牌/模型的相等性)是你必须自己选择权重。这意味着你将领导聚类,这可能会弄乱它,或者充其量,使它符合你对数据的先入为主的观念。这就是数字数据更好的原因。