machine-learning - 多个子特征的特征提取

标签 machine-learning pca feature-extraction feature-selection

我想对包含子特征的数据集进行一些特征提取(或聚类)。 例如,数据集如下所示。目标是使用数据对机器人类型进行分类。

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似乎不适用。

有什么办法可以解决这个问题吗?

最佳答案

如果你想每个部分只有一个特征,我认为除了逐部分执行特征缩减之外没有其他方法。然而,可能有比简单 PCA 更好的选择。例如,如果零件大部分是实心的,则它们的重量可能与尺寸的三次方相关,因此您可以在执行 PCA 之前取重量的立方根或尺寸的立方。或者,您可以取两个值的对数,这又会产生线性依赖性。

当然,您还可以使用更多奇特的转换。在统计中,Box-Cox Transformation用于实现数据的正态分布。

您还应该考虑在执行 PCA 之前对转换后的数据进行标准化,即减去平均值并除以每个变量的标准差。它将消除测量单位的影响。 IE。无论您以公斤、原子单位还是太阳质量来测量重量,都没有关系。

关于machine-learning - 多个子特征的特征提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43449690/

相关文章:

matlab - 使用 PCA 对手写数字进行分类

python - scikit-learn 多维特征

c++ - 我只想获得高质量的特征点

python - Sklearn 算法列表

machine-learning - 使用感知器进行分类

scikit-learn - 为什么当我尝试 sklearn PCA 时内核会重启?

python - 使用opencv解析点云图像

python - 有没有办法加速 tf.keras 中的嵌入层?

go - 在 golearn 中使用 .Predict() 函数时获取 <nil>

opencv - PCA如何用于SIFT或VLAD载体?