2010-11-17 150 views
0

這是一個棘手的問題。這可能有一個名稱,我不知道,所以我會準確地描述問題。使用MySQL進行「聚類分析」

我有一個數據集,包括一些用戶提交的值。我需要能夠根據某種平均值或更好的值來確定「數據的接近度」,該值是正確的值。例如,如果我收到來自三個用戶的以下三個提交,4,10,3,我會知道在這種情況下3或4將是「正確的」值。如果我平均,我會得到5.6這不是預期的結果。

我正在嘗試使用MySQL和PHP來做到這一點。

TL;博士需要找到基於相對值(使用MySQL/PHP)

感謝的 「接近性」 從數據集的值!

+2

我相信這種分析類型是「聚類分析」。 – 2010-11-17 16:34:34

+0

這聽起來是正確的。我剛更新了這篇文章的標題。 – 2010-11-17 16:38:36

+1

因此,您正在尋找數據集之間的**漢明距離**。以下是數學模型:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.6.7315&rep=rep1&type=pdf – stillstanding 2010-11-17 16:43:26

回答

1

我認爲這是你要找的那種東西:

SELECT id, MIN(ABS(id - (SELECT AVG(id) FROM table))) as min 
FROM table 
GROUP BY id 
ORDER BY min 
LIMIT 1; 

每例如,如果您的數據集包含以下ID:3,4,10,平均爲5.6667。 5.6667的最接近值爲4.如果數據集爲3,6,10,14,平均值爲8.25,則最接近的值爲10.

這是此查詢返回的值。希望能幫助到你。

2

使用數據庫進行集羣不會是單個查詢類型的過程。它需要迭代來有效地生成羣集。

您首先需要確定您需要多少個羣集。如果你只想要一個羣集,那麼顯然一切都會進入它。如果你想要兩個,那麼你可以編寫程序來使用某種相關性度量將節點分成兩組。

換句話說,我不認爲這是一個MySQL問題,而是一個聚類問題。