刘思喆

 

(我承认,这个是标题党!)

今儿看到 Ajay Ohri 那儿推荐了多伦多大学 S. Sayad 教授的关于数据挖掘的一个在线介绍。这个介绍包含了完整的数据挖掘过程,以及数据挖掘技术的分类,并且每一项都可以通过超链接到相应的分支。让人爱不释手,大赞之!

S. Sayad 教授在数据挖掘过程定义上同从比较流行的 CRISP-DM(Cross Industry Standard Process for Data Mining)有些区别:

  1. Problem Definition
  2. Data Preparaion
  3. Data Exploration
  4. Modelling
  5. Evaluation
  6. Deployment

(但个人认为这两种说法其实没有脱离问题的本质,是一致的)。

而重头戏则是关于数据挖掘(统计分析)技术的两大领域

  • 描述
  • 推断

挖掘(分析)技术的对应关系(超链接的脑图?),

首先是——描述:

然后是——推断:

最后是 S. Sayad 教授的数据挖掘在线 intro,请猛击之!

再补一句:关于数据挖掘软件的介绍,没有 R,抱怨一下~~

附1:

标准的“商业”数据挖掘过程:

  1. Business Understanding
  2. Data Understanding
  3. Data Preparaion
  4. Modelling
  5. Evaluating
  6. Deployment

固定链接:http://www.bjt.name/2010/12/toronto-data-mining-intro/‎

 

前些天在准备中国第三届R语言会议(上海)的时候,翻到以前记录在Google Notebook里的一些材料,一篇是关于Google Codes关于R代码的规范,非常值得借鉴。

规范这个东西平时多多注意一些还是有好处的,就和作文一样,漂亮的字体总能有不错的加分。这里就不翻译原文了,摘一些 tips 供大家参考:

1、一般性规则

  • 避免使用attach
  • 写函数是尽量少的使用stop()
  • 定义S3和S4的对象不要混在一起使用

2、文件命名

以.r结束的文件,尽可能的增加信息在文件名里面,比如

Good:

predict_ad_revenue.R

Bad:

foo.R

3、变量名和函数命名规则

# 注意,在R环境下,大小写是敏感的

变量:

Good:

avg.clicks

Bad:

avg_Clicks, avgClicks

函数名:

Good:

CalculateAvgClicks

Bad:

calculate_avg_clicks, calculateAvgClicks

4、字符间隔

这个可能是最快的,使代码外观变”漂亮”的规则了

Good:

tabPrior <- table(df[df$daysFromOpt < 0, "campaignid"])

Bad:

tabPrior<-table(df[df$daysFromOpt<0,"campaignid"])

这里包含了赋值、逻辑符号以及逗点分隔。

# 在R里面尽量少用 =

在函数里:

Good:

if (debug)

Bad:

if(debug)

5、代码组织

尤其是做项目的话,以下信息是必须有的:

  1. 版权声明
  2. 作者注释
  3. 文件说明,项目目的,输入和输出的说明
  4. source() 和 library() 说明
  5. 函数定义
  6. 其他

6、注释

养成良好的注释习惯

  • 单行注释以 # 开头,加一个空格
  • 短注释需要在代码后面空两格,然后 # ,再加一个空格

最后再一次推荐使用Emacs+ESS,虽然我已经折腾n多次了~~

永久链接:http://www.bjt.name/2010/11/google-r-code-style

 

声明1:估计这篇博文的受众会很少很少……

声明2:请将下载的漫画于24小时内删除,balabala……

话说到,为了保护我已经不太好的视力,前几天购置了一台Kindle DX,用来阅读电脑上大量存在电脑中的的pdf格式电子书。这个东东确实比较强悍,除了对这些pdf文字书籍支持比较不错外(当然有些书籍需要进行一些处理),对pdf格式的漫画支持更赞。

而我是一个彻底的漫粉,闲暇之余,从网上下载jpg格式的漫画(推荐下载工具ComicAiII),悠然自得看漫画,实在惬意的很~~

不过,有些下载的漫画有些问题,比如下面的这种的:

如果直接合并为pdf在Kindle DX上阅读,纵向显示的话,上下各有很大一块白边,画面非常小;

如果横向显示,效果更差,底部有一部分不能显示。想看完两页漫画的话,需要向上下翻页反复操作:

琢磨来琢磨去,还是得手动把漫画裁剪为适合Kindle阅读的大小(Kindle DX的标准9英寸屏显示区域和32开纸大小接近),并且把裁剪后的漫画顺序调换(日本漫画的阅读习惯是从左向右)。

说白了需要对每页jpg漫画做两件事:

  • 从中间分割,将一张jpg图片变为两张;
  • 为左右两张子图的增加顺序标记。

如果将分割的两张图片,右边图增加_0,左边图增加_1,即可满足要求。拿上面的086.jpg举例:170页(即右边部分)会被命名为086_0.jpg,171页会被命名为086_1.jpg,由于有了0、1标记,这样所有更新过的jpg合并为pdf文件的话,即可保证顺序的正确。

这一过程使用ImageMagickR来实现(Windows XP平台):

假如你的火影忍者的目录为D:/漫画/Naruto04,文件为001.jpg、002.jpg……,

setwd("D:/漫画/Naruto04")
dd <- dir()
ff <- function(x){
    convert <- paste("convert " , x ,
                     " -crop 2x1@ +repage +adjoin ",
                     "%d_",substr(x,1,3),".jpg",sep = '')
    shell(convert)
    reverse0 <- paste("convert " , "0_", x ,
                      " ", substr(x,1,3), "_1.jpg", sep = '')
    reverse1 <- paste("convert " , "1_", x ,
                      " ", substr(x,1,3), "_0.jpg", sep = '')
    shell(reverse0)
    shell(reverse1)
    shell(paste("del " ,"0_", x , sep = ''))
    shell(paste("del " ,"1_", x , sep = ''))
    shell(paste("del " , x , sep = ''))
}

for (j in dd) ff(j)
shell(paste('convert *.jpg ', '1.pdf',sep = ''))
注意:目标文件夹的所有文件将被替换!

最后要强调的是,虽然Kindle没有辐射,和一般的纸质书区别不大,但看多了仍然有损视力 ^_^

 

上周末一时无聊,跟朋友跑去看房子。回来总结一下,当作经验和大家分享一下。现在这年代,看房子主角向来都是职业顾问(俗称中介),跟中介打交道,斗智斗勇那是相当有意思!回想起来,看房子的过程,几乎可以说是一部部大片的集合!且请听我细细道来:

## 看房子的地带有些远,通州九棵树附近(北京除了五棵松以外,还有九棵树,囧) ##

因为不是自己买房子,所以心态比较随意。等我睡饱爬起,吃过早饭,收拾妥当已然11点有余。慢条斯理的奔向长椿街,记录了一下从长椿街到九棵树的地铁运行时间,差不多1小时。出轻轨,打黑车,果然被黑之,忍之……

奔向朋友看中的房子,留意了一下小区的环境——环境确实非常不错,低密度6层板楼,让人很放松的感觉。房主是个搞艺术的,内部装修非常有品位,当听到中介MM说物业费是每月0.9元时,我自己差点没忍不住,要出手。

警匪篇

我见到的第二波中介一行有5个,其中三个男的,各个满脸横肉,凶神恶煞一般,若不是说带我们去看房子,我还真把他们当成劫匪了。不过最让我纳闷的是,总共就我们3个看房的,来5个中介陪同,兴师动众。搞得卖房的业主开门时都愣了,明显提高了警觉(估计当时想的是不是抢劫)。

这段时间中介日子不好过,真热情啊~~

科技篇

第三波中介是店长加助理组合(一个中介店面会有3、4个店长),店长颇能侃,一边走一边胡扯,其实聊的和房子没点实际关系。更牛的是,最后一套房子也没给我们看,直接把我们忽悠到他店里了,现在想想也纳闷的很,怎么当时就听他的了。

最奇怪的是,进到他们的店里,我们3人的手机全没信号。本来,一路上不同的中介给我们通电话,突然手机没了信号,没有电话可接,相当不习惯。中介谈生意的手段非常高明:许诺我们中意的那套房子的业主30分钟必到,马上可以进入真刀真枪的划价阶段。然而30分钟过后……中介解释为:在路上,再等30分钟……又一个30分钟过去,中介解释:下班点,路上,有些堵(周日,囧),再等一刻钟……仍没到,解释:手机打不通了!不信你听听~~再等5分钟……演的真像,绝对不亚于我们敬爱的影帝爷爷。

就这样从4点半耗到了7点。事后我又看了看别人看房经历,发现中介店里都会有个房间可以屏蔽手机信号的,为什么把我们拉到店里,恐怕是不想让别的中介从抢走这单生意吧(高科技成就业务,真NB了)。

惊悚篇

第四波中介是两小伙儿,其中的一个文质彬彬,颇有好感。路上,聊到我们刚刚看的一套房子,中介告诉我们,那是小区里最便宜的一套。而后问我们,上一波的中介有没有告诉我们便宜的原因。当时我就冒疑问了,里面还有文章?

中介小伙儿说,你们没看到他们正对楼下的红垫子么?没觉得有问题?我心说了,估计可能要说屋里面有人去世之类的话题,不过也很正常么。但后来,中介小伙儿说的话还是让我打了个冷战:

“这楼下住了个老头,就一个人儿,有天直接挂在屋里了,但也没人知道。过了一个月,天气炎热,尸体腐烂,散发出恶臭才被邻居发现……后来医院过来人,整个楼都是福尔马林消毒水。上面的住户受不了,想快速出手……”

惊悚归惊悚,我其实是对着老头的子女是很有看法的。老头就一个人,不在身边照顾就罢了,电话也不勤着点打。真是林子大了,什么鸟都有。

后编

中介MM,中介GG都太牛了,坐在屋里谈费用的时候,手里只用一台20元的计算器完全搞定。嘴里还念叨着,这我们可以给你避税,这儿我们有优惠……

我还好事了一下,提议搞个Excel表,把房价输入,生成明细单,你我这边都省时间。结果被中介鄙视了一下,理由是周围政策环境变化是很快的,这东西只能装脑子里(言外之意,只能意会不能言传,额……)

据中介说,买房子有个费用叫“代书费”,是北京建委收的,收费的缘由是要求网签,而网签是由建委“代书”的,故要收这一笔。问题是,这笔费用不是常量,而是房价×0.5%,也是一笔不小的银子。我没忍住又好事了一把,搜了一下所谓的“代书费”,原来又是中介巧立名目。实际是“10元工本费和80元手续费”。

额,这中介也太无良了吧!

 

自第三届中国R语言会议至今,已经有些时日了。说想把培训材料再好好整理一下,无奈项目比较紧张,只好简单修改了下。回顾材料——发现写的少,讲的多……
闲话少说,下面是材料的链接:slides 版本和 print 版本。

© 2012 刘思喆 @ 贝吉塔行星 Suffusion theme by Sayontan Sinha