如何选择集群功能?

时间:2019-02-07 20:20:30

标签: machine-learning cluster-analysis k-means feature-selection dbscan

我有时间序列数据,这些数据已汇总为3周并转换为特征。

现在,我具有以下功能:A_week1,B_week1,C_week1,A_week2,B_week2,C_week2,依此类推。 有些功能不显眼,有些则是连续的。

我正在考虑应用K-Means或DBSCAN。

在这种情况下应该如何进行功能选择? 我应该规范功能吗?我是否应该引入一些新的方法,以某种方式将各个时期联系在一起?

2 个答案:

答案 0 :(得分:0)

由于K-means和DBSCAN是无监督的学习算法,因此对它们的功能选择与网格搜索有关。您可能需要测试它们,以基于内部度量(例如Davies-Bouldin索引,Silhouette系数)评估此类算法。如果您使用的是python,则可以使用详尽的网格搜索进行搜索。这是指向scikit库的链接。

答案 1 :(得分:0)

形式化您的问题,而不仅仅是破解一些代码。

K均值使平方和最小。如果特征具有不同的比例,则它们对优化的影响将不同。因此,您仔细需要选择每个变量的权重(比例因子)以按照您希望的方式平衡它们的重要性(并注意,2倍的比例因子不会 重要的一倍)。

对于DBSCAN,距离只是一个二进制决定:是否足够接近。如果使用GDBSCAN版本,则比起距离更容易理解。但是对于混合变量,我建议使用最大范数。如果两个对象的每个变量最多相差“ eps”,则它们将关闭。您可以设置eps = 1,并缩放变量,以使1的差异太大。例如,在离散变量中,您可能要容忍一两个离散步骤,但不能容忍三个。

从逻辑上讲,很容易看到最大距离阈值分解为一个单变量子句的析取物:

 maxdistance(x,y) <= eps
 <=>
 forall_i |x_i-y_i| <= eps
相关问题