2017-08-31 77 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对你的数据是否有用。 –