kaggle-zillows竞赛的变量分析

最近做了kaggle网站的zillowst竞赛,也学到了不少。这次zillows给的文件有60个变量,各种各样比如泳池,壁炉,房间数等等,一眼看过去会晕死。所以如何处理变量也是比较费心思和时间的,下面小结一下自己的一点心得。

首先把train和test合并,然后将缺失值排序。

train<-merge.data.frame(train_2016,properties_2016,by="parcelid")

res<-sapply(train,function(x) sum(is.na(x)))
miss<-sort(res,decreasing=T)
  1. 按照缺失值排列,看出很多id是大量缺失的,果断的删掉一些不重要的id,比如hashottuborspa。
train_left<-train_left[,names(train_left)!=c('hashottuborspa')] 

查看数据的相关性
从图中可以看出,很多变量本身是彼此联系的,比如跟tax有关的,跟pool有关的,跟sqfeet有关的。根据不同因素查看彼此关系。
ie 看看几个tax变量之间的关系,用corrplot可视化

tax<- data.frame(cbind(train_left$landtaxvaluedollarcnt,train_left$structuretaxvaluedollarcnt,train_left$taxvaluedollarcnt,train_left$taxamount))
corrplot(cor(tax, use="complete.obs"), type="lower"

这里的代码我写的不太好,一个个搜索再添加笨了点。应该可以用字符串tax找出相关变量,自动形成数据框。以后查下怎么写。



这里可以看出,taxamount和其他tax变量关系密切,从lm也可以做出类似分析,所以删去taxamount以免重复。类似的不再赘述。

train_left<-train[,names(train)!=c('taxamount')]
  1. 线性分析补足变量的缺失值
    zillows文件集里,对于bedroom和bathroom的变量也很啰嗦,有好几个来来回回的,比如'calculatedbathnbr'这个和bathroom类似,被我嫌弃的删除。然后其他有点关系又没有重复的几个变量,可以用lm函数,看看之间的关系。比如这里fullbathcnt和bathroomcnt,p值超小,R的平方值很多,而且bathroomcnt几乎没有缺失,所以可以用线性方程的系数补足fullbathcnt的缺失值。


train_left$fullbathcnt[is.na(train_left$fullbathcnt)]<-(-0.001002)+0.970993*train_left$bathroomcnt[is.na(train_left$calculatedbathnbr)]
  1. 某些变量用平均数或中位数补值,比如这个楼层数,以1和2层的居多,两者的平均数是1.63(虽然在现实中不存在)。
    建成的年代用中位数补值。
train_left$numberofstories[is.na(train_left$numberofstories)]<-1.63
train_left$yearbuilt[is.na(train_left$yearbuilt)]<-median(train_left$fullbath,na.rm=T)

以上这些办法,也可以利用mice包等自动插值函数,或者逐步回归等自动筛选,我这样做,是感觉自己比较能有主导性,知其然也知其所以然吧。

  1. 部分非实际数值的类型比如fips,就是66这种zillows内部代码,所以进行因子化分类。
train_left$propertylandusetypeid<-factor(train$propertylandusetypeid)
train_left$fips<-factor(train_left$fips)
  1. 对于有或无的设施,根据kaggle论坛经验,设为-1比设为1更有效果。
train_left$fireplaceflag[is.na(train_left$fireplaceflag)]<-(-1)
train_left$fireplaceflag[!is.na(train_left$fireplaceflag)]<-1
  1. 日期也进行因子化。
train_left$transactiondate<-as.Date(train$transactiondate,format="%m%d%Y")
train_left$transactiondate<-as.factor(train_left$transactiondate)

......
忙活了半天,终于可以开始运算了。
自从xgb这个大杀器出来以后,大部分的参与者都是用了这个算法,当然调参各有千秋。我在这方面大概还算是个小白。

另外影响成绩的,还有房屋地点和交易时间的分类,这步我还没有找到好的调整方法。
另外zillows只公布了一年的数据,用来预测2016-2017共六个月的数据有点立场不足。他们的对策也很搞,在截止前两周,会再发布新的日期数据。估计到时候大家又是一场手忙脚乱。


All in all, features的取舍和补值是数据分析中重要的一步,但不是最重要的一步。最近看kaggle上面巴黎银行的竞赛复盘,把其中的变量大胆的删掉了20多个,只留下13个变量,但是接下来,按照获奖者的思路,把某个变量(他怎么找到的?)与其他变量相结合,做出了magic feature的矩阵,然后用xgb运算后,也可以得到前30名。能力,时间,运气,缺一不可呀。

个人思路,供参考。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • [TOC] About Trs 只是阅读过程中对其中一些进行注脚而已,更确切的内容还是英文原文来的清晰,有些翻译反...
    mrlevo520阅读 1,180评论 0 0
  • 特征选择 特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们...
    hzyido阅读 6,566评论 1 16
  • 你们相信只是因为名字就从此再也忘不掉那个名字的主人吗。 他叫苏炳尘,一个懵懂少年,本来他的生活平淡无奇,每天学习之...
    凉城丨阅读 174评论 0 0
  • 前段时间电视剧《夏至未至》热播,让我们这一波人又温习了这部温暖的青春期的书,重新感受了胡夏的校园式音乐,让我们重新...
    麦大西阅读 323评论 0 1
  • 读萧红的文字,如品一杯清茶,宁静,恬淡,幽远。 “严冬一封锁了大地的时候,则大地满地裂着口。从南到北,从东到西,几...
    布衣荆钗阅读 634评论 0 1