自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

whatever you do - just have fun!

做一个有梦的人,梦想不必太大,实际点最好,努力去完成!

  • 博客(48)
  • 资源 (2)
  • 收藏
  • 关注

原创 Nginx源码解析

最近才开始接触Nginx,使用一段时间后发现确实很好用(虽然之前没有使用过其他web服务器),所以打算看看这个开源服务的源代码。先展示下nginx-1.4.2的目录结构|-- auto|   |-- cc|   |-- lib|   |   |-- geoip|   |   |-- google-perftools|   |   |-- libatomic|

2013-08-19 21:58:15 476

原创 [面试题]可以盛放多少水呢?

题目:如上图片是题目意思,读完这个题目我们应该有一个直观的认识:只有出现两侧高中间低u型槽的情况中间才可能装水。 问题变成了,怎么找到u型槽呢?

2013-11-22 22:05:58 719

原创 [面试题] 查找最长不含相同字符的连续子串

题意:由26个小写字母组成的字符串str,在str中查找最长但不含相同字符的连续子串。1, 由于字符串只由小写字母组成,那么这个连续的字符串最长不会超过26。2, 由于是连续的子串,那么很容易想到用一个滑动窗口来调整子串的长度,一旦出现重复的字母,那么需要缩小串口,没有出现重复那么可以继续放大。直到重复为止。3, 现在重要的问题是怎么判定窗口字母是否重复,有两个办法:a, 每新进一

2013-11-18 23:11:04 1609

原创 Nginx-ngx_hash

ngx_hash是nginx内部封装的一个hash实现,其实现思想和我们平时讨论的实现差别不大,但是有几个地方还是值得我们仔细研究下。1, ngx_hash实现的是一个静态的hash表,只能查询不能插入修改,这个应该是和场景相关。2, hash桶的数量并不是事先指定好,而是在初始初始化hash表的时候通过一定的技巧来找到具体所需要的桶的数量。3, 解决冲突的办法就是开链,每个桶都是一个

2013-08-25 21:46:21 671

原创 Nginx-ngx_buf

Nginx中关于缓冲区的相关操作全部在ngx_buf这个源代码文件里, 先来看看buf涉及到的数据结构。typedef void * ngx_buf_tag_t;typedef struct ngx_buf_s ngx_buf_t;struct ngx_buf_s { u_char *pos; u_char *

2013-08-25 17:26:37 671

原创 Nginx-ngx_queue

这一篇是要介绍一个常见的数据结构——队列,来看看nginx中是怎么实现的队列,先来看看队列的数据结构定义。typedef struct ngx_queue_s ngx_queue_t;struct ngx_queue_s { ngx_queue_t *prev; ngx_queue_t *next;};nginx中实现的queue有两个特点:1, 队列节点没有数

2013-08-25 16:18:16 486

原创 Nginx-ngx_palloc

这是一个关于内存池管理的模块,先来看看最重要的连个数据结构typedef struct { u_char *last; u_char *end; ngx_pool_t *next; ngx_uint_t failed;} ngx_pool_data_t;st

2013-08-24 10:48:40 814

原创 Nginx-ngx_alloc

Nginx中,内存都是交由自己管理,一方面是为了提高内存的使用率,另外一方面是减小系统开销,提供程序运行的效率。为了清晰的理解内存管理的思路,先需要从内存分配,然后再到内存管理,这里先看下ngx_alloc 这源代码,这个文件在 nginx-1.4.2/src/os/unix/这个目录下。这个文件没有相关的数据结构说明,只有几个实现内存分配的行数,可以一个一个看下来void *ngx_a

2013-08-22 21:29:19 466

原创 Nginx-ngx_list

ngx_list是nginx中对链表的一个数据结构封装,起功能和普通的连接打通小异。先看看结构体定义typedef struct ngx_list_part_s ngx_list_part_t;struct ngx_list_part_s { void *elts; //数据区空间的指针 ngx_uint_t nelts; //链表

2013-08-19 22:35:02 436

原创 Nginx-array解析

ngx_array是Nginx中一个基础数据结构,是对c语言中基础数据结构数组——数据的扩展,在接口上增加了一些其他特性。typedef struct { void *elts; //数据链表,空间待分配 ngx_uint_t nelts; //数组中元素个数 size_t size; //每个元素的大小 ngx_ui

2013-08-19 22:01:05 462

原创 Nginx-string解析

我们先看看ngx_string中定义的几个数据结构typedef struct { size_t len; u_char *data;} ngx_str_t; 这个结构体就是最基础的nginx中的字符串结构了,其中 len表示这个字符串的长度, *data是一个指向无符号char类型的指针。从这个结构体可以看出,后续关于字符串长度的操作strl

2013-08-19 21:59:55 1576

原创 分类算法——Adaboost

分类算法——Adaboost   1       Adaboost算法 Adaboost算法是由boosting算法发展而来的。那么先讲讲boosting算法原理。 Boosting是一个算法框架,通过组合其他机器学习算法来构造一个强分类器。它主要是通过对样本集的操作获得样本子集 ,用该样本子集去训练生成基分类器;每得到一个样本集就用该基分类算法在该样本集上产生一个基分类器,这样在给定训练

2013-08-19 13:45:25 891

原创 vim插件:为不同语言定制不同的文法风格

以前我的脚本语言主要涉及到shell,awk,perl这三种,最近2年开始写python,发现python确实是一门不错的脚本语言,真是居家旅行之必备,慢慢的也开始推荐身边的人开始使用。但是由于python格式不像其他语言那么随意,所以也遇到了一个麻烦。为了保证在任何一台机器上写的python脚本在其他机器上看上去格式都一样那么需要把TAB键替换成空格,一般的用vim来写python脚本都会在~/

2013-08-19 13:45:23 1059

原创 文本聚类—k-means

文本聚类—k-means 1       算法介绍 K-means是一个聚类算法,通过这个算法可以将给定的数据集切分为K个集合(K事先指定),同时保证任何一个元素到其所属类中心的的距离都小于这个元素到其他类中心的距离。用数学化的语言可以这样描述          其中k为事先制定的聚类簇数

2013-08-19 13:45:21 984

原创 文本分类——Naive Bayes

文本分类——Naive Bayes   1         Naive Bayes算法介绍  说起贝叶斯算法,不得不先提到概率论与数理统计课程里面的条件概率公式,对于随机试验E有两个随机事件A,B,且P(B) > 0 那么在B事件发生的条件下A发生的概率为: 其中P(AB)为A,B两个事件的联合概率。对上式利用乘法公式可以变形为:这样就得到了贝叶斯公式。贝叶斯文本分类就是基于这个公式,利用先

2013-08-19 13:45:19 626

原创 文本分类——K-Nearest Neighbor算法

文本分类——K-Nearest Neighbor   1       关于k-Nearest Neighbor算法 KNN算法的基本思路:存在一个预先选定并且人工标注好类别的训练集合,给定一个新的文本,需要计算这个新文本与训练集合中每个文本的相似度,选出其中相似度最大的K个文本,然后在这K个文本中找出类别最多的一个类作为最后新文本的所属类别。可以形式化的描述如下:

2013-08-19 13:45:16 815

原创 文本分类——libsvm

文本分类——libsvm   1       关于libsvm 关于libsvm的介绍以及相关论文网上很多,感兴趣可以找找。 http://www.csie.ntu.edu.tw/~cjlin/libsvm/ 这是libsvm的官网,也有原作者的论文以及各种下载包和一些的简单的数据。 2       Libsvm分类 这里主要是针对之前学习过的几种特征筛选算法用libsvm进行比较。

2013-08-19 13:45:14 1098

原创 文本分类——决策树模型

文本分类——决策树模型   1       决策树模型的训练 一般决策树的训练过程是先建立一棵大规模的树结构,然后再对这个树进行剪枝,知道到达合适的规模和分类效率。 剪枝是决策树不可缺少的一步,否则在一棵大规模的树上进行分类判定,很容易就会出现过适应问题,特别是分类器基于训练集的一些弱属性上做决策时,经常出现过适应问题。 1.1     分支准则 决策树的分支准则是决定当前树节点选择

2013-08-19 13:45:12 5257

原创 十一五台山会总贴

所有攻略和照片地址:曾魁 :http://photo.163.com/zengkui111@gmail.com/#m=1&aid=245657700&p=1张志辉 : 攻略+照片 http://lvyou.baidu.com/notes/view/4f7015c2ef124ea85affb83e何勇 : http://xiangce.baidu.com/picture/album/list/5ac

2013-08-19 13:45:09 498

原创 特征选择之卡方检验

卡方检验的核心思路就是通过比较观察值和理论值之间的差异来判定假设是否成立。具体做法如下两步    1, 先假设两个变量是独立的。     2, 计算理论值和观察值的实际偏差程度来判定是否接受假设。如果偏差较小,那么就接受假设,否则应该拒绝假设。    那么怎么来计算偏差呢? 我们假定理论值就是我们的所说的数学期望E,那么观察值就是我们实际看到数值x,那么两者之间的差就是偏差的大小了,如下:    

2013-08-19 13:45:07 1164

原创 特征选择之互信息

对于事件A和事件B同时出现的,一种信息论的描述方法就是互信息,计算方式如下其意义:由于事件A发生与事件B发生相关联而提供的信息量。    在处理分类问题提取特征的时候就可以用互信息来衡量某个特征和特定类别的相关性,如果信息量越大,那么特征和这个类别的相关性越大。反之也是成立的。    以搜狗实验室的语料为例。选取金融,IT产品,体育,娱乐,股票这五个类别,通过互信息来选取词来建立空间向量模型。在选

2013-08-19 13:45:05 933

原创 特征选择之词频

###############国庆基本一个人渡过,无聊研究下特征算则算法,以备后用###############    不管对文档分类还是聚类,特征化的表述一个文档,让计算机理解这篇文档说的是什么都是最重要的一个任务,那么用什么东西去表达这样一个非结构化的文档最为合适呢? Gerard Salton 在1969年提出的Vector Space Model-空间向量模型得到了广泛的应用,这是一个用来

2013-08-19 13:45:03 1790

原创 max sum of subtree

//@author zengkui111@gmail.comstruct node {    int node_id;    int number;    bool has_negative_node;    int sum_of_subtree;    struct node *left;    struct node *right;};// the return value is the no

2013-08-19 13:45:01 312

原创 线性回归模型收敛和参数的选择

通常来讲,在训练一个模型的时候需要用一个收敛的条件来约束算法迭代的轮次,比如在Logisitc Regression中会用相邻两次迭代的损失函数差小于10e-5来控制迭代次数,为了保险同时还有限定一个最大迭代次数。     一个模型的收敛所需要的迭代次数依赖于数据本身和算法参数。 线性回归里的梯度下降算法其收敛需要的迭代次数和learning rate的关系非常密切,怎样选择一个合适参数使得能收敛

2013-08-19 13:44:56 3198

原创 Logistic Regression 学习笔记 : 解决概率预估或者分类问题

在linear regression 模型中,其hypothesis 的定义如下:   这个模型的一个特点就是其预测值的值域是没有限制的,那么当我们需要预测一些有界的数值时,这个模型显然是不足以满足要求了如分类问题,广告的ctr预测等这些问题,那么这时候就需要把这个模型做一下调整将H(x)映射到我们所需要的范围来就行了,于是logistic regression的H(x) 的定义可以如下:    

2013-08-19 13:44:54 1027

原创 牛顿迭代求一个数的平方根

我只能说百度空间太脑残了, 我这样一篇文章怎么就有不合适的内容了?无奈 只能以图片的形式发出来了。

2013-08-19 13:44:52 481

原创 线性回归学习笔记

Linear Regression 最近在研究回归方面的模型,线性回归是第一个学习的模型,先把斯坦福吴大牛的视频学习了一遍,记录如下:线性回归是有监督学习模型中的一个,对于描述有监督的学习用下面这个图来表述是最合适不过了。                                                                                         

2013-08-19 13:44:50 420

原创 max sum of subtree

//@author zengkui111@gmail.comstruct node {    int node_id;    int number;    bool has_negative_node;    int sum_of_subtree;    struct node *left;    struct node *right;};// the return value is the no

2013-08-19 13:44:50 307

原创 产品演变的内在逻辑是什么?

今天看到这么一句话,引发了我一点不成形的思考,先记录下来:研究人员典型的尴尬处境——技术的研究超前于实践太多。最后“太多”2个字是我自己加上去的,因为我认为要加上这两个字,这句话才更加的正确。我在想微软在互联网以及移动互联网一直不给力是不是这个原因呢? 微软在2002年就提出了Tablet PC这么一个概念产品,应该说这也是pad很早的一个雏形了,但是到了苹果才得以发扬光大,为什么呢? 苹果从ip

2013-08-19 13:44:47 490

原创 重构笔记

最近在看Refactoring Improving the Design of Existing Code. 觉的遇到好的总结,方法和心得还是有必要记录下来,好记心不如烂笔头。什么是重构——对软件内部结构的调整,在不改变软件可观察的行为的前提下提高可理解性,降低修改成本。什么时候应该重构——代码的”坏味道“,当你面对代码时有这种直觉,那么这些代码就有必要重构了。 更多的这种“坏味道”需要靠经验来把

2013-08-19 13:44:45 367

原创 How to read binary data from HDFS with Thrift?

创业公司有很多东西是从探索慢慢走向成熟的,当然探索的过程也是站在了巨人的肩膀上的!      去年才接触到Thrift,它作为一个可扩展且跨语言的服务框架确实比较好用,利用它搭建一个服务是个非常容易的事情,现在也有很多公司开始使用这个框架了。    今年由于业务量的增长非常迅猛,数据流架构上也要相应的调整,随之数据也就迁移到HDFS上去了,同时也问题来了,怎么用Thrift的API从HDFS读取二

2013-08-19 13:44:41 409

原创 【新发现】幼儿园的题目和机器学习的关系

基于上一篇日志,做了进一步的分析,对训练的样本数据做一些改变,输入一些变长的数字比如:29537 1,0,0,1,1,0,1,0,1,0,1,120379 1,1,0,1,1,0,0,0,1,0,1,272240 1,1,0,2,0,1,0,0,1,0,0,1112694 1,0,2,1,0,1,0,1,0,0,1,2963187 1,0,1,0,1,0,0,1,1,1,1,4143383 1,0

2013-08-19 13:44:39 451

原创 幼儿园的题目和机器学习的关系

很久以前看到了这个题目        967621 = 3        797321 = 1        378581 = 4        422151 = 0        535951 = 1        335771 = 0        565441 = ?    这个题目就是数数字里出现的圈圈数,以前看过去也就过去了,没有去研究它。    今天在微博上看到有人说这个题目可以用机器

2013-08-19 13:44:36 431

原创 李开复-算法的力量

算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原

2013-08-19 13:44:30 407

原创 十八个最常用的学术搜索引擎【转载】

十八个最常用的学术搜索引擎1、http://scholar.google.com/4 虽然还是Beta版,但个人已觉得现在已经是很好很强大了,Google学术搜索滤掉了普通搜索结果中大量的垃圾信息,排列出文章的不同版本以及被其它文章的引用次数。略显不足的是,它搜索出来的结果没有按照权威度(譬如影响因子、引用次数)依次排列,在中国搜索出来的,前几页可能大部分为中文的一些期刊的文章。/ W- t+ V

2013-08-19 13:44:27 892

原创 贪食蛇的进化之路

贪食蛇的进化之路         POJ 1324 http://acm.pku.edu.cn/JudgeOnline/problem?id=1324         此题是要求计算贪食蛇从一个初始位置把头移动到(0,0)位置需要最少移动的步数。以下是我的优化过程。Run id   user id problem result memory time language codelen

2013-08-19 13:44:25 496

原创 一位软件工程师的总结

气风发、踌躇满志,不觉感叹万千……本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标。本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具体建议,前面几点旨在确定大的方向,算是废话吧。1、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。”其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧

2013-08-19 13:44:23 359

原创 写在第3届校内赛之后

第 3 届 ACM 校内赛结束了,可以说也真正结束了我 3 年的 ACM 生活,我也算经历了 3 次不同角色的校内赛。 2007 —— 我是一个参赛者。 2008 —— 我是一个组织者。 2009 —— 我是一个观赛者。 (今天颁奖时,房教说请全体组织人员站起来,突然我意识到我不应该站起来,因为我只是一个旁观者了) 今天我很认真听着房教的每一句话,因为我知道,这样的机会应该是最后一次了。 05 级

2013-08-19 13:44:18 426

原创 茴香豆的茴字的几种写法——BOJ1302小结

BOJ 1302 http://acm.cs.bupt.cn/onlinejudge/showproblem.php?problem_id=1302http://forum.byr.edu.cn/wForum/disparticle.php?boardName=ACM_ICPC&ID=24794&pos=5     鲁迅笔下的孔乙己经常在咸亨酒店里念叨着茴香豆的茴字有3种写法分别是茴 ,回 ,囘

2013-08-19 13:44:16 1139

转载 用计算机语言的爱情表白 [转]

我能抽象出整个世界... 但是我不能抽象出你... 因为你在我心中是那么的具体... 所以我的世界并不完整... 我可以重载甚至覆盖这个世界里的任何一种方法... 但是我却不能重载对你的思念... 也许命中注定了 你在我的世界里永远的烙上了静态的属性... 而我不慎调用了爱你这个方法... 当我义无返顾的把自己作为参数传进这个方法时... 我才发现爱上你是一个死循环... 它不

2013-08-19 13:44:14 949

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除