1

假設我們有人員列表,並希望找到像人X這樣的人。部分未知矢量的最近鄰居

特徵向量有3個項目[weight, height, age],我們列表中有3個人。請注意,我們不知道人的身高C

A: [70kg, 170cm, 60y] 
B: [60kg, 169cm, 50y] 
C: [60kg, ?,  50y] 

什麼是最好的方式找人最接近某甲

我的猜測

計算一下平均高度值,並用它來代替未知值。

因此,假設我們計算出170cm是身高的平均值,並且將人C重新定義爲[60kg, ~170cm, 50y]

現在我們可以找到最接近A的人,它會是A, C, B

問題

現在的問題是,我們把C與猜測~170cm比前B已知169cm

它有點感覺不對。我們人類比機器更聰明,並且知道C幾乎不可能是170cm。所以,最好把169cm的B放在C之前。

但是我們該如何計算懲罰?(最好在簡單的經驗算法)我們應該以某種方式懲罰具有未知值的向量?並通過多少(也許計算每兩個人的高度之間的平均差異)?

怎麼會是penalisation看起來像在一般情況下,當特徵向量的尺寸爲N,它有K知名項目和U未知(K + U = N)?

回答

1

在這個特殊的例子中,使用線性迴歸填補缺失值而不是平均值會更好嗎?這樣你可能對猜測值更有信心,可能不需要懲罰。

但是,如果你想罰款,我有一個想法,採取非缺失功能的比例。在這個例子中,總共有3個特徵。 C具有2個特徵中的值。所以C的非缺失特徵的比例是2/3。通過將相似度分數乘以非缺失特徵的比例來調整相似性分數。例如,如果A和C之間的相似度爲0.9,則調整後的相似度爲0.9 * 2/3 = 0.6。而A和B之間的相似性不會受到影響,因爲B具有所有特徵的值,並且比率將爲1.

您還可以在計算比率時對特徵加權。例如,(體重,身高,年齡)分別獲得權重(0.3,0.4,0.3)。那麼遺漏高度特徵將具有(0.3 + 0.3)= 0.6的加權比率。由於我們認爲身高比體重和年齡更重要,你可以看到C更受到懲罰。

+0

好主意與比例!謝謝! –

1

我會建議,用數據點來表示我們已知的屬性,使用學習模型,線性迴歸或多層感知器來學習未知屬性,然後使用這個模型填充未知屬性。平均情況是線性模型的特例

1

您對數據問題感興趣Imputation

有幾種方法來解決這個問題,我只是要列出一些:

  • 平均值/模式/平均歸責:歸責是填補與估計的缺失值的方法那些。目標是採用可在數據集的有效值中識別的已知關係來幫助估計缺失值。平均值/模式/中值歸算是最常用的方法之一。它由用給定屬性的所有已知值的均值或中值(定量屬性)或模式(定性屬性)替換給定屬性的缺失數據組成。這可以進一步分類爲廣義和相似的案例歸責。

  • 預測模型:預測模型是處理缺失數據的複雜方法之一。在這裏,我們創建一個預測模型來估計將替代缺失數據的值。在這種情況下,我們將數據集分成兩組:一組沒有缺失值的變量,另一組缺失值。第一個數據集成爲模型的訓練數據集,而第二個缺失值數據集是測試數據集,而具有缺失值的變量被視爲目標變量。接下來,我們創建一個模型來根據訓練數據集的其他屬性預測目標變量,並填充測試數據集的缺失值。

  • KNN(k-最近鄰)插補:在估算的該方法中,屬性的缺失值使用最相似的,它們的值是缺少屬性屬性的給定數量的估算。兩個屬性的相似性是使用距離函數確定的。

  • 線性迴歸:用於建模標量因變量y和一種或多種解釋性變量(或自變量)之間的關係的線性方法表示X.在預測,線性迴歸可以用於擬合預測模型到觀察到的y和X值的數據集。在開發這樣一個模型之後,如果給出一個附加的X值而沒有附帶的y值,那麼可以使用擬合的模型來預測y的值。如果需要,請檢查此example