第八章 数据表示
聚类的第一步是将数据vector化,将对象的特征和属性转化为数据
vector就是排序好的列表,没啥特别的
vector的分类:
1:DenseVector,不管是否0都记录上,用单数组实现
2:RandomAccessSparseVector,只记录非0的值,用hashmap实现,随机访问
3:SequentialAccessSparseVector,也是只记录非0值,但线性访问,采用双数组方式实现,一个放非0值的索引,一个放值
选取那种vector和算法相关,对于k-means来说,SequentialAccessSparseVector的性能比较好
特征选取那种有范围的比较好,比如大小,颜色,尺寸等,而无限范围的不适合,比如文本,不能弄个标题来做特征,因为标题是无限的,你不知道该为哪个标题给予多少值
再次提醒,sequencefile就是个key,value,key必须是WritableComparable,而value必须是Writable的,对应到java就是Comparable和Serializable