Categories
我的生活状态

湾区的一些感受

以前来美国都是出差,反正公司管吃管住,大部分东西都不怎么操心,其实还是挺不一样的。这次是真的搬过来了,就要跟各个政府部分打交道,此时才算是真正和这个社会制度开始打交道。

我是一种对美国既不喜欢也不讨厌的状态。这次搬过来也只是想换个环境增加一点人生阅历,并非抱着一种特别崇敬的心情来看的(也可能是在欧洲待过之后已经明白了“外国的月亮也不总是圆圆的”那样的道理)。

税收制度。我现在接触到的还只是个税。美国的个税是真正意义上的“所得税”,允许有很多项目的抵扣,而不像中国的个税基本就是一个“流转税”,按工资流水交完了就完了。以前觉得欧洲税高,现在看美国税率也不低,乱七八糟扣完了手里真没什么钱了(加州有州税)。说到州税也就是美国特色的联邦-州政府制度。中国虽然是有国税和地税之分,但至少在个人所得税这里我们只需要交一次就好了。美国就要两层盘剥(取决于每个州的税制),包括法律也是,每个州都有自己的法律。而且对个人来讲最崩溃的就是要全球交税——比如我在中国有房租收入,按税法那也要交美国的税(中国已经交过的可以抵扣)。

社保。社保某种意义上就是交税,这个全球各个国家都类似,我还真没看到哪里是真正的“现收后付”,基本都是“现收现付”吧。美国乱七八糟的社保交了一堆然后发现医保还是额外买的,我至今也没太搞明白扣的一堆都是什么钱,就当交税了吧。反正在上海也是扣8%社保2%医保什么的。我刚来没几天就跑到社会安全局那里去办理ssn了,美国好像没有身份证号一说,反正ssn大概是最好的个人识别的方式了,办银行卡啊什么都靠这个。但是这东西又不象国内的身份证那样可以当证件用,这个号码居然是要保密的,这张卡也就是薄薄一张纸片,需要藏起来....

投票权。反正这个是建立在交税基础上的,刚来不久就收到呼吁停止扩建milpitas垃圾场的传单。民主有民主的玩法。

信用制度。这是除了民主之外大家羡慕美国最多的?反正我还没觉得这东西有啥特殊...

驾照。DMV应该是我到了加州之后跑的次数最多的地儿了。有意思的是,DMV除了处理跟车和驾照有关的东西,还可以申请一张id,非驾照的id。还有就是出门就要开车,这个挺讨厌的。

地址。美国好像办什么东西都特别看重地址。开银行账户需要提供带有地址的文件,办理驾照什么也都靠地址,信用卡网上购物还要验证billing address(以前用国内信用卡海淘的时候这个都是随便过的)。搬家了要通知劳工局,要通知银行,要通知dmv等等,然后美国寄东西也是奇慢无比的,习惯了国内的“江浙沪包邮次日到”只能默默的去搞个amazon prime来实现two day free shipping了。哎。还我顺丰...

房租。湾区房租贵的离谱,哎。2k刀都不一定找得到一室一厅住起来还算放心的房子。至于日常物价什么的,倒是和出差没什么两样,最多就是去超市买东西的次数多了一些。

社交。开车就没得喝酒,好像湾区人民都是过的家庭生活,下班也没见谁去喝酒,除非是生日趴什么的。倒是大大小小的各种meetup一堆堆的,可见大家晚上还是挺无聊的,需要一些活动来打发时间。

好像也没啥了,一个整天上班下班的人应该有啥可以说的呢?美国又不是欧洲,随处走走都是艺术建筑什么...

Categories
游来游去

纪念上海

上海和北京、西安等古老的中国城市不太一样,她太年轻,有活力。这也是每次有人来上海玩的时候我都头疼的一个问题——去哪儿转呢?上海有太多的地方适合朋友聚会什么的,可以找个舒服的角落一坐一下午,但却很难找到一个景点值得玩一天的...

列几个我觉得比较舒服和经典的选项吧。

  • 丽思卡尔顿下午茶。比柏悦 88楼的江景好得多。可以一坐一下午,聊天什么的。当然以后上海中心开了就不知道了。但是柏悦有很好吃的cheese cake。还有一个下午茶一直想去没去成,就是外滩源一号半岛酒店旁边的、前英国领事馆那儿。留着以后吧。
  • 外滩轮渡(晴天晚上)。从复兴码头到对岸浦东,两块钱往返,很划算,可以深刻体会浦东浦西现代与古典的对比...当然有钱且有时间的话可以坐专门的观光船。
  • 和平饭店爵士吧。回味老上海,一首首经典如夜来香,瞬间感觉穿越。
  • 外滩漫步(晴天晚上)。单程1KM左右,兴致好的话可以走到北外滩。
  • 博物馆。上海博物馆,上海艺术馆,城市规划馆什么的,还有若干小博物馆美术馆。还是可以打发不少时间的。
  • 晚饭可以考虑的几个地儿:老码头、那几家公馆、北朝鲜餐厅。
  • 其他可以稍稍逛一下的:田子坊(虽然游客太多)、新天地(个人感觉还不如老码头)。喜欢摩天大厦可以去陆家嘴晃一圈,虽然个人更喜欢陆家嘴后面那个私密的小花园...再无聊的话可以去愚园路什么的晃一圈,或者去徐家汇看看教堂?然后南京路可以走走?

--------- 2015.10 更新 -----------

更新几个好吃好风景:

  • M1nt 这个不用说了,景色一流氛围一流食物也不错。
  • La Farfalla,这次回来发现的意外惊喜。食物很赞很赞。环境也不错,胶州路上安静的很。工作日晚餐也没有很拥挤,但是据说周末下午茶什么的还要等位。
Categories
读书有感

从Variance说起:回归、聚类、残差和方差

前言的废话:有种被统计学洗脑的感觉,跟搞统计的接触的有点太多了吧...哎,算了,难得有点感悟记录一下吧...喵。本文试图以一个典型的统计学的思维过程来叙述,呃,可能功力不足,凑合着看吧,也不枉我连续几天做梦都是直方图 密度曲线 average treatment effect之类的。

-------------------------------------------废话结束了-----------------------------------

Variance这个词很好玩,如果是用在统计的情境中就中文译作方差,公式就是 ,写成列向量(N*1矩阵)的形式就是,1这里是N×1个1的列向量。从公式的形式就可以看出是一个二阶中心距,即距离中心的距离的平方(二阶)和。然后既然是二阶距,那么自然的衡量的就是某个数据集分布的离散情况。越大越散,越小越密。此为一维(这里指只有一个观测维度的情形)相信这样的定义实在是太耳熟能详了。方差有个小弟叫做标准差,就是方差开平方。这个也没啥说的,有意思的是大家习惯用字母来标注他,于是有了著名的六-西格玛原理...好吧,其实最有用的就是正态分布的几个西格玛了(随便偷张图):79f0f736afc37931c22b82ecebc4b74542a911b7.jpg

 

然后我们看简单的二维。二维就是散点图,没什么特别说的。找张著名的散点图来(随便找的,懒得自己去R里面画了。最后还是乖乖的去R里面的画了,还是自己画的好用一些,果然偷懒不容易,唉,我写博客实在是太敬业了!)。

2014-12-27 23_41_46-Plot Zoom

 

背景知识大家可以去自己搜搜,反正就是黄石公园某个自然形成的间歇性喷泉,每次喷发的时间和等待时间的散点图。挺简单的对吧。这个数据点也不多,大家一眼扫过去大概百余个的样子。可是这幅图真的很有意思,跟Variance的联系实在是太紧密了。

我们先来说直觉。如果让你用自然语言(而非统计或者数学公式)来讲述这个图,比如你带这你刚上小学的孩子去黄石公园玩,他好奇的在等待这个喷泉喷发,这个时候你应该怎么跟他讲?嗯,可以大概说一下,“你看基本上呢,你等的时间越久,下一次喷发的时间就越长哦。让我们一起来计时~” 然后小朋友看了一眼图,不服的说到,“什么嘛,明明是等了如果超过一小时(或70分钟),那么下一次基本上喷发时间才会长(4-5分钟)。”。那么到底哪种说法更准确呢?

(吐槽君:自从上次写了乐高机器人之后,落园的段子里面的科普对象就从同学们降低到小朋友了,喵~)

好啦,不跟小朋友玩了,我们得研究一下更fancy一点的方法。说白了就是,用一个什么样的模型可以让经过我们模型处理的Variance尽量的小呢?

嗯,同学们说试试回归呗,明显的正相关性啊。你都说了啊,X的增加Y也在增加(先不要理会因果即X和Y谁先谁后,我们只说相关)。

2014-12-27 23_51_53-Plot Zoom

所以我们虽然得到了一个显著的正相关关系,但是回归模型的R方只有81%(当然已经很好了,只是我们希望更好嘛)。来看看对应的残差分布:

2014-12-27 23_59_10-Plot Zoom残差好像挺散的(最理想的残差就是白噪音了,说明没有任何信息量了),但是隐隐约约也能看出来有两群这样。于是很自然的,有同学说,我们去试试聚类啊。

在去试聚类以前,先说说大名鼎鼎的K-mean算法的一些基石。

上面不是罗嗦了一堆variance在一维情形下的定义嘛,那么推广到二维,也很简单。

定义二维的中心点: ,然后就可以定义二维方差: 每个点到图中心的距离的平方和。看图就知道了。

2014-12-28 00_09_03-Plot Zoom蓝色的就是中心点。这里我们就不罗嗦什么均值容易受极值影响之类的了,那些也是看菜下料的,我们的数据看起来还好。(突然间为什么有种牛郎织女鹊桥相会的即视感...原来古人观星也是有异曲同工之妙呀,天空就是一个大大的散点图——勿喷,我保证下面不跑题了)

 

2014-12-28 00_25_06-Plot Zoom

对于一个线性回归模型来讲,我们看的就是残差项的方差——残差项方差越大,表示他们分布的越散,那模型捕捉到的信息就少。

对于聚类呢,也可以看相应的方差:每个类里面的点到类中心的距离平方和 -> K-means。K-means虽然是通过迭代来实现的,但他的原理大致也是让二维的二阶中心距最小(由每一次迭代的损失函数来决定)。一眼扫过去大概可以分成牛郎织女两堆星星,那么我们就聚两类好了。显然不用跑程序我们也知道,聚成两类之后的组内方差和肯定比直接跟中心点算一个方差要小。

2014-12-28 00_32_00-Plot Zoom聚成两类之后呢,我们类似定义的残差就是两类中每个点距离其中心点的Y轴距离(因为会直接把中心点作为每类的预测值)。还是画个残差图看看。

 

2014-12-28 00_51_13-Plot Zoom红色是K-MEANS给出的残差,蓝色是回归给出的残差。貌似这两个长得还是挺像的,也是左右两群,虽然每群中两者长得都不太一样...这个时候我们就可以回到和小朋友的对话了:你们说的都有道理,都有8成的准确率,谁也没比谁更好很多。

于是我们尝试在每组内再做回归?会有效果么?

2014-12-28 01_01_20-Plot Zoom见效寥寥...引入聚类后回归模型的R方从81%升到了84%,才3个百分点。这主要是在每一类里面,我们很难找到残差的规律了,所以这样只是通过组别信息的增加减少了组间方差,而其实从上图我们也可以看出每个组内的残差方差还是很大的、每条回归拟合线的斜率从最初的10降低到6和4,每个子回归的R方只有10%不到,能给予的信息已经很少了,所以整体模型只是增加了一点点准确性。但是无论如何也比直接玩回归的效果要好(之所以用k-means而不是简单粗暴的用类似x>3.5这样来分成两类,是因为k-means是按照其损失函数优化过的、给出的是最优的两类聚类结果)。

问题来了,为什么我只聚成两类而不是三类五类甚至更多呢?主要是怕过拟合,数据才200多个点,聚太多的话很容易过拟合了。大数据的情况下可以尝试其他办法。

好了,废话了这么多,其实统计学家们已经不仅仅玩这些了。其实我们上面的残差图传达了一个很重要的信息就是残差的分布不是一个白噪声(或者说不是均值为0、方差为常数的正态分布),称之为异方差(Heteroscedasticity)。异方差有很多很多情形,最简单的就是随着X的增加而增加。还是网上随便找了个图:

p109figure异方差的存在使得我们模型的估计(或者基于训练数据预测)精度有限(先不考虑validate- test那些),所以统计建模常年在跟残差项的分布作斗争——反正看到你有什么规律,我就可以提取出来更多的信息放到我的模型中。计量经济学家喜欢说残差项是垃圾桶,但其实也是金矿——没办法呀,资源有限,不能太浪费。

然后是一些补充的废话时间。

Categories
网络新发现

R大神们是这么玩乐高机器人的...

前段时间COS上说Rafael Irizarry用最小二乘法帮小朋友玩乐高,已经觉得很出手不凡了。然后今天直接看到了ev3dev.R这个东西,瞬间觉得整个人都不好了...大家要不要这么geek...71sXXBHsf6L._SL1500_

这种恶意卖萌的对话什么的实在是...总而言之,这货已经开始被进化了...

SER: Tell us more about the R part.
SERATRON: I am running RServe server. PCs can communicate with me using RSclient. They do all the heavy computations for me, I can’t be bothered (I have no FPU, can you imagine?!?). Those PCs think they can command me…

SER: Why do you have two servo motors?
SERATRON: So that I can move, you silly!

SER: Hmm, why do you have an infrared sensor?
SERATRON: So that I can avoid obstacles and I will not fall from height. Why do you have eyes donkey?

SER: Errrrrr, what are your touch sensors for?
SERATRON: They also prevent me from falling from height. If I don’t feel the surface below me I am not going to move. Would you?

SER: Ok, last question you naughty robot! What is your gyroscope and accelerometer for?
SERATRON: Can’t you count? It’s not one question but two. I use gyro to know my heading direction. No dumbass, not for balancing, I don’t use it in this axis. I don’t use accelerometer now but I could use tilt input as a third level protection from falling. I could also use it to detect collisions with other objects but I have other means.

SER: It was a pleasure to meet you (coughs), thank you.
SERATRON: I hope I will be finished for SER VII – 08.12.2014!

SERVIIRobot2

总而言之这货已经可以自我前进、躲避障碍什么的,为嘛我想起来的是我家那个扫地机器人iRobot 380t?

iRobot-Braava_thumb

对了,卖萌视频在此:http://www.r-bloggers.com/interview-with-seratron-lego-ev3-robot-driven-by-r/

Categories
读书有感

R vs Python: data frame和高速数据整理

由于种种的原因,我的feedly里面很多东西很久没看了...今儿抽时间看来一下,貌似是十一月份的热点是dplyr, data.table或者说,data.frame高速操作的各种办法。

http://www.r-bloggers.com/dplyr-and-a-very-basic-benchmark/

这里有有个蛮有意思的比较,抄过来:

base dplyr-df dplyr-dt dplyr-dt-k dt dt-k
Filter筛选 2 1 1 1 1 1
Sort排序 30-60 20-30 1.5-3 [1] 1.5-3 [1]
New column加列 1 1 (6) 4 (6) 4 (4) 1 (4) 1
Aggregation加总 8-100 4-30 4-6 1.5 1.5-5 1
Join合并 >100 4-15 4-6 1.5-2.5 - 1

从base的最基本函数,到dplyr+data.frame, 到dplyr+data.table,到dplyr+data.table+key,挺神奇的...我一直比较依赖的数据整理的包有两个:plyr和data.table,现在终于看到一丝更加有效率的曙光了。顺便作者还和pandas比了一下...这是为了杜绝我多用python的决心么?我一直试图努力的多用一点python,看来越来越不可能了...

pandas data.table
Aggregate 1.5 1
Aggregate (keys/pre-sorted) 0.4 0.2
Join 5.9 -
Join (keys/pre-sorted) 2.1 0.5
Creating keys (sort) 3.7 0.7

话说,谁来进一步搞一下稀疏矩阵啊?我现在对这货比较依赖...