我想对包含子要素的数据集进行一些特征提取(或聚类)。 例如,数据集如下所示。目标是使用数据对机器人类型进行分类。
Samples : 100 robot samples [Robot 1, Robot 2, ..., Robot 100]
Classes : 2 types [Type A, Type B]
Variables : 6 parts, and 3 sub-features for each parts (total 18 variables)
[Part1_weight, Part1_size, Part1_strength, ..., Part6_size, Part6_strength, Part6_weight]
我想用[重量,大小,强度]进行特征提取,并使用提取的特征作为零件的代表值。
简而言之,我的目标是将功能减少到6 - [Part1_total,Part2_total,...,Part6_total] - 然后,使用这6个功能对机器人类型进行分类。因此,要结合“重量”,“大小”和“强度”这一组合特征是需要解决的问题。
首先我想到应用PCA(主成分分析),因为它是最流行的特征提取算法之一。但它分别考虑了所有18个特征,因此'Part1_weight'可以被认为比'Part2_weight'更重要。但我必须知道的是样品中“重量”,“尺寸”和“强度”的重要性,因此PCA似乎不适用。
有没有办法解决这个问题?
答案 0 :(得分:1)
如果Part的编号使它们彼此不同(例如,Part1与Part2不同,如果它们的大小,重量,强度参数相同则无关紧要),您可以为每个编号执行一次PCA部分。仅使用当前零件的尺寸,重量和强度作为当前PCA中的参数。
或者,如果零件阵列顺序无关紧要,则只能使用所有(尺寸,重量,强度)参数三元组进行一次PCA,而不是根据零件编号对它们进行区分。
答案 1 :(得分:1)
如果您希望每个部件只有一个特征,那么除了逐个执行特征缩减之外别无他法。但是,可能有比单纯PCA更好的选择。例如,如果零件大部分是实心的,它们的重量很可能与尺寸的三次幂相关,因此您可以在执行PCA之前获取重量的立方根或大小的立方体。或者,您可以取两个值的对数,这又会导致线性相关性。
当然,您可以使用更多花哨的转换。在统计数据中,Box-Cox Transformation用于实现数据的正常分布。
您还应该考虑在执行PCA之前对转换后的数据进行标准化,即减去平均值并除以每个变量的标准偏差。它将消除测量单位的影响。即无论你是以千克,原子单位还是太阳质量来衡量体重都无关紧要。