算法
文章平均质量分 79
xsqlx
大数据研究,数据挖掘,个性化推荐
展开
-
推荐算法之协同过滤实战
协同过滤(Collective Filtering)可以说是推荐系统的标配算法。在谈推荐必谈协同的今天,我们也来谈一谈基于KNN的协同过滤在实际的推荐应用中的一些心得体会。 我们首先从协同过滤的两个假设聊起。 两个假设:用户一般会喜欢与自己喜欢物品相似的物品用户一般会喜欢与自己相似的其他用户喜欢的物品上述假设分别对应了协同过滤的两种实现方式:原创 2014-02-02 08:59:51 · 1424 阅读 · 0 评论 -
谱聚类算法原理及实现
谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法。将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的。"带权无向图"这个词太学术了,我们换一种叫法,即:相似度矩阵。假设我们有一个相似度矩阵,矩阵中存的是所有对象的两两相似度。 那么这个矩阵应该有如下性质:矩阵为N * N,N为对原创 2014-09-17 10:49:49 · 4757 阅读 · 0 评论 -
DTW算法时序应用与实现
关于dtw算法:dtw算法最初应用于语音识别中的孤音识别。即已知某个词的音频模板,给定一个新的音频序列之后,通过检测该词的音频模板与新音频序列之间的相似度,来判断该音频是否是该词。 问题在于,即使是同一个词,由于人的发音有语速、节奏、习惯的不同,其音频也不可能完全一致。 这种不一致,体现在序列长度、某个音节的音长等方面。 DT原创 2014-11-04 13:33:54 · 3614 阅读 · 1 评论 -
Viterbi 算法应用实现
算法简介:Viterbi算法又叫维特比算法,其是HMM模型中在给出观测序列O,以及状态转移举证M 和 状态-观测矩阵Q之后,求解能够最佳解释序列O的状态序列S的一种动态规划算法。如果你觉得句子太长,或太拗口,直接看下图:直观明了: 标记为O的 [0|1] 序列是观测序列, 标记为S的序列中横向的箭头即状态在根据转移矩阵M进行转移, 其中S序列与O序列之间向下的箭原创 2014-12-19 20:36:04 · 1698 阅读 · 0 评论 -
会计记账
闲来无聊,写一个将任意大的数字转化成大写汉子的程序。没错,就是会计账本,支票单上的那种大写的金额。例如: 数字:193817071803800182801088108 大写:壹佰玖拾叁亿捌仟壹佰柒拾万柒仟壹佰捌拾亿叁仟捌佰万壹仟捌佰贰拾捌亿零壹佰零捌万捌仟壹佰零捌代码完整代码如下:#include #include static const c原创 2015-12-10 10:21:55 · 1083 阅读 · 0 评论 -
决策树的数学原理
说到决策树,大家肯定不陌生,由于其结构简单,学习成本低,且可解释性强,有着广泛的应用。因此各类书籍、技术博客都有介绍,且深入浅出、图文并茂、生动形象。 鉴于已经有很多带图的博客介绍决策树,这里就不上图了,主要以公式推导为主。 本文主要分三块内容来介绍决策树:首先会简单回顾下决策树的内容,由于这部分相对简单,大家了解的也多,因此会快速过一遍。随后本文会对决策树的数学原理原创 2016-04-11 11:55:44 · 12593 阅读 · 6 评论 -
深入理解GBDT
GBDT 全称为 Gradient Boosting Decision Tree。顾名思义,它是一种基于决策树(decision tree)实现的分类回归算法。不难发现,GBDT 有两部分组成: gradient boosting, decision tree。Boosting 作为一种模型组合方式,与gradient descent 有很深的渊源,它们之间究竟有什么关系?原创 2016-05-06 12:59:23 · 10156 阅读 · 0 评论 -
基于贝叶斯后验优化的连续值离散化
将连续值离散化的问题,在数据挖掘和机器学习的任务中并不鲜见,当然离散化的方法也有很多。本文将要介绍的是一种基于数据标签(label)来对连续数据值做离散化分割的监督学习方法。 问题:考虑有如下数据: 1,0 2,0 3,0 4,0 5,0 6,1 7,1 8,1原创 2014-10-19 09:08:50 · 2251 阅读 · 1 评论