Beta

It’s a beautiful thing when free data meets free algorithm.

关联规则(association rules)是一种广泛使用的模式识别方法,比如在购物篮分析(Market basket Analysis),网络连接分析(Web link),基因分析。我们常常提到的购物篮分析,它的典型的应用场景就是要找出被一起购买的商品集合。

关联规则的可能的应用场景有:

  • 优化货架商品摆放,或优化邮寄商品目录的内容
  • 交叉销售和捆绑销售
  • 异常识别等
阅读全文 »

后面不用读了:VS code 真香!

陆陆续续尝试使用 Emacs 已经该有7、8回了,每次都受不了它繁琐的 Ctrl 和 Meta 组合键,但最近不知道哪根筋出了问题,不但编辑器迅速的切换到了Emacs,甚至操作系统也从Win 7平滑到了Ubuntu。以下记录一些关于Emacs、markdown、Ubuntu、ssh乱七八糟的东东。

开源体系下,我的软件之路差不多是下面这样的:

R->LaTeX->imagemagic->Emacs->Ubuntu->github(git,svn)->markdown->pandoc->putty

当走到 putty 这一步,基本上也能称之为半个合格的码农了,囧。

Emacs 是非常好用的文本编辑器,是著名黑客 stallman 的作品,同vi并称为 linux 体系同两大神器。用它来编辑任意文本有大量的定制扩展,试用起来非常方便,而最近老板也在推行用 markdown 来记录技术文档,并且在内网构建了基于 markdown 的 git wiki 系统。刚好自己也一直在用md,比如现在的这个搭建在 github 上的静态页面博客。

阅读全文 »

矩阵分解技术是推荐系统常用的技术之一,它的变种出现在很多算法都有涉及。这里先不做展开,对于最基本的矩阵分解技术做一些原理和代码解释。

1. 矩阵分解的数学原理

首先约定一下符号,对于用户(users)的集合 \(U\),以及商品的集合 \(D\),用 \(R\) 来表示用户商品信息的共现( \(U \times D\) )矩阵。我们现在想找出 K 个潜在的特征,即:找到两个新矩阵P( \(U \times K\) ),Q( \(D \times K\) ),使得:

\[R = P \times Q^T = \hat{R}\]

这时,P包含了所有的用户(U)的相关信息(特征),而 Q 则包含了商品的相关信息(特征)。那如何找到这两个矩阵呢?

阅读全文 »

话说 2010 年我和鸟兄去豆瓣做一个技术交流,阿稳现场展示了并行化计算的 R 环境,矩阵运算瞬间跑满了所有的 CPU,当时让我羡慕不已。多年之后在 第六届 R 语言会议 上,张先轶为大家展示了他们负责跟进研发的开源线性代数计算库 OpenBLAS,这个库建立在已经停止开发的 GotoBLAS2 上,对 Intel Sandy Bridge 有非常好的支持(性能上甚至同 MKL 不相上下)。

线性代数库是 R 底层天然的并行运算的极好支持(Revolution R 使用的 MKL 库的支持),可以有效的提高 R 的计算效率。这里要再次感谢中科院张先轶的贡献!

1. OpenBLAS 的编译

OpenBLAS 的编译还是比较方便的,如果没有特殊要求,下载直接执行快速安装即可

1
2
make
make install

即可自行依照环境安装相关组件。

阅读全文 »

推荐系统在个性化领域有着广泛的应用,从技术上讲涉及概率、抽样、最优化、机器学习、数据挖掘、搜索引擎、自然语言处理等多个领域。东西太多,我也不准备写连载,今天仅从基本算法这个很小的切入点来聊聊推荐引擎的原理。

1. 推荐系统的策略

推荐引擎(系统)从不同的角度看有不同的划分,比如:

  • 按照数据的分类:协同过滤、内容过滤、社会化过滤
  • 按照模型的分类:基于近邻的模型、矩阵分解模型、图模型
阅读全文 »
0%