现在的项目是在做的超大规模的矩阵的奇异值分解,其目的是对数据进行求特征值,做为聚类算法的输入
因为很久以前就想过聚类单词,所以对聚类算法比较感兴趣。目前只听说了K-means算法,大概的思想就是,把每个数据看做向量空间中的点,然后进行聚类。问题是怎么得到这个数据的表示向量。做奇异值分解的目的就是得到一个特征向量可以表示这个数据。
下面是我对这个特征向量的一些理解:
1.将一组数据用相应的一组特征向量来表示,那么,特征向量之间的关系一定要与数据之间的关系相一致(比如距离)
2.先不考虑怎么得到特征向量,特征向量的维数 就值得考虑一下:
如果只有2个数据,那么他们之间的关系只有一组,只需要用一维的向量空间就可以表示他们之间的相对位置关系;
如:x-y=1 可以表示2个数据之间的关系,并且只要确定其中一个,另一个就确定了
如果有3个数据,那么他们之间的关系有3组,用2维的向量空间可以表示他们之间的相对关系;
如:3个数据两两之间距离相等,那么就可以用一个等边三角形来表示他们之间的位置关系,并且只要确定其中2个点,另外一个就确定了
....
依次类推,有N个数据就有N(N-1)/2 组关系,可以用N-1维的向量空间表示他们之间的相对位置关系。
实际上是不是用N-1维的空间表示N个数据之间的关系,我也不知道,以上纯属个人猜想
除了以上猜想以外,我还十分想只有,有没有不是基于特征向量的聚类算法,
比如直接基于数据之间的距离矩阵的算法~