1

我想對包含子特徵的數據集進行一些特徵提取(或聚類)。例如,數據集如下所示。目標是使用數據對機器人的類型進行分類。針對多個子特徵的特徵提取

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

有沒有解決這個問題的方法?

回答

1

如果你想有一個確切的功能,每部分我看到比部分明智的執行功能,減少沒有別的辦法。但是,可能會有比簡單的PCA更好的選擇。例如,如果零件大部分是實心的,它們的重量可能與尺寸的三次方相關,所以在執行PCA之前,您可以取重量的立方根或大小的立方體。或者,您可以取兩個值的對數,這又會導致線性依賴關係。

當然,也有很多,你可以使用更花哨的變革。在統計中,Box-Cox Transformation用於實現數據的正常分佈。

你也應該考慮進行PCA,即減去平均值和每個變量的標準差除以正常化之前,轉換後的數據。它將消除測量單位的影響。即無論您是以千克,原子單位還是太陽質量來衡量體重,都無關緊要。

+0

謝謝您的建議。然而,單獨執行PCA很容易(即,PCA到Part1_size,Part1_strength,Part1_weight爲Part1提取特徵,爲Part2提取PCA到Part2_size,Part2_strength等),但似乎很難計算常見PCA每個子功能(即PCA到通用Parts_size,Parts_strength,Parts_weight用於每個部件的特徵提取)。你有什麼想法嗎? – z991

+0

我不明白問題的第二個(困難)部分。你是否想將尺寸,重量和力量結合到一個功能中?在這種情況下,由於它們是以不同的單位和不同的尺度衡量的,所以你必須對它們進行標準化。 –

+0

對不起,我有點困惑,但現在我明白了。謝謝您的回答。 – z991

1

如果零件的數量,使它們彼此不同(例如第一部分不同於第2部分,不要緊,如果它們的大小,重量,強度參數是相同的),你可以爲每個聲部做PCA一次。僅使用當前零件的尺寸,重量和強度作爲當前PCA中的參數。

另外,如果零件排列順序並不重要,你可以使用所有(尺寸,重量,強度)參數三元只做一PCA,而不是他們的零件編號不同他們。