SAS中文论坛
标题:
对proc fastclus的思考
[打印本页]
作者:
shiyiming
时间:
2004-5-30 13:45
标题:
对proc fastclus的思考
两个问题
对于全部是连续型数值变量进行 proc fastclus聚类
1.通过探索性分析,发现变量的分布很偏,故通过log2数学变换降低了分布的偏度,然后再进行聚类会发现结果跟通过原始变量聚类截然不同。如何解释这个现象,同时怎么解决聚类变量分布很偏这个问题。
2.如果按照某个标准把所有的连续变量都转变成分类变量,使用proc fastclus如何进行聚类?
期待大家的讨论和解答!谢谢!
作者:
shiyiming
时间:
2004-5-30 14:12
标题:
Re: 对proc fastclus 的思考
[quote="tomwalk":46140]两个问题
对于全部是连续型数值变量进行 proc fastclus聚类
1.通过探索性分析,发现变量的分布很偏,故通过log2数学变换降低了分布的偏度,然后再进行聚类会发现结果跟通过原始变量聚类截然不同。如何解释这个现象,同时怎么解决聚类变量分布很偏这个问题。[/quote:46140]
这是当然的. fastclus用的是K-means Clustering, 你作了变换自然改变了'距离',
而这种改变对于不同观测的影响是不同的.
两个解决方法:
1, 对于outlier作capping, 比如大于1000的都cap到1000
2, 用其他算法, 比如EM. etc
[quote="tomwalk":46140]
2.如果按照某个标准把所有的连续变量都转变成分类变量,使用proc fastclus如何进行聚类?[/quote:46140]
fastclus只能对数值变量进行操作, categorical变量不能处理.
作者:
shiyiming
时间:
2004-5-30 15:46
谢谢xsolo的回复
做log变换的目的是正态化,不知道聚类对正态分布的要求如何?
另外:em算法sas不能实现阿。
很想知道sas有什么方法能对分类变量进行聚类分析(类似于ibm的demographic 算法和spss 的two-step cluster算法)。
作者:
shiyiming
时间:
2004-5-30 20:13
proc fastclus基准点是否是随机分布?然后通过计算调整这些cluster的基准点?
有没有更好的方法,直接确定较为准确地基准点以提高效率?
作者:
shiyiming
时间:
2004-5-31 11:09
proc fastclus的基准点选择有很多方法(replace=all part random),如果数据集顺序事先打乱之后,通过随机的选择基准点最后收敛的效果还是不错的。
当然,可以通过多次打乱数据集顺序来进行聚类,然后把最后得到的多个seed再进行一次聚类,把最后得到的seed作为最终的基准点。
回到分类变量聚类的问题上来,通过把分类变量转变哑变量,可以实现分类变量的量化(0/1),但是进行fastclus聚类,首先是变量个数非常多,其次是结果并不是很理想,很多组内在分类变量上的百分比差异并不大。这可能与fastclus的距离计算公式有关。
Jaccard系数是很好的度量0/1变量相似性的指标,但是fastclus没有这个距离,难道需要自己去写吗?
作者:
shiyiming
时间:
2010-10-22 20:58
标题:
Re:
to tomwalk
用PROC DISTANCE求jaccard系数
作者:
Qiong
时间:
2010-10-26 16:43
标题:
Re: 对proc fastclus的思考
不同的random seed的结果本来就可能截然不同。。。
窃以为cluster本来就不稳定,run个100次,找个显著变量顺眼的,done~~~
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2