跟 scikit-learn 学机器学习—轮廓系数评估聚类结果

最初是在实验室合作项目的研究报告中了解到这个“轮廓系数”这个关键词的,当时对这个概念还是知其然不知其所以然。最近给项目加功能的时候,需要用到这个指标,重新看了下公式,查了查 scikit-learn 的文档,写个文档记录一下。

最近搜机器学习相关的内容,经常能经过几次跳转回到 scikit-learn 的文档中,打算后续继续跟着文档巩固一下算法的实现方面的内容吧。本文主要分为:定义、sklearn 中的方法介绍、应用介绍、源码分析 继续阅读

提取豆瓣电影短评关键词

昨天看到了一篇文章,利用这个 MonkeyLearn 提供的 API,创建情感分析模型。其数据源来自某网站的评论数据,恰好最近打算投豆瓣的实习,想到豆瓣电影的打分和短评也可以做类似的事情。不过目前还没有做到分类器,只是利用 TF-IDF 做了关键词提取。

昨天晚上找了一下豆瓣的 API,发现限制颇多,于是决定直接爬。今天下午完成了一个简单的模拟登录和抓取程序(没有用到什么代理和多线程),晚上搞定了用了一会尝试了用 sklearn 中的 TF-IDF 提取关键词,之后发现 jieba 分词直接带有关键词提取器,还有 TF-IDF 和 textrank 两种模式!(关于 textrank 也是在另一篇文章里知道的),不过最后发现最终的结果差别不大,甚至 TF-IDF 的一些词更加具有显著性。 继续阅读

TCP/IP闲话

最近一段时间找实习找的好心酸,每次笔试的时候,都发现有知识了解的不够深入;每次面试的时候,都发现自己原本以为做的还不错的东西,在面试官看来一无是处。真的有些后悔本科到研究生一直自己瞎搞,导致没有一项技能是十分突出的。“一专多能”如果没有“专”,那“多能”在找工作的时候就没有太大的竞争力。

最近面的两个岗,竟然都问到的 TCP/IP 的内容,想当年计网也是轻松拿下的,却也在这些问题上支支吾吾半猜半懵的。赶紧回来重新温习一下基础吧。之后打算温习 SQL 的时候再总结一篇,然后剩下的就在准备过程中随便写写好了。——以下内容主要摘自TCP/IP 的那些事 的两篇博文,进行精炼和自己的理解。

主要包括:建立释放过程,及相关问题;重传方法;网络拥塞时的处理。跳过了滑动窗口和具体的选择重传等。 继续阅读

Google Code Jam 2016资格赛

周六醒来习惯性刷微博,Google Code Jam 2016资格赛已经在早上七点开始了。于是赶紧跑来实验室注册+看题,当然以我的水平,估计也就能通过资格赛了。不知道是不是这次的比较简单,第一题是“一道送分题”,第二题能想到解决方案,但是不确定是正确的答案,第三题第一遍读题没读懂。。。因为整个资格赛持续27个小时,于是就先陪女朋友去了北海公园,晚上回来的路上想的具体算法方案,八点多回实验室才答的题。

附一张北海公园的照片,可以直接看到白塔、景山(左侧有个亭子的山)、国家大剧院(右侧一个圆弧形的建筑),不知道为什么,即使在空气质量还可以的天气,远处依旧是灰蒙蒙的。

北海公园

能直接看到白塔、景山、国家大剧院

继续阅读

Java中引用和垃圾回收

很久之前就想写这么一个总结了,不过作为一个懒癌晚期换着,这个日志从创建到动手写几乎停留了快半年的时间。一方面,最初的时候感觉自己看的几篇介绍性的文章以及 Thinking in Java,只是知道有这么个东西,对它的理解其实不够;另一方面,自己确实没有实际的用过这部分内容(虽然现在还是没用过),已知感觉自己没太理解。终于在面试不顺,笔试被虐之后,决定静心整理些东西。

想最初学 C 的时候,每次 malloc 分配内存之后,需要手工 free 进行释放;C++里 new 了内存也需要 delete 回收。数据结构课程的时候,老师就强调,分配了一定要释放,不然要内存泄露。想来到了 Java、Python 等现代语言(233),这些底层的细节都已经不再是程序员关注的内容,因为垃圾回收!(原本想写成一篇读书笔记的,结果写成了一篇四不像……)

继续阅读

一道Java初始化的笔试题 from Netease

非常惊奇的发现,自己一年前还总结了 Thinking in Java 中关于初始化部分的内容。想想当时 Thinking in Java 应该看了一半左右,或许该重新捡起来看了。

题目:运行 B.java 的输出结果:

继续阅读

迟到的2015年度总结

书到用书方恨少,基础到面试时才知道不扎实。寒假结束两周了,返校四周了,几次想着手写去年的总结都悲剧了,一来项目接近结题,杂事越来越多,二来互联网实习招聘开始的太快,让人措手不及。周围晚上,写几道 easy 的 leetcode,看了看 Java 基础知识,还是决定动手写吧,虽然2016第一季度已经快结束了……

其实寒假在家的时候曾经想过2015年都做了什么,竟然一片空白……或许不敢写总结也是不敢正视自己一年的荒废吧。如今静下心来,其实也并不是完全荒废:

  • 基本搞定了老师的一个数据挖掘相关的项目,虽然最终的实现很简单。不过过程中,还是锻炼了自己的文档和总结能力,也算让自己入坑数据挖掘、机器学习、大数据的源头吧。
  • 第一次完成 MOOC 课程的学习,相比去年定下的目标差很多,不过总算起步了。
  • 研一两个学期老老实实上课干活的收获,继续获得一等奖学金,悲催的是竟然是老师带的四个学生中唯一的一个……
  • 异地长跑四年的女朋友终于来北京上学了,虽然两个学校之间还有40分钟的公交车程,但至少周末可以陪她了。
  • 继续乱点技能点……
  • 毕设开题给自己挖了强化学习的坑,之后才发现深度强化学习目前很火;用15天凑出来的一篇英文论文竟然中了!(虽然只是某网管领域 IEEE 会议的一个 workshop 的 short paper——档次掉好多啊)不用为毕业担心了。

继续阅读

Java知识点拾遗——Object类

寒假在家的时候已经开始着手准备找实习的一些内容了,但是没想到这一切来的这么的快,3月刚到,各大互联网的实习信息就已经涌来。想想之前看 Thinking in Java 还是近一年前的事,真的需要认真准备一下了。于是打算搞一个知识点拾遗系列,把平时编程不太容易注意到的内容整理一下,也方便自己总结记忆。

继续阅读

支持upload文件的SimpleHTTPServer

作为 Python2 的标准库,SimpleHTTPServer 可以很方便的提供一个简单的页面服务器,很多文章已经进行了介绍。其默认的功能很简单——当前路径下如果有 index.html 或者 index.htm 文件,则直接解析显示;如果没有,则列出当前目录下的文件和文件夹目录。这个模块已知被我当做分享文件很快捷同时逼格又很高的方式,不过一直的问题就是,无法上传!于是耗费半个下午给它增加了上传文件的功能。下文是记录自己的处理问题的过程,最后对 SimpleHTTPServer 里的函数进行了简单介绍,不想看废话的可以直接去 gist 上获得文件源码:gist 地址

注:Python3版本中,SimpleHTTPServer 更名为 http.server,官方链接声明

The SimpleHTTPServer module has been merged into http.server in Python 3. The 2to3 tool will automatically adapt imports when converting your sources to Python 3.

继续阅读