最近在做数据挖掘应该说是入门的一个小实验,就是预测用户对电影的打分的一个推荐算法。
感觉到处理数据是一件特别麻烦的事情,特别是漫长的等待时间,已经尽可能的构造出记录最少的用户相似性矩阵或者电影的相似性矩阵(我用了特别偷懒的做法,存放在数据库里面实现),因为都用到数据库,所以免去了写一些关于数据结构的操作,自己也很疑惑,到底数据挖掘过程的这些数据,一般是存放数据库进行操作还是直接在内存上面进行一次性操作处理的?问了老师,老师也只是说根据实际情况。
的确,存放数据库免去了很大的工作量,数据库本来就是一个很完美的数据结构了,少去了查找的麻烦,少去了hash操作的麻烦,只要写sql语句就够了,但是在做好CF之后我就觉得这样做没什么技术含量,少去了运用到一些数据结构带来的技术难题(对我来说的确是难题,数据结构和算法不是很好)。
在9000测试集和40000训练集下,预测到的结果MAE0.69,我表示有点怀疑,因为我只用到了CF,测试集里面的某些用户还是训练集里面没有的,这个办法用CB可以解决,但是CB所涉及到的操作,必须是提取用户的关键字TAG做相似性比较了,这个对我来说的确很有难度。哎,虽然只是一个作业,的确想提高一下挖掘的质量,但是要付出的或许又是要几天了,最近各种考试来临了,有空还是要好好研究CB,对字符串的相似性比较。
希望自己能把我每一天的学习,积累,收获!