Blog信息 |
|
blog名称:IDMer (数据挖掘者) 日志总数:175 评论数量:848 留言数量:119 访问次数:2500422 建立时间:2005年6月24日 |
我的相册 |
|

|
联系方式 |
 |
|
| |
公告 |
“数据挖掘者”博客已经搬家,欢迎光临新博客网址:http://idmer.blog.sohu.com 我的新浪微博:@张磊IDMer |
网络日志 |
|
关于聚类咨询一个问题 |
|
|
|
|
|
数据挖掘者 发表于 2005/7/19 13:27:06 |
|
|
|
本贴包含了我在数据仓库之路论坛上的回贴: kaoro: 关于聚类咨询一个问题。对一个公司员工对企业的满意度调查,得到的样本以5、3、1、-1这样的数据来表示,直接用这些离散数据进行标准化(是否有标准化的需要?),然后主成分分析(把38个指标表示成12个),再利用系统聚类法中的最小方差法,得到7个类比较满意。但是老师和师兄都说聚类方法只适用于连续数据,那么我是否需要把初始数据转化成连续的再作,还是说通过其他聚类方法呢?查了好久,还是没找到结果,初学者,请大家多多指教。
neptune: 试试clementine的kohonen算法,是个基于神经网络的聚类算法控件,被推荐应用于许多行业的聚类分析应用中。
civilstar: 的确,聚类分析的前提事连续变量,因此,我认为需要进行前期处理
cm0531: 同感。在进行顾客细分研究中经常假设一个价格区间和购买数量区间,最终得到的消费额也是离散的。同时收入水平等也是离散的,聚类也碰到类似如何标准化的问题。不知道楼主的这个问题解决了没有。如果有办法,敬请指教一二。
范蠡: 关注中
seabiscuit: 关注中
Sunstone: 聚类中的变量类型及标准化
首先关于变量类型的问题:kaoro给出的满意度数据应该是次序型变量,变量值之间只有次序关系,而无可以量化的指标可以衡量变量值之间的差别。就是说我们可以知道4比2代表更高的满意度,但不能说(满意度)4是(满意度)2的两倍,或者说4比2高两个满意度。而对于常见的聚类算法来说,大多是基于距离来建模的。我们通过算法把某个样本归为某个聚类,是因为该样本和这个聚类的距离更近。这样就可以发现,其实满意度的数据是不太适合作聚类的。我们一般在项目中运用聚类算法做客户分群,一般也都会使用收入、年龄、账单金额、通话时长等数值型变量。
其次关于连续型数值和离散型数值的问题:首先定义什么叫做连续数据?一般在数据库中,如果某个字段是float或者Decimal类型,可能我们就把它视为连续型数据。但这个和数学中的连续型变量是不同的,由于在数据库中对于数值字段常常有最小单位(金额最小到分或厘、时长最小到秒等),所以这些数值字段实际上还是离散的。举个简单的例子,象“年龄”这个变量,是一些离散值,但也可以用在聚类中。
最后关于是否对变量进行标准化的问题:之所以要对变量进行标准化,我觉得最大的理由是为了避免不同变量因值域不同对聚类结果造成的负面影响。比如在聚类中用到了两个变量——缴费次数和通话时长,前者的数值分布可能绝大多数在[0,10]以内,而后者的数值分布可能绝大多数在[0,300]之内,这样很可能导致最终的聚类结果能够将不同的通话时长划分出来,而对于缴费次数却不够敏感了。相同通话时长(例如200分钟)而缴费次数存在明显差异(例如一个是0次,一个是4次)的人很可能会分到同一类中。当然,一般我们做聚类时,大都会考虑首先进行标准化。但标准化的方法很多,需要仔细斟酌。
yeshanghai: 我想你的目的是在找什么样的员工(客户)会选择5/3/1/-1这样的满意度吧?假设是这样,个人认为不要把5、3、1、-1作为聚类变量,先分群,然后统计一下群的选择,这样就可以抛开离散的影响,不知我的理解是否正确。 |
|
|
|
阅读全文(4910) | 回复(4) | 编辑 | 精华 |
|
|
|
|
|
|
|
回复:关于聚类咨询一个问题 |
|
|
|
|
|
老刀(游客)发表评论于2005/10/31 18:48:19 |
|
|
|
以下引用老刀(游客)在2005-10-31 18:44:15的评论:
最早的聚类分析的确是针对连续变量提出来的,不过技术在发展,既然有非连续变量聚类的需求,当然就会有相应的算法产生
这方面的工作其实已经很多很多了另外,如果哪位对于聚类等问题真的感兴趣的话,我很有兴趣合作做些工作 我的邮件地址:yizhihuachen@yahoo.com |
|
|
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
|
|
|
|
|
|
|
回复:关于聚类咨询一个问题 |
|
|
|
|
|
老刀(游客)发表评论于2005/10/31 18:44:15 |
|
|
|
最早的聚类分析的确是针对连续变量提出来的,不过技术在发展,既然有非连续变量聚类的需求,当然就会有相应的算法产生
这方面的工作其实已经很多很多了 |
|
|
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
|
|
|
|
|
|
|
回复:关于聚类咨询一个问题 |
|
|
|
|
|
数据挖掘者发表评论于2005/8/5 14:02:37 |
|
|
|
以下引用依依(游客|218.106.100.77)在2005-8-5 11:13:11的评论:是否可以直接用传统的方法对以下数据实现聚类?如,有两个用户对几个产品进行满意度的打分,用户一为(1,2,4),用户二(11,12,14),虽然相差很大,但可以认为他们是同一类的,知识由于各自的评定标准的不一样,造成了结果的区别。
首先满意度是限定在固定范围内的,比如常见的5分制,只可能取1~5之间的自然数。所以你给出的例子基本上不可能出现。此外,由于评价人不同,有可能虽然他们给出不同的评分,却表达了相同或相近的满意度。然而对于挖掘算法来说,在这种情况下是不可能透过评分来了解到他们真正的满意度。挖掘算法能看到的只是数字而已。所以1和11之间肯定会存在较大的差别。当然你可以引入更复杂的模型,例如通过检查产品间的关联程度,来计算出更准确的满意度评分。 |
|
|
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
|
|
|
|
|
|
|
回复:关于聚类咨询一个问题 |
|
|
|
|
|
依依(游客|218.106.100.77)发表评论于2005/8/5 11:13:11 |
|
|
|
是否可以直接用传统的方法对以下数据实现聚类?如,有两个用户对几个产品进行满意度的打分,用户一为(1,2,4),用户二(11,12,14),虽然相差很大,但可以认为他们是同一类的,知识由于各自的评定标准的不一样,造成了结果的区别。 |
|
|
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
|
|
|
|
|
| » 1 »
| |