色情文本分类 - 机器学习实践

最近有个小项目,做的是从用户访问过的网页内容进行色情文本过滤。在项目中,所学习到的技术为pig与scikit-learn。本文从项目背景出发,简单地介绍了如何使用scikit-learn进行分类器设计。 色情文本分类器设计,在机器学习中为一个有监督的学习问题。这类问题都可以遵循以下设计方法进行: 收集训练数据与测试数据。 对数据进行特征提取和特征变换。 保留较为有效的特征,抛弃无效或噪音特征。 选择一种分类器,进行分类器训练。 对分类器进行交叉校验(cross validation),从中得出较优的超参数。 在测试集上进行数据测试。 数据收集...


Clustering by fast search and find of density peaks

论文简要思想 在论文中,它定义了两个比较重要的公式,。 。其中,代表的是离节点i距离少于的节点个数,也称为截断距离。由于能代表节点所在位置附近节点的分布密集情况,因此它也称为节点i的局部密度。 。的具体意思是,先找出比自身局部密度大的节点,在这些节点中选择离节点i距离最短的值作为的值。 在计算出所有节点的和后,将在二维平面上画出的值。画出这些值的图叫做决策图。用户依赖决策图来进行聚类中心的选取。下图种,左图为需要聚类的节点,右图为决策图。 在画出决策图后,需要用户根据决策图选择聚类中心。文章提出了一种基于主观印象的启发式方法,靠用户的主观印象选择和都较大的节点作为聚类中心。文章认为只有当...


RDD结构及其操作 - Spark源代码学习

本文假定读者看过Matei Zaharia的论文http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf,熟悉spark术语并且有一定的spark使用经验。 RDD(Resilient Distributed Dataset),是分布的只读数据集合。它是Spark中对数据集合的一种抽象,Spark对其定义了一系列的操作(map, filter, join等)。 以下将列出在spark源代码RDD类中,比较重要的数据及其操作。逻辑操作(map, reduce, join等)将会在下个专题中分析。...


最近点对

最近在算法课上,遇到了一个很有意思的题目,题目的大意是寻找空间中的最近点对。 给定空间上的n个节点,如何查找这n个点对中最近的点对的距离? 这里的距离采用欧氏距离 朴素法 朴素法是最为简单和粗暴的办法,具体思想是枚举空间中所有可能的点对,并且分别计算这些点对之间的距离。这些点对之间的最小距离即是答案。 朴素法需要分别枚举i和j,算法的时间复杂度为。 分治法 分治法的基本思想是将一个问题分解成几个更小的子问题,求解并合并这些子问题作为这个问题的结果。当子问题足够小的时候便可以直接求解。因此,分治法的解法分为两个步骤,分解和合并。 分解 我们的问题是求解这n个节点中的最近点对,那么如何该分解...


香港游小记(上)

本文从blog.163.com/kazenoyume@126/上迁移过来 经过三个月长时间的实习之后,终于有时间下来休整一下自己。实习的过程中学到了很多,眼界也增长了很多。为了犒劳自己这三个月来的努力,于是就决定去一下香港玩耍了。 早上6点多左右,伴着太阳的一丝丝微光,我睁着迷迷糊糊的眼镜出发前往体育西路坐穗港巴士。刚上车的时候,司机再三强调,别把大陆人的坏习惯带过来香港,不要在车上饮食。不过还是有乘客粗心忘了司机的话,在车上吃东西,挨了司机的一顿痛骂。司机大叔最经典的一句话,“我拜托你,保佑你,拜你,千万不要在车上吃东西”,至今我还深深的记在脑海里面。 来到香港,把东西放下在亲戚家之后...


浅尝KMP算法

本文从blog.163.com/kazenoyume@126/上迁移过来 最近在工作之余,参加了hihocoder推出的编程提高班。这个编程提高班真的很有意思,它的讲课内容是跟算法分析设计有关的。而这周讲课的内容,是大家都耳熟能详的KMP算法。 在大二的时候,我曾经学习过KMP算法,当时还刷了好几道OJ题,所以就理所当然的以为这周的算法题目是相当的简单,不需要花很多时间就能完成的了。但是当我开始做题目的时候,我却发现自己完全不懂KMP算法!当初学习KMP算法的时候,只是对算法有个直观上的了解,就只知道它的时间复杂度和空间复杂度,完全只把它当作API来用。而且当时学习的时候也是晕头转向的,...


summba Buffalo阶段小记

本文从blog.163.com/kazenoyume@126/上迁移过来 Buffalo是我在Summba公司参与开发的一个分布式任务调度以及任务处理框架。现在看它的代码,大约只有1W行,说它简单也简单,说它复杂也复杂。说它简单是在于它所做的事情真的十分的简单,说它复杂是我们把开发Buffalo这个项目的大部分时间都耗费在考虑可用性以及健壮性上,一时半刻可能理解不了这里面的所有实现细节。到目前为止,我也不能说我对Buffalo的代码有一个Fully Control的能力。 开发一个分布式系统过程中最大的麻烦在于对各种设计方案进行决策,这是我在Buffalo开发过程中所得到的一种感悟。我在...


在索答实习的小思考

本文从blog.163.com/kazenoyume@126/上迁移过来 5月份的时候,我加入了Summba。作为实习生,我的主要职责是协助Buffalo进程化版本的开发。 今天原本是个值得高兴的日子,因为Buffalo新版本将近完成了。晚上六点的时候,我跟我的上司Arber表达了我想一个星期上少点班的愿望,我想利用这一天去自主学习,学习自己喜欢的东西。出乎我的意料,Arber居然拒绝了我的请求。他的理由是,自己学习还不如在公司学习得多,当做完一个项目的时候会发现掌握的东西比从书本上学的东西更加的牢固。后来他又从这说出了很多问题,说我做事不够motivated、做事太过有目的性。 ...


清华毕设小结

本文从blog.163.com/kazenoyume@126/上迁移过来 自从清华保研成功后,我就一直想找个机会去他们那边适应一下实验室的生活。毕业设计这个事情给了我一个很好的契机。从2月17号到4月30号,我在清华度过了一段不愉快且不寻常的日子。 回顾这两个半月,我学到的东西不算多也不算少: 初步熟悉Cassandra的API(Thrift、CQL)调用,并对Cassandra的底层有一定的了解。现在已会构建Cassandra集群,操纵Cassandra表。 学习完DataStax的Cassandra课程。 熟悉了Yahoo Cloud Service Benchmark(YCSB),...


Logistic Regression

本文从kazenoyumechen.wordpress.com上迁移过来 本文是一篇未完成的博文 Logistic Regression在现实中是有效解决分类问题的分类算法之一。这个算法是处理二值分类问题的一个有效算法。二值分类问题指的是,数据集中的标签y只能取值为0或1。 按常理来说Linear Rgression也能应用到二值分类问题中,在这种情况下,当,,当, 。但是由于Linear Regression的特点,异常值的出现会严重影响其分类效果,所以Linear Regression并不太适合于用作分类问题。 现有训练集,,其中,,在Logistic...


KNN (K nearest neighbours)

本文从kazenoyumechen.wordpress.com上迁移过来 KNN是機器學習中最簡單的算法之一,它即可以用來解決回歸(regression)問題,同時也可以用來解決分類(classification)問題。 假設目前已有一定的訓練數據,訓練數據的格式是 。C表示的是分類問題中的離散取值空間。同時,對一測試數據 ,測試數據的格式爲 。 爲了對 進行分類,KNN將在訓練集中選取與 最近的k個節點。並且根據這k個節點的標記值 從而決定...


字符的编码与解码

本文从kazenoyumechen.wordpress.com上迁移过来 相信大家也有過這樣的經歷,當使用編輯器打開別人的文件時,顯示出來的文件內容是不可讀的。在網上查閱一陣資料瞎搗鼓後,發現只需在編輯器中設置編碼格式之後,文章的內容便會正確顯示了。其實上述問題只是一個簡單的字符編碼解碼問題,爲了解釋清楚這個問題,我們先來看看編碼與解碼兩者的定義。 字符集:由多個字符組成的集合。如西文‘a’-’z’所構成的集合是一個字符集,由所有漢字字符所組成的集合也是一個字符集。 字符編碼(Character Encode):將字符集中所有元素均轉換爲另一種便與計算機存儲的格式(比特模式,電脈衝)。 ...


周记

本文从blog.163.com/kazenoyume@126/上迁移过来 一个星期的工作结束了,写篇日志记录下吧。这个星期跟往常一样,没有上星期去山东和南京旅游的那种刺激。 星期一和星期二都在准备win8的多线程编程和异步编程的相关资料。虽然我不太懂win8应用开发,但是我也身为现代操作系统应用开发这门课的Ta之一,就算不会也要恶补一下,恶补到能教他们基本知识的程度吧。这周的ppt我最起码花了60小时。准备这个ppt的过程非常痛苦,因为我要看懂很多东西,包括从最基本的多线程编程(线程及其相关操作)到.Net GUI程序的运行逻辑再到win8的异步编程。星期二上课的时候,我自认为讲得不...


我的保研之路

本文从blog.163.com/kazenoyume@126/上迁移过来 我是中山大学软件学院的学生,上个星期,thu和pku软院的拟录取通知书都到手了,保研之路也走完了。回想起这段经历,我所走过的路可真是错综曲折。真有山重水复疑无路,柳暗花明又一村的感觉。在此,我觉得实在很有必要写一篇文章,来让打算保研的师弟师妹们少走点弯路。 思想准备 既然你搜到我这篇文章,那么你或许是想保研的人。不过,你为什么不选择出国呢?出国的话,除了国外的学术水平也更好之外,在那里生活也更加的自由。如果你说出国要很多钱的话,那么我建议你去收集一下那些名校奖学金的信息。比如像加拿大、新加坡、香港这些学校,它们的奖...


微信实习结束

本文从blog.163.com/kazenoyume@126/上迁移过来 长达八星期的腾讯实习终于结束,再过几天就得回学校准备保研的事情了。 要离开腾讯广州研发线(广研),心里肯定有千万个不舍。 在这期间,我被分配到了微信后台功能开发的小组里面实习。不过,说起来也惭愧。在这期间,我并没有为微信创造有价值的东西,打了个大酱油。在里面的这几个星期时间段内,我其实一直处于一个被培训的地位。每天上班就是去完成微信后台功能组的培训任务。这些培训任务的内容是: 完成一个线程池 完成一个进程池 完成一个简单的echo server 完成一个kv server。我花了5个星期才算是完成了这些任务。最终做...


腾讯实习入职

本文从blog.163.com/kazenoyume@126/上迁移过来 最近各种rp暴跌,不知道是不是太久没做好事换人品了。 今天去微信报到,HR姐姐居然说我登记了是7.11号的,就是说我早报到了一个星期。我在入职调查的时候已经写上是7月4号的了,而且还跟HR亲口说过的,但是现在她却认为我是报道错时间了。可怜的是,入职登记的只有每周周四才会进行,我只能等到下个星期才能入职报道,就是说我得在家里闲一个星期了。 这种情况应该算是人事部的失误吧?那应该是人事部方面去处理这些麻烦事而不是要我们去等待处理结果再来的。不过算了,毕竟去到也是看书,在家也是看书。 今天跟微信的mentor简单的聊了下...


微信公众平台开发小记

本文是在原博客kazenoyu.me上迁移过来 最近参加了微信的创新班,在这个班上,我需要做一些编程作业。而其中一个作业就是使用微信公众平台创建一个帐号,这个帐号的内容是自己定制的。我选择了广州图书馆自助平台作为微信公众号的内容,它含有的功能非常简单,能够简单的查看一个帐号的借阅信息、查询某本图书的信息以及提供续借的功能。我使用的技术相当简单,使用python的bottle框架作为httpserver,requests库解决http请求处理的问题,例如使用cookie记录账户信息。 刚开始的时候是打算使用django的,因为最近有使用django的经验。后来觉得使用django有点杀鸡用...


搭建博客小记

本文是在原博客kazenoyu.me上迁移过来 最近在用django框架写个人博客,经过几天的奋战之后代码终于写得差不多了。写完代码之后就遇到另外一个问题,如何配置服务器来让django能跑起来。 在折腾配置django服务器的时候遇到了很多很多的问题。原本以为在服务器上配置跟在本地配置一样简单,没想到一大堆奇怪的东西要去折腾。在开始的时候连简单的ssh都不会,还要帆爷教这命令怎么用。 ssh username@127.0.0.1 然后在服务器上各种配环境,期间也出过不少的奇葩问题。比如说服务器的python2.6是不支持{}这样来创建set的,这个在2.7才支持。 刚开始以为要去折腾a...


铲除邪恶,伸张正义,我们是Little busters!

本文从blog.163.com/kazenoyume@126/上迁移过来 ”有强大的敌人要作恶了,我们需要力量,你愿意加入我们吗?“ 就是这样的一句话,把我从无尽的黑暗中拉出来。 虽然每天都是干一些笨蛋到不行的事情,但是我们却非常非常开心,希望这样的时光能永恒下去。 这就是我们的起源,little busters,一群笨蛋聚集在一起的组织。 虽然早在上高中08年的时候就听说过little busters这个游戏。而且评价还不错。但是鉴于当时日语水平实在有限,无法攻略这么好的一个游戏。现在澄空汉化让我有机会去膜拜key的巨作,在这里非常感谢澄空汉化组,还有非常欣赏dwing做路线统计器所付...


黑客与画家读书笔记(2)

本文从blog.163.com/kazenoyume@126/上迁移过来 我们很多时候可以看到街上到处都在招聘JAVA、C#的程序员,而偏偏这些程序员的工资也是最低的。 这理由很多人都明白吧,供需关系而已。更深层的关系这本书很好地启发了我。 JAVA、C#语言作为一种宣传度极高的编程语言,知名度必然高,由此也有大量的用户。并且这两个语言有高度的限制,就是说这它们明确的限制了做一件事应该怎么做,而不是用你想的方法去做。它们独特的语言标准让很多人都知道一件事情该怎么实现。并且它们没有动态语言的很多特点,容易上手。编程者的很多误操作都可以避免,这也难免使这种语言成为最受欢迎的语言。 但是为什么...


黑客与画家读书笔记(1)

本文从blog.163.com/kazenoyume@126/上迁移过来 今天读的部分很好的给我留下了对有关软件和程序员的思考。 首先我们来谈谈软件。以前很大程度上总是认为桌面软件是非常优秀的、 不可战胜的。但是这本书很好的说明了桌面软件的特点:开发周期长、Bug修改时间长,以致对市场反应缓慢。在用这款软件之前,必须装在电脑上,这对非程序员用户来说这是一个很致命的弱点。用户对装程序这个行为非常反感,因为装上去之后才能使用到这款产品。并且如果这款产品如果不符合用户的需要,用户就会很快的删除。并且在使用过程遇到的BUG让用户无法忍受,很快对这款软件差评。并且桌面软件只有一些极其少数的用户愿意...