记第七届R语言大会

这届R语言大会在杭师仓前校区举行,由阿里巴巴承办。邀请到了libsvm的作者林老师。但据同事说林教授演讲用的ppt都是一套(汗~~~)。上午是主会场,有四位嘉宾做了介绍,其他几位介绍的比较范,林稍微带点干货,特别提到数据没有到20T,不一定要上big data。下午是分会场,本人去听了: 分析师使用的R包 京东的ctr模型 天猫learning to rank 天猫数据驱动运营。 点评 京东分享推荐的ctr模型。和我街处于同一起跑线,模型和特征做法都很相似。赞下京东的分享着,讲的很实在。 天猫l2r。没什么干货,介绍了一些基本概念就结束了。 天猫数据驱动运营。预测销量,c2b。介绍的比较范,而且个人觉得他讲的效果有夸大的嫌疑。 分析师用的R包。R中类似ipython notebook的东西。可交互的图,非常实用。 感想 Spark出现的频率很高。 用R来作云服务,我个人觉得不靠谱。 libsvm的作者好有趣。演讲前看论文,演讲后睡觉。工业界范十足。 学术界的分享依旧不靠谱。 IBM关于电信领域的挖掘是来搞笑的吗 接下来就等ppt了。 最后,和阿里比,其他公司的所处的阶段还是非常的初级。

November 30, 2014 · 1 min

ipython notebook对机器学习工程师的价值

关键词:代码、数据、文档合一。 —-draft: false toc: true 如果选一个关键词来描述机器学习工程师的工作,不断试错是我心中的number one。相对于软件工程师来讲,有大量琐碎的dirty需要做,通常会占据到80%左右的时间。一个好的工具能够极大的提高效率。 总结需求如下: 可交互式的环境:比如预处理数据,有的时候数据比较大,比较耗时,希望能处理一次后就放在内存里面使用。 文档化,记录工作流。数据挖掘会有非常多的idea要去尝试,实现这些idea的代码会有微小的差异,需要一个工具能够统一追踪管理他们。且不同的实验会有不同的结果,整理这些结果形成文档太费时间,希望能够做完实验就生成文档。 经常会有一些片段代码要写,写在文件里有太零碎,写在交互式的shell里面有很难回溯,需要一个交互式和文档结合的工具。 支持可视化工具,兼容python画图 神奇的ipython notebook 安装环境 非常简单,推荐:Anaconda, 官网 ipython notebook入门 还是官网, 一开始不适应的同学,多看几个example吧。 分享你的ipython notebook 一键分享:A simple way to share Jupyter Notebooks 最后 附一张我的在kaggle上用ipython notebook做的一个入门题照:

November 23, 2014 · 1 min

聚类算法中常见的距离计算方法

概述 在面对聚类问题时,选择何种距离计算方法求相似度是一个basic question。文献[1]中提到了N多计算方法,从大类来看有以下几种: $L_p$ Minkowski家族 $ L_1 $ 家族 Intersection 家族 Inner Product家族 etl 简单算一下大概有40+个计算方法,其中有好多没有听过。好在工业界一般只涉及到几个,本文将按自己理解大致介绍下这些方法及应用情况。 距离的类型和尺度 类型: 二进制(binary) 离散值(Discrete) 连续值(Continuous) 尺度: 定性:比如同义:red、green、black,比如顺序:高、中、低 定量: a) interval b) ratio 距离的类型和尺度非常重要,影响后续聚类算法的选择。 距离计算方法定义 严谨的定义参考[4],通俗来讲,在一个空间内,距离计算方法满足以下4个公理。 $d(x,y) ≥ 0$ $ d(x,y)=0$ if $x=y$ $ d(x, y) = d(y, x)$ (distance is symmetric) $d(x, y) ≤ d(x, z) + d(z, y)$ (the triangle inequality). 在欧式空间,第四个公理可以直观理解为两点之间距离最短。在其他情况需要一些证明才能推导。 常见的距离计算方法 Lr norm 在n维空间,其计算公式如下: $d(x,y)=(\sum_{k=1}^{n} |x_k-y_k| ^r)^{1/r}$ 欧式距离 当r=2,这就是我们熟悉的欧式距离,其聚类形状在二维空间是一个圆。归属于$L_2$ norm 曼哈顿距离 r=1,归属于$L_1$ norm,其名字的来源与该距离计算过程有关。该距离类似在x和y的每个维度上沿grid line上travel,类似曼哈顿的街道。...

November 22, 2014 · 2 min

Coursera上Andrew Ng的机器学习课程评价

前言 该课程非常适合初学者,比原先Ng在斯坦福大学的公开课要简单许多,少去了许多数学,并且在课程内容安排上更加紧凑,涉及的内容广泛,旨在搭建初学者与机器学习的桥梁。值得一提的是,该课程较为接近工程的角度,故我建议有兴趣的工程师可以尝试下。 本人花了3周左右的时间完成了该课程的视频和project,并拿到证书。每天下班回来比较晚,倒腾一两个小时,就该洗洗睡了,还好妹子理解。但不建议初学者像我一样,原因如下: 本人有一定的机器学习基础。 虽然不熟悉octave,但是写过几年程序,能较快的适应它的语法。 该课程没有中文字幕,不过Andrew Ng将的英文都比较简单,大家可以放心,我一般加速1.5x听。 该课程有个较为合理的时间预估,可根据它安排学习计划。 内容介绍 建议先看视频 Ng的视频和ppt做的非常有质量,简洁易懂。该课程有19个课程,每个课程一般有4-6个小视频,视频时间有长有短,最长的不会超过20分钟。下面列下个人觉得最有价值的部分: Octave Tutorial,该教程能够帮你快速了解octave的基本用法,后续所有的project都会涉及到它。请对照该课程的讲义熟悉octave。PS:mac上安装octave可能会出些问题,我这边只要取消安装text help部分即可。 主流算法,Logistic回归,SVM,ANN,Kmeans,PCA,协同过滤等,可以理解为通俗易懂版的讲解,不满足的同学建议去看看Ng在斯坦福公开课中的视频,那边会有较详细的数学推导。 最为精华,即本人认为该课程最核心的部分是:X. Advice for Applying Machine Learning (Week 6)和XVIII. Application Example: Photo OCR。因为其他知识很容易得到,而且可以得到更好更完备的解释,而这两个视频,是Ng从工程的角度指导我们如何应用机器学习,并且给了一个实际的例子。 建议完成所有课程的project 由于这些project的说明文档写的非常仔细,较为容易完成。通过写一些代码,可以对这些算法有更深的理解。另外,也可以认识到octave vectorizing写法的威力。 PS:请不要着急去网上搜课程答案,Ng在课程里面明确说明不要把作业答案放到网上,但还是有不少人放了自己的答案。提前看了答案,你会少很多乐趣。 draft: false toc: true 总结 后来也看了几个coursera上的课程,暂时还么有找到能和它一拚的课程。如果有哪位同学知道,可以分享下。 当然,这个课程只是个开始,后续可以看斯坦福大学的机器学习课程,同时配合Pattern Recognized and Machine Learning这本书效果会更好。

September 13, 2014 · 1 min

Markdown_gramma(转)

个人收藏用,转:« 访问 Wow!Ubuntu NOTE: This is Simplelified Chinese Edition Document of Markdown Syntax. If you are seeking for English Edition Document. Please refer to Markdown: Syntax. 声明: 这份文档派生(fork)于繁体中文版,在此基础上进行了繁体转简体工作,并进行了适当的润色。此文档用 Markdown 语法编写,你可以到这里查看它的源文件。「繁体中文版的原始文件可以查看这里 。」–By @riku 注: 本项目托管于 GitCafe上,请通过"派生"和"合并请求"来帮忙改进本项目。 Markdown 语法说明 (简体中文版) / (点击查看快速入门) 概述 宗旨 兼容 HTML 特殊字符自动转换 区块元素 段落和换行 标题 区块引用 列表 代码区块 分隔线 区段元素 链接 强调 代码 图片 其它 反斜杠 自动链接 感谢 Markdown 免费编辑器 Markdown 的目标是实现「易读易写」。 可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 [Setext] 1、[atx] 2、[Textile] 3、[reStructuredText] 4、[Grutatext] 5 和 [EtText] 6,而最大灵感来源其实是纯文本电子邮件的格式。...

April 8, 2014 · 7 min

Vim tips

收集我个人学习使用Vim的小技巧 ##快速替换## 语法: [addr]s/源字符串/目的字符串/[option] [addr] 表示检索范围,省略时表示当前行。如: “1,20” :表示从第1行到20行; “%” :表示整个文件,同“1,$”; “. ,$” :从当前行到文件尾; s:正则表达式中替换命令 [option] : 表示操作类型 g 表示全局替换; c 表示进行确认 p 表示替代结果逐行显示(Ctrl + L恢复屏幕) i 不区分大小写 省略option时仅对每行第一个匹配串进行替换; 如果在源字符串和目的字符串中出现特殊字符,需要用”\”转义 例子:将多个空格换成一个空格: %s/ */ /g ##多文件打开 打开:split file 切换窗口:双击ctrl+w,或ctrl+w+上下左右键

April 7, 2014 · 1 min

Windows tips

April 7, 2014 · 0 min

Ubuntu tips

April 7, 2014 · 0 min

introduction to android adb

Recently, I’m interesting how android adb works. If you are an Android programer, you certainly familiar with adb shell,adb logcat. Or maybe you only use eclipse, it is helpful to know behind DDMS there is adb. #ADB overview We can find adb description from android developer website. Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It is a client-server program that includes three components:...

March 30, 2014 · 3 min

2013年读过的书

##技术类 ###C++ esstianl c++,大学的时候读过,忘的差不多了。这次项目用到c++,为了快速上手,重读了一遍。评价五星。 c++ prime。至今还没有通读,处于当手册使用的阶段,书中的例子很赞,可以作为c++ cookbook。 effective c++。强烈推荐,不解释。 effective stl,因为effective c++才买的,看了感觉和上一本的级别差太多,不推荐。 这里推荐c++ reference这个网站,有很多优秀例子代码,是很好的参考对象。同时,该网站支持在线编译运行,很赞。 ###C C专家编程。很赞,为它写了一篇简单的博客。 ###Android 深入Android源码分析,卷一,邓平凡。强烈推荐,作者功力深厚,庖丁解牛。目前通读一遍,对JNI、Binder通信的理解加深许多。而像SurfaceFlinge这样的系统还没有很好的理解。 深入Android源码分析,卷二,同。 ###机器学习 斯坦福大学机器学习课程及讲义。入门的好材料。 集体智慧编程。基于Python的机器学习常见算法教程。 ###代码质量、设计 设计模式。GOF的,看一遍,感觉理解了,很快又会忘掉不少,每次做完项目重新看,都会有收获。 google开源编程规范。 ###其他 自己动手实现操作系统。 深入理解C# effective Java ##非技术 德川家康—长篇推荐,感慨日本人名字的神奇 冰与火之歌—魔龙狂舞,马丁爷爷一定要长命百岁 浪潮之巅—-推荐 活着活着就老了,冯唐 小通鉴,冯唐 人为什么活着,王小波 地久天长,王小波 走出软件磨坊 精益创业 创业四步法 PS:今年上的最多的网站是知乎,感谢各位大牛热心分享知识。

January 12, 2014 · 1 min