摘要: 先验概率(prior probability): 对一个假设(hypothesis)/事件 发生已知的概率,记为P(h)。如: 抛一枚硬币,证明朝上的先验概率是 P(h) = 0.5后验概率(posterior probability): 在特定数据/情景下,某事件发生的概率, 记为P(h|d).P(D): 某事/条件出现的概率P(D|h): 在h发生时, 某事出现的概率。贝叶斯公式: P(h|D)= ( P(D|h) * P(h) ) / P(D) 或 P(B|A) = P(AB)/P(A) , 在做分类时,由于P(D)都是一样的,所有可以不计算, P(h|D)≈ P(D|h) * P(h) 阅读全文
posted @ 2012-12-16 20:13 酱油哥 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 书接上文推荐学习笔记-协同过滤显式数据: 用户的评分,like or unlike等隐式数据: 用户点击,购买记录,在某个页面停留时间,播放次数等调整的余弦相似度:,对于用户每个评分都要减去该用户平均评分作为他的最终评分,然后计算相似度Slope One:解释是一个物品别人的评分比另一个物品高,那给你的预测也是如此。分两步:第一步,算出所有物品两两之间的偏差(deviation)。 第二步,做出预测,比如你评分A为3分,而B物品评分比A高一分,所以预测你对B物品的评分是4分。第一步计算的公式是用户对j物品的评分减去i物品的评分之和 除以对这两物品评分的用户总数。card(Sj,i(X)) 是同 阅读全文
posted @ 2012-12-07 22:13 酱油哥 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 协同过滤是推荐系统中用的比较多的算法,也是容易理解较简单的算法,而且效果也不错。协同过滤又分为:item-based collaborative filtering: 喜欢这个物品的人还喜欢什么, 代表有amazonuser-based collaborative filtering: 和我相似的人还喜欢什么, 代表有digg两种方法计算类似,先要找出相似的item或user。计算相似度(距离)的方法也不少,列举一下:(参考http://www.chinaz.com/web/2011/1008/212684.shtml)曼哈顿距离:∑|xi- yi|, 就是每个维度之差相加欧几理德距离: sq 阅读全文
posted @ 2012-12-04 23:31 酱油哥 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 正交矩阵: 它的转置矩阵就是它的逆矩阵, QTQ = QQT= I对角矩阵: 方阵M所有非主对角线元素全等于零的矩阵。 (主对角线元素: 元素两个下标相等)svd, 奇异值分解: 矩阵M = UΣVT, U和V是正交矩阵,Σ是非负对角阵,Σ对角线上的元素即为M的奇异值。M 是m*n, U是m*m,Σ是m*n, VT是n*n特征值与特征向量:Αξ =λξ,在变换的作用下,向量仅仅在尺度上变为原来的倍。称是A的一个特征向量,是对应的特征值。所有具有相同的特征值的特征向量和零向量一起,组成了一个向量空间,称为线性变换的一个特征空间。特征值分解: A是N*N方阵, 且有N个线性无关的特征向量, A = 阅读全文
posted @ 2012-12-03 00:44 酱油哥 阅读(276) 评论(0) 推荐(0) 编辑
摘要: python中with可以明显改进代码友好度,比如:with open('a.txt') as f: print f.readlines() 为了我们自己的类也可以使用with, 只要给这个类增加两个函数__enter__, __exit__即可:>>> class A: def __enter__(self): print 'in enter' def __exit__(self, e_t, e_v, t_b): print 'in exit' >>> with A() as a: print 'in 阅读全文
posted @ 2011-10-27 13:28 酱油哥 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 比如现在有html(django template)如下:<li class="jstree-closed"> <ins class="jstree-icon"> </ins> <a href="#" name="template_category_item" value="{{key}}"><ins class="jstree-icon"> </ins>{{key}}</a> <ul& 阅读全文
posted @ 2011-10-26 22:37 酱油哥 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 一直对itertools怀有敬畏之心,其实会了就还好了,that's nothing这里的迭代器最主要得特点就是lazy,和stl里面得迭代器还是不一样得,最明显得好处就是节省内存了。顾名思义,itertools得函数返回得都是迭代器,为简单起事,下面就不专门说明了count(p,q) 返回p, p+q, p+2*q, ....cycle(p) 返回 p[0], p[1],...p[last],p[0],p[1]......repeat(p, n) 返回 p...p (n times)chain(p,q..) 把几个参数连接起来compress(data, selectors) 比如c 阅读全文
posted @ 2011-10-25 22:09 酱油哥 阅读(193) 评论(0) 推荐(0) 编辑
摘要: In [6]: def return_non(): print '-----------' ...: while True: ...: print '##############' ...: x = yield ...: print x ...: print '%%%%%%%%%%%%' ...: In [8]: y = return_non() In [9]: y Out[9]: <generator object return_non at ... 阅读全文
posted @ 2011-10-21 16:15 酱油哥 阅读(156) 评论(0) 推荐(0) 编辑
摘要: echo "deb http://archive.canonical.com/ubuntu maverick partner" >> /etc/apt/sources.listapt-get updateapt-get install sun-java6-jdk sun-java6-jre an subversion设置好JAVA_HOME下载red5, 我下载了red5-1.0.0-RC1.tar.gztar xvfz red5-1.0.0-RC1.tar.gzmv red5-1.0.0 /usr/share/red5cd /usr/share/red5exp 阅读全文
posted @ 2011-10-21 15:07 酱油哥 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 看django文档看到关于models.manager时候,前面custom manager都还好懂,但这个use_for_related_fields一时没看懂,搜了下,下面这个在stackoverflow上的回答很好,记一下http://stackoverflow.com/questions/6067195/how-does-use-for-related-fields-work-in-django简单来说, use_for_related_fields作用就是当另一个model实例通过字段引用该model时,使用该model指定的manager而不是使用django.db.models. 阅读全文
posted @ 2011-10-20 14:20 酱油哥 阅读(156) 评论(0) 推荐(0) 编辑