2017-08-31 176 views
-2

我有不同的數據類型的列(如列:產品編號,名稱,大小,顏色,等級,部門等)的表,因爲不是所有列是數字的,我怎麼能聚集同類產品一起。數據位於Netezza中,爲了快速處理,我只想在數據量巨大時(大約200萬行)在數據庫端執行此操作。k均值實現混合變量在數據庫級

我試圖在R中實現Gower的相似性,但它需要很長時間。有沒有我可以在netezza上使用的UDF?

dput(頭(PROD))

結構(列表(Product_key = C( 「136220083」, 「134520094」, 「137520230」, 「133420231」, 「137420204」, 「136520284」),SRO_score = C(2,2,2,3,3, 1),PRDF_SKU_NAME = C( 「1496533」, 「1496534」, 「1496537」, 「1496540」, 「1496541」,「1496542 「),ATTRIB_VAL1 = C(」 冠軍畫布 「 」冠軍 畫布「, 」冠軍畫布「, 」冠軍畫布「, 」冠軍畫布「, 」冠軍畫布「),ATTRIB_VAL2 = C( 」海軍畫布「,」海軍帆布「, 「紅」, 「紅」, 「紅」, 「紅」),ATTRIB_VAL3 = C( 「9.5W」, 「10W」, 「7W」, 「8.5W」, 「9W」, 「9.5W」) ,「ATTUB_VAL4 = c」(「Keds」,「Keds」,「Keds」, 「Keds」,「Keds」,「Keds」),ATTRIB_VAL5 = c(「VULCANIZED FOOTWEAR」, 「VULCANIZED FOOTWEAR」 , 「硫化鞋」, 「硫化鞋」, 「硫化鞋」),ATTRIB_VAL6 = C( 「WOMENS SPORT傳統的」, 「WOMENS SPORT傳統的」, 「WOMENS SPORT 傳統的」, 「WOMENS SPORT傳統的」,「WOMENS SPORT傳統的」, 「WOMENS SPORT傳統的」),ATTRIB_VAL7 = C( 「1.38磅」, 「1.38磅」, 「1.38磅」, 「1.38磅」, 「1.38磅」, 「1.38磅」),ATTRIB_VAL8 = c(「女鞋 女鞋運動」,「女鞋運動鞋」,「女鞋運動鞋」,「女鞋女鞋「,」女鞋運動鞋「,」女鞋運動鞋「, ATTRIB_VAL9 = c(」女鞋「,」女鞋「,」女鞋「, 」女鞋「,」女鞋「女鞋 「)),.Names = C(」 Product_key」, 「SRO_score」, 「PRDF_SKU_NAME」, 「ATTRIB_VAL1」, 「ATTRIB_VAL2」, 「ATTRIB_VAL3」, 「ATTRIB_VAL4」, 「ATTRIB_VAL5」, 「ATTRIB_VAL6」, 「ATTRIB_VAL7」, 「ATTRIB_VAL8」, 「ATTRIB_VAL9」),row.names = C(4107L,3927L,4260L,3794L,4246L,4140L)中,class = 「data.frame」)

+0

你應該分享一個數據樣本。就像'dput(head(data))'一樣。 – TUSHAr

+0

@tushaR更新 –

回答

0

你可以用」只需使用具有高爾相似性的k-means。

K-手段需要計算意味着了。

通常的選擇是PAM,但是這種可怕的規模。你不想在你的完整數據集上使用它。

而不是縮放到您的整個數據集,首先使用示例學習做什麼。羣集權是困難。您需要花90%的時間進行預處理。

首先找出什麼可行。然後縮放。而不是相反。

+0

可以請你詳細說一下PAM或指導我一些關於它的文檔?我不知道這件事。非常感謝。 –

+0

此外,PAM使用的自定義距離度量標準是歐幾里得或曼哈頓,它們都不處理混合變量。 –

+0

您可以使用PAM和Gower。儘管我懷疑Gower對你的數據是否有用。 –