摘要: 从2014年8月开始在博客园写博客,~~至今已经积累了82篇~~,集中在机器学习、NLP、数据结构与算法、大数据、编程语言等方面。在此做个总结,以后还会陆续更新…… 1. 机器学习 【十大经典数据挖掘算法】系列: 1. "C4.5" 2. "K Means" 3. "SVM" 4. "Apriori阅读全文
posted @ 2017-03-22 08:52 Treant 阅读(838) 评论(4) 编辑
摘要: 1. 介绍 "thulac4j" 是THULAC的Java 8工程化实现,相比于官方版THULAC Java,我做了如下工作: 1. 规范化分词词典,并去掉一些无用词; 2. 重写DAT(双数组Trie树)的构造算法,生成的DAT size减少了8%左右,从而节省了内存; 3. 优化分词算法,提高了阅读全文
posted @ 2017-03-09 17:04 Treant 阅读(1465) 评论(10) 编辑
摘要: 所谓排列,是指从给定的元素序列中依次取出元素,需要考虑取出顺序。比如,取出元素3, 5,因取出顺序的不同,则形成的序列{3, 5}与{5, 3}是不同的排列序列。对于长度为n的元素序列取出k个元素,则共有A(n, k)种取法。所谓组合,也是从元素序列中依次取出元素,与排列不同的是不需要考虑取出顺序;阅读全文
posted @ 2017-09-12 20:29 Treant 阅读(69) 评论(0) 编辑
摘要: 1. 详解 STL (Seasonal Trend decomposition procedure based on Loess) "1] 为时序分解中一种常见的算法,基于[LOESS" 将某时刻的数据$Y_v$分解为趋势分量(trend component)、周期分量(seasonal compo阅读全文
posted @ 2017-08-18 16:15 Treant 阅读(565) 评论(0) 编辑
摘要: 1. LOWESS 用kNN做平均回归: $$ \hat{f(x)} = Ave(y_i | x_i \in N_k(x)) $$ 其中,$N_k(x)$为距离点x最近k个点组成的邻域集合(neighborhood set)。这种邻域平均回归存在很多缺点: 没有考虑到不同距离的邻近点应有不同的权重;阅读全文
posted @ 2017-08-17 17:26 Treant 阅读(83) 评论(0) 编辑
摘要: iForest (Isolation Forest)是由Liu et al. [1] 提出来的基于二叉树的ensemble异常检测算法,具有效果好、训练快(线性复杂度)等特点。 1. 前言 iForest为聚类算法,不需要标记数据训练。首先给出几个定义: 划分(partition)指样本空间一分为二阅读全文
posted @ 2017-08-09 22:06 Treant 阅读(108) 评论(0) 编辑
摘要: 文章标题借用了Hawstein的译文《 "动态规划:从新手到专家" 》。 1. 概述 动态规划( Dynamic Programming, DP)是最优化问题的一种解决方法,本质上状态空间的状态转移。所谓状态转移是指每个阶段的最优状态(对应于子问题的解)可以从之前的某一个或几个阶段的状态中得到,这个阅读全文
posted @ 2017-07-29 20:11 Treant 阅读(484) 评论(1) 编辑
摘要: 1. 问题 Kaggle上有一个图像分类比赛 "Digit Recognizer" ,数据集是大名鼎鼎的 "MNIST" ——图片是已分割 (image segmented)过的28 28的灰度图,手写数字部分对应的是0~255的灰度值,背景部分为0。 手写数字图片是长这样的: 手写数字识别可以看做阅读全文
posted @ 2017-06-17 15:52 Treant 阅读(424) 评论(0) 编辑
摘要: 1. 相关性度量 为了定量的描述线性相关性,统计学奠基人K. Pearson提出了Pearson相关系数、心理学家CE. Spearman提出了Spearman等级相关系数、统计学家M. Kendall提出了Kendall秩相关系数。这三种相关系数最具有代表性、应用也最广泛,它们既有联系又有不同,分阅读全文
posted @ 2017-06-09 11:58 Treant 阅读(236) 评论(0) 编辑
摘要: GBDT (Gradient Boosting Decision Tree)属于集成学习中的Boosting流派,迭代地训练基学习器 (base learner),当前基学习器依赖于上一轮基学习器的学习结果。 不同于 "AdaBoost" 自适应地调整样本的权值分布,GBDT是通过不断地拟合残差 (阅读全文
posted @ 2017-06-01 14:21 Treant 阅读(383) 评论(1) 编辑
摘要: 1. 问题 今天来看一个回归问题——Kaggle竞赛 "Bike Sharing Demand" ,根据日期时间、天气、温度等特征,预测自行车的租借量。训练与测试数据集大概长这样: 观察上面的数据,我们可以发现:租借量等于注册用户租借量加上未注册用户租借量,即 + 。评价指标是loss函数RMSLE阅读全文
posted @ 2017-05-26 11:58 Treant 阅读(255) 评论(0) 编辑
摘要: 为了记录在竞赛中入门深度学习的过程,我开了一个新系列【从传统方法到深度学习】。 1. 问题 Kaggle竞赛 "Bag of Words Meets Bags of Popcorn" 是电影评论(review)的情感分析,可以视作为短文本的二分类问题(正向、负向)。标注数据集长这样: 评价指标是AU阅读全文
posted @ 2017-05-24 16:54 Treant 阅读(626) 评论(0) 编辑
摘要: 从3月中旬开始准备换工作,陆陆续续面了五六家公司,到现在终于尘埃落定了,借本文简单地梳理一下面试经历。目标城市定在杭州,所以下面都是杭州的岗位啦。 挖财 挖财算是杭州第二大的互联网金融公司。本人比较早就知道挖财这家公司的,因为我是看挖财的Scala大神王宏江的文章长大的。面试是范大哥内推的,面的岗位阅读全文
posted @ 2017-04-17 16:56 Treant 阅读(455) 评论(1) 编辑
摘要: 1. 什么是新词 现在大部分的分词工具已经做到了准确率高、粒度细,但是对于一些新词(new word)却不能做到很好地识别,比如: 快的打车优惠券 英雄联盟怎么不可以打排位 “快的”、“英雄联盟”应该被作为一个词,却被切成了两个词,失去了原有的语义。未登录词(out of vocabulary, O阅读全文
posted @ 2017-04-12 15:43 Treant 阅读(727) 评论(0) 编辑
摘要: 1. 排序 排序(sort)是一种常见的算法,把数据根据特定的顺序进行排列。经典的排序算法如下: 冒泡排序(bubble sort) 插入排序(insertion sort) 选择排序(selection sort) 快速排序(quick sort) 堆排序(heap sort) 归并排序(merg阅读全文
posted @ 2017-04-10 10:59 Treant 阅读(158) 评论(0) 编辑
摘要: 很久以前,我用过 "TFIDF" 做过行业关键词提取。TFIDF仅仅从词的统计信息出发,而没有充分考虑词之间的语义信息。现在本文将介绍一种考虑了相邻词的语义关系、基于图排序的关键词提取算法TextRank。 1. 介绍 TextRank由Mihalcea与Tarau于EMNLP'04 "1]提出来,阅读全文
posted @ 2017-03-27 13:06 Treant 阅读(1192) 评论(3) 编辑
摘要: 从2014年8月开始在博客园写博客,~~至今已经积累了82篇~~,集中在机器学习、NLP、数据结构与算法、大数据、编程语言等方面。在此做个总结,以后还会陆续更新…… 1. 机器学习 【十大经典数据挖掘算法】系列: 1. "C4.5" 2. "K Means" 3. "SVM" 4. "Apriori阅读全文
posted @ 2017-03-22 08:52 Treant 阅读(838) 评论(4) 编辑
摘要: "FNLP" 是由Fudan NLP实验室的邱锡鹏老师开源的一套Java写就的中文NLP工具包,提供诸如分词、词性标注、文本分类、依存句法分析等功能。 【开源中文分词工具探析】系列: 1. "中文分词工具探析(一):ICTCLAS (NLPIR)" 2. "中文分词工具探析(二):Jieba" 3.阅读全文
posted @ 2017-03-16 14:29 Treant 阅读(1431) 评论(2) 编辑
摘要: 1. 介绍 "thulac4j" 是THULAC的Java 8工程化实现,相比于官方版THULAC Java,我做了如下工作: 1. 规范化分词词典,并去掉一些无用词; 2. 重写DAT(双数组Trie树)的构造算法,生成的DAT size减少了8%左右,从而节省了内存; 3. 优化分词算法,提高了阅读全文
posted @ 2017-03-09 17:04 Treant 阅读(1465) 评论(10) 编辑
摘要: "THULAC" 是一款相当不错的中文分词工具,准确率高、分词速度蛮快的;并且在工程上做了很多优化,比如:用DAT存储训练特征(压缩训练模型),加入了标点符号的特征(提高分词准确率)等。 【开源中文分词工具探析】系列: 1. "中文分词工具探析(一):ICTCLAS (NLPIR)" 2. "中文分阅读全文
posted @ 2017-02-22 15:57 Treant 阅读(1514) 评论(0) 编辑
摘要: 结构化感知器(Structured Perceptron, SP)是由Collins "1]在EMNLP'02上提出来的,用于解决序列标注的问题。中文分词工具[THULAC" 、 "LTP" 所采用的分词模型便是基于此。 1. 结构化感知器 模型 "CRF" 全局化地以最大熵准则建模概率$P(Y|X阅读全文
posted @ 2017-02-19 17:03 Treant 阅读(642) 评论(0) 编辑
摘要: 1. 链表 数组是一种顺序表,index与value之间是一种顺序映射,以$O(1)$的复杂度访问数据元素。但是,若要在表的中间部分插入(或删除)某一个元素时,需要将后续的数据元素进行移动,复杂度大概为$O(n)$。链表(Linked List)是一种链式表,克服了上述的缺点,插入和删除操作均不会引阅读全文
posted @ 2017-02-10 13:05 Treant 阅读(762) 评论(0) 编辑