昨天的做的事情脉络还比较清晰
1、写前一天的小结,主要是总结阿三那骚气的EDA技术,里面着实学到不少东西
2、写完第一个记得已经是下午3点过了,开始弄channel的rolling variable上线的事情,也还是老套路了,改SQL/表添加字段/设计权重等
3、上午给新同事布置了新的任务,大概讲解了一下表结构
4、2做完后,开始继续未完成的EDA,最后部分的EDA用到了ggplot这个函数,乍一看,这个函数很复杂,因为形式很特别,是几个函数加合在一起画图,这个设计比较罕见,看了下文档,发现思想异常简单,思想就是一张画布,layer一层一层往上添加就ok,散点是一层,拟合曲线又是一层,第一层是大家要用到的一些数据,这些素材似乎被称为aesthetics,例如
ggplot(aes(x='yearbuilt',y='logerror'), data=train_df) + geom_point(color='steelblue', size=0.5) + stat_smooth()
ggplot是基础层,相当于画布,声明一些x,y,data,geom_point负责散点的绘制,stat_smooth生成拟合曲线
ggplot还可以很方便的根据因变量去作图
ggplot(aes(x='',y='',color=''), data=train_df) + \
geom_point(alpha=0.7) +\
scale_color_gradient(low='#E1FA72',high='#F46FEE')
颜色可以用RGB16进制表达
ggplot还有一个彩蛋函数geom_now_its_art(),可以强制放置一个鸟到图上
5、最后说一下ggplot的安装,我安装过程中还是有一些曲折,开始直接用conda installl ggplot安装,提醒我只有一个r-ggplot,结果我就去安了这个r-ggplot,发现这个是r语言的,fuck,anaconda还支持R语言?然后删除了这个,搜到了conda的安装方法,要用conda install -c conda-forge ggplot,这个安装会update一些包,升级一些包,废弃一些包,downgrade一些包,废弃一些包,我发现有些是降级,有些是评级,有些是平台版本号发生差异,我并没有懂是为什么,比如py27_0变成py27_2,没懂什么意思,关于为什么有这么多需要调整,和KEN讨论了一下,是因为这个包仅仅支持这些版本的依赖,但是完全有可能其他包又需要更高的依赖,这就导致了按照提示,改变了某些包的版本,有些包又变得无法使用了,我之前的QT包,也有可能就是这个原因,但是通过安装ggplot,qt包降级了,我又可以使用ipython的魔法命令%matplotlib qt了,但是ggplot的跑起来还是有问题,其他有个函数包用到了DataFrame.sort方法,这个在最新的pandas中应该已经废除了,我去源码中改成了sort_values(by=),我后来想了一下future_warning的机制就应该是对方module想要废除,中间几个过度版本,会存在两个方法,但是调用旧方法会raise一个future warning的错误,然后再过几个版本,就不再提供旧方法,调用旧方法就直接报错。最后一点就是以后安装包的时候注意一下,conda那些需要改变的依赖,防止其他module不能使用