- 博客(14)
- 收藏
- 关注
原创 基于fork + pipe的数据快速打横处理
这里写自定义目录标题需求新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入需求序列数据(sequencial ...
2018-12-03 23:14:07
455
原创 Louvain 算法原理 及设计实现
模块度:Louvain算法是一种基于图数据的社区发现算法。原始论文为:《Fast unfolding of communities in large networks》。算法的优化目标为最大化整个数据的模块度,模块度的计算如下:其中m为图中边的总数量,k_i表示所有指向节点i的连边权重之和,k_j同理。A_{i,j} 表示节点i,j之间的连边权重。有一点要搞清楚,模块度的概
2018-01-16 21:52:01
43757
6
原创 Multinomial 回归多分类推导
关于多分类问题,一般来讲有两种常见方法:1. one vs rest [“ovr”]; 2. Multinomial 回归。本文介绍的为第二种方式,即: 假设样本的目标变量服从Multinomial Distribution, 通过最大化目标变量的似然概率来求得模型的解。
2017-08-02 22:04:31
1595
原创 深入理解GBDT
GBDT 全称为 Gradient Boosting Decision Tree。顾名思义,它是一种基于决策树(decision tree)实现的分类回归算法。不难发现,GBDT 有两部分组成: gradient boosting, decision tree。Boosting 作为一种模型组合方式,与gradient descent 有很深的渊源,它们之间究竟有什么关系?
2016-05-06 12:59:23
10214
原创 决策树的数学原理
说到决策树,大家肯定不陌生,由于其结构简单,学习成本低,且可解释性强,有着广泛的应用。因此各类书籍、技术博客都有介绍,且深入浅出、图文并茂、生动形象。 鉴于已经有很多带图的博客介绍决策树,这里就不上图了,主要以公式推导为主。 本文主要分三块内容来介绍决策树:首先会简单回顾下决策树的内容,由于这部分相对简单,大家了解的也多,因此会快速过一遍。随后本文会对决策树的数学原理
2016-04-11 11:55:44
12645
3
原创 时间序列分段算法 [Time series Breakout Detection]
在时间序列分析中,断点检测(breakout detection)是一个很基本的问题。通过捕捉时序数据中的断点(breakout),来发现时序数据所表示的系统在过去是否发生了某种事件(event)。进而为系统诊断提供必要的数据支持。为了实现对时序断点的检测,我们首先需要对时序的整体时序做拟合。这里我们通过一条直线来拟合一段时序,如果时序的趋势发生了变化,则用多条直线来拟合整条时序数据。
2015-12-15 19:47:18
18474
8
原创 会计记账
闲来无聊,写一个将任意大的数字转化成大写汉子的程序。没错,就是会计账本,支票单上的那种大写的金额。例如: 数字:193817071803800182801088108 大写:壹佰玖拾叁亿捌仟壹佰柒拾万柒仟壹佰捌拾亿叁仟捌佰万壹仟捌佰贰拾捌亿零壹佰零捌万捌仟壹佰零捌代码完整代码如下:#include #include static const c
2015-12-10 10:21:55
1111
原创 Viterbi 算法应用实现
算法简介:Viterbi算法又叫维特比算法,其是HMM模型中在给出观测序列O,以及状态转移举证M 和 状态-观测矩阵Q之后,求解能够最佳解释序列O的状态序列S的一种动态规划算法。如果你觉得句子太长,或太拗口,直接看下图:直观明了: 标记为O的 [0|1] 序列是观测序列, 标记为S的序列中横向的箭头即状态在根据转移矩阵M进行转移, 其中S序列与O序列之间向下的箭
2014-12-19 20:36:04
1739
原创 DTW算法时序应用与实现
关于dtw算法:dtw算法最初应用于语音识别中的孤音识别。即已知某个词的音频模板,给定一个新的音频序列之后,通过检测该词的音频模板与新音频序列之间的相似度,来判断该音频是否是该词。 问题在于,即使是同一个词,由于人的发音有语速、节奏、习惯的不同,其音频也不可能完全一致。 这种不一致,体现在序列长度、某个音节的音长等方面。 DT
2014-11-04 13:33:54
3657
1
原创 基于贝叶斯后验优化的连续值离散化
将连续值离散化的问题,在数据挖掘和机器学习的任务中并不鲜见,当然离散化的方法也有很多。本文将要介绍的是一种基于数据标签(label)来对连续数据值做离散化分割的监督学习方法。 问题:考虑有如下数据: 1,0 2,0 3,0 4,0 5,0 6,1 7,1 8,1
2014-10-19 09:08:50
2285
1
原创 谱聚类算法原理及实现
谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法。将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的。"带权无向图"这个词太学术了,我们换一种叫法,即:相似度矩阵。假设我们有一个相似度矩阵,矩阵中存的是所有对象的两两相似度。 那么这个矩阵应该有如下性质:矩阵为N * N,N为对
2014-09-17 10:49:49
4798
原创 推荐算法之协同过滤实战
协同过滤(Collective Filtering)可以说是推荐系统的标配算法。在谈推荐必谈协同的今天,我们也来谈一谈基于KNN的协同过滤在实际的推荐应用中的一些心得体会。 我们首先从协同过滤的两个假设聊起。 两个假设:用户一般会喜欢与自己喜欢物品相似的物品用户一般会喜欢与自己相似的其他用户喜欢的物品上述假设分别对应了协同过滤的两种实现方式:
2014-02-02 08:59:51
1446
原创 C语言实现HashTable
最近项目中需要在C语言中使用HashTable来提高按键的查找速度,在网上找了很多现成的实现,发现写的都很随意,都有问题。很多现有的实现版本中都是使用char*作为key,void*作为值,这种做法最简单,但内存效率和计算效率都不高。这种方案面临一个问题,就是:HashTable是否要申请新的内存空间来保存key和value的值,而不是只记录指针的值。如果不保存,则指针指向
2013-11-18 23:45:27
1607
原创 基于堆结构的TopN问题实现
在实际工作中我们经常会遇到将一个list中最大[最小]的前TopK个元素输出的问题。比如说在电商领域,求上个月卖的最好的前10个商品,或者是每个品类下卖的最好的前10个商品。最常用的方式就是对列表排序,然后从前到后数K个元素。例如Python中可以这样:a = [2,1,3,4,2,4,65,7,22,3,6]a.sort()top10 = a[0:10]
2013-07-28 11:21:35
1292
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人