python
文章平均质量分 59
strwolf
这个作者很懒,什么都没留下…
展开
-
2017.08.15回顾
1、IV计算时候前面的系数推导,反正结论一句话,odds固定,样本数越多,IV分量越大2、为什么不能用bad rate去编码,我搜了很多资料但是没得到结果,我也和别人讨论,在群中提问,但目前无人回答3、拒绝推断到底有没有必要,这个有联系到变量分布,PSI等问题,而且现在通过率相当低,下一次迭代模型,有可能看见有个变量并没有区隔度了,因为都是高分段了,区隔自然差,但实际上别人是有区隔度的在总原创 2017-08-15 21:36:53 · 467 阅读 · 3 评论 -
2017.07.04回顾 dataframe组合 groupby sort to_csv不存index
今天主要是建模的事情,小结一下1、我使用了6种不同的y定义,然后写了一个程序去计算平均iv,这个程序中主要是对pandas的回顾多dataframe的组合,pd.concat((df1,df2,df3,df4,df5,df6),ignore_index=True)默认axis=0,就按行组合,相同的表头会忽略掉,重新起序号,用ignore_index = Truedf的groupb原创 2017-07-04 20:56:12 · 3505 阅读 · 0 评论 -
2017.06.13回顾 series筛选
1、上午涉及到几天的小结,所以差不多用了一个上午的时间,小结中确定了早睡的督促办法2、做员工贷的逻辑,没什么新东西,写了新的逻辑3、尝试了7C的最大授信逻辑,但是有一些问题,搁置了4、然后就是同盾的在网时长改版的问题5、晚上主要是做标准评分卡的工具包,主要解决几个问题,一个是离散化的问题,离散化只能按照去重后的value个数来,还有就是没写group数量太小,结果不稳定的问题,类似原创 2017-06-13 10:31:38 · 2879 阅读 · 0 评论 -
2017.07.03回顾 matplotlib作两个y轴图形
今天主要是解决python绘图的问题,基本上是完成了一个可以交付的图形,像这样也就是共用一个x轴,有两个y轴,我参照matplotlib官方的example,写了个定值的demo,然后结合自己的程序,也了一个变量化的,先看看demofig, ax1 = plt.subplots() #生成一个图对象,一个坐标对象#fig.subplots_adjust(left=0.2, right原创 2017-07-03 21:11:20 · 1001 阅读 · 0 评论 -
2017.07.06-2017.07.07回顾 信息熵的坑 多重共线性实践
上周最后两天比较忙,没来得及写小结,这里补充一下上周还是忙建模的事情,稳定性上进行一些新的探索,周四还面试了几个人,有些知识不用确实容易忘记,但是有什么办法了,只有一遍一遍去理解,面试别人的时候也不用着急,也不要怕丢人,现场去推理,这样也可以检验对方的水平,就是个探讨,技术上没有什么丢人不丢人原创 2017-07-11 11:21:27 · 504 阅读 · 1 评论 -
2017.06.15-2016.06.18回顾 loc/iloc/ix dataframe相关 oracle无自增去重 correl
上周最后阶段比较忙,主要是忙jd的数据测试的事情还有就是各种新产品的事情,下面回顾一下这段时间的工作。1、上周四快下班的时候开了一个新产品的会,初步确定了风控策略,但是接近下班的时候又告诉我另外一个新产品需要紧急上线,同时jd的数据到了,草草看了下就下班了2、pandas中loc/iloc/ix区别,loc按行名列名索引,iloc按下标索引(可以切片),ix可以混合前面两种索引方式,df不原创 2017-06-20 10:37:46 · 429 阅读 · 0 评论 -
2017.06.07回顾 requests
1、上午写小结写了大概一个多小时吧,然后调整了一些地区规则2、调查了老客户的一些拒绝原因3、review了前海常贷客数据,发现产品本身,和数据仓库的一些问题,还需要进一步弄明白4、快下班的时候开始学习requests模块的用法,然后尝试retry,retry这一块我找了很多资料,未找到解决方案,果然一google就出来了,方法类似于urllib2,retry配置是建一个sessions原创 2017-06-07 20:55:21 · 213 阅读 · 0 评论 -
2017.06.06回顾 三种构造dataframe的方法 多重共线性开坑
1、和星期一上午一样的问题,就是精神不好,打瞌睡,我后面的主要工作就是把注册信息变量提取整理做到建模表中,上午还日常看了下股票,亏得他妈一塌糊涂2、下午一来就是继续v7的开发,关于上一个工作日的两个list合成dataframe的方法,我觉得是存在问题,感觉到太繁琐了,我于是查了下资料,我震惊了,原来那么简单,我并且根据这个总结了三种不同的构造dataframe的方法#三种构造datafr原创 2017-06-07 10:43:59 · 2142 阅读 · 0 评论 -
2017.06.05回顾 dataframe找到喊缺失值的column list组成dataframe
上午精神不是很好,有点瞌睡,看了下周边,群里面水了几句1、思考了下模型评价的问题2、决策引擎修改3、继续建v7,首先建了个轮子,找出dataframe中的缺失值,用isnull写一个函数,我开始也大概想到这种思路的,但是还是在不遗余力地寻找现成的方法def find_na_column(df): miss_columns = [] for column in df:原创 2017-06-06 10:15:53 · 1280 阅读 · 0 评论 -
2017.05.09回顾 pandas使用记录
1、给决策引擎P2做了一个伪接口方便测试,做完伪接口还剩1个多小时,我他妈干什么了呢?我怎么想不起了2、下午主要就是思考Simon留下的那个问题,几乎思考了一下午,把结论写在了上次挖坑的地方3、下午同时也解决了加解密的问题,那个软件可以授权进程就ok了4、晚上主要是写程序解决最佳同盾多头阈值寻找的问题,在这个过程中,我再一次熟悉了pandas的很多用法读取csv成dataf原创 2017-05-10 11:02:56 · 768 阅读 · 0 评论 -
2017.05.16回顾 mysql索引 format
1、上午主要是写小结,其间同事问了个问题,我从中也学到了一些新的写法,关于str.format方法可以类似于这种lista = [1234,234,555]lista = map(lambda x:str(x),lista)my_sql = 'select * FROM balabala WHERE customId IN ({0}) and phone = (\'{1}\')'.format原创 2017-05-17 10:46:47 · 247 阅读 · 0 评论 -
2017.05.15回顾 numpy新东西学习 scoreatpercentile
1、昨天上午精神不是太好,周末玩太疯没完全恢复过来,上午主要就是解决了那天抓付款方式那个SQL的问题,我用了单步调试的方法搞清楚了表与表之间的关系,这种SQL写法感觉也是一种我不太常用的思路,而且有时候把条件写在where后面是有道理的,做一种过滤,join是无法达到那种效果的2、下午对前置模型做了一些调整,温习了一个新的方法has_key,dict.has_key(key_name),如果有原创 2017-05-16 11:47:03 · 3370 阅读 · 0 评论 -
2017.05.23回顾 python引用赋值 reset_index pd.concat
这两天实在是太忙,甚至都忽略了写博客,今天把23和24的博客补起来,节奏不能乱,不管多忙,老子都要写博客,磨刀不费砍柴时,博客写好,后续的工作效率会更高1、23号我上主要是在建模写拉数据的SQL,上午基本完成2、测试来找我改一些假接口,测试FOX的写入需求,中午完成,都是有bug,下午改了几次3、IT来找我,对AS结果进行组合,改好上线4、下午剩余的时间继续建模,我对别人的WOE工原创 2017-05-25 10:19:26 · 2621 阅读 · 0 评论 -
2017.05.10回顾 numpy学习 其他python woe iv实现参考
1、昨天早上一来写小结都花了1个多小时,到11点3分结束,期间我在小结pandas相关用法的过程中,领悟了新的建空dataframe,然后不断append的方法2、小结完后,监控了一下坏账和模型运行状况3、上午小结完后,开始着手,合作方黑名单的问题,进行了一些设计和思考,还有处理一些杂事,比如解答boss的疑惑,差不多上午结束4、下午继续合作方黑名单的问题,进行了一系列修改,没什么新东原创 2017-05-11 11:15:10 · 6552 阅读 · 0 评论 -
2017.03.21回顾 WHERE GROUP BY 和 GROUP BY HAVING None numpy矩阵相关 matplotlib.pyplot画图
1、昨天模型主要做了几个改动,添加了一种机制去限制快速还款的老客户的下次贷款金额,修改了老客户进入通过域,随机通过和拒绝比例,在这修改的过程中是否遇到什么技术难题?没什么新问题,只是上线前测试是非常必要的!好几个问题都是测试中发现的!2、我之前有个SQL误区,我认为group by了条件语句只能在后面having去引导,但是实践中我发现,where语句后是可以跟group by语句的,grou原创 2017-03-22 16:47:40 · 530 阅读 · 0 评论 -
2017.03.07回顾 GBDT前面树权重更大 python散点图
1、确定数据传输格式2、看了下通过率方面的问题3、下午开始研究GBDT相关问题,我最开始的疑问,是不是前面的树的权重大,对于我实际的数据集大多数样本点是这样的,少部分比较反常,但是我后来换了一个标准数据集,由于数据集太好了,损失函数直接就收敛到0了,所以每个点的预测值也是收敛到一个非常大非常小的值,在expit函数下,大概绝对值8,数值就很接近1或0了,然后前面收敛曲线基本上接近于一条直线原创 2017-03-08 15:03:26 · 1265 阅读 · 0 评论 -
2017.06.13回顾 series筛选赋值不是deepcopy?
1、在网时长的逻辑重新修正2、桔子的事情已经是停止了3、非银联合作银行的事情开发了一半,被打断4、拒绝疑似欺诈业务员5、开会6、面试7、晚上继续开发那一套python标准评分卡工具箱,就是解决那两个bug,解决了我一晚上series的筛选赋值,是赋值到copy上,但是实际上却赋值成功,昨天和洋神讨论的是这个机制是copy,不保险,并不是deepcopy。另外一个bug是,我原创 2017-06-14 11:41:00 · 619 阅读 · 0 评论 -
2017.07.05回顾
1、今天他妈的上午又干了一些没用的事情,去给运营进行一些解释,但是也发现自身模型数据存储的必要性,这个也是急切地打对方脸,现在事情这么多其实没必要这么急切打别人脸,考虑好优先级2、下午就是决策引擎调整的事情3、剩余的时间又开始建模,这次我是很正式的筛选出了模型变量,为了考虑所选自变量的稳定性,我在6个不同的因变量上计算平均iv,筛选出大于0.03的,在时间维度上,我用了我建模正式定义的真正原创 2017-07-05 20:11:09 · 216 阅读 · 0 评论 -
2017.06.14回顾 dtype相关 Series平均数 type_of_target
1、Series计算平均数,df[column].mean()2、上午给同事讲了很久的关于验证四变量模型少掉两个变量仍具备有效性的证明,这个过程中也被多次打断3、讲完开始写昨日总结4、ndarray只能有一种数据类型,就是其中每个元素的类型,不能说每一列一个类型5、np.sctypeDict可以查dtype类型dict,有很多不同的表达方法,其实是说的一个类,np.str_和np.原创 2017-06-15 11:15:14 · 1068 阅读 · 0 评论 -
2017.07.26回顾 ggplot初探
昨天的做的事情脉络还比较清晰1、写前一天的小结,主要是总结阿三那骚气的EDA技术,里面着实学到不少东西2、写完第一个记得已经是下午3点过了,开始弄channel的rolling variable上线的事情,也还是老套路了,改SQL/表添加字段/设计权重等3、上午给新同事布置了新的任务,大概讲解了一下表结构4、2做完后,开始继续未完成的EDA,最后部分的EDA用到了ggplot这个函原创 2017-07-27 10:20:20 · 333 阅读 · 0 评论 -
2017.08.11回顾
1、完成前一天没有写完的回顾,然后相关知识点进行了实践和搜索学习2、和同事讨论,psi和woe变化的研究,进展还可以,我需要去check思考一下,最后精准量化结论3、fork了一个脚本,发现kaggle跑和本地跑结果有差异,不知道是什么情况4、lightGBM参数学习,lightGBM直接支持哑变量似的分隔操作,没有dummy编码,但是在分裂的时候,会考虑1个类和其他类这种分化,主要好原创 2017-08-11 11:00:06 · 451 阅读 · 0 评论 -
2017.07.25回顾 骚气EDA研究学习
1、上午主要是开发新的rolling variable,算出woe,明天可以完成2、另外一个主要工作是和新同事交流,关于两个变量分布变化对woe的影响,有一些新的发现,我推翻了昨天自己的猜想,也就是分布变化,woe一定会改变,我发现是能构造出分布改变,但是woe不变的情况,而且分布的变化是能通过卡方检验的,还有就是第二个猜想,分布变化越大,woe变化越大,同事构造的一些数据也说明了不一定成立,原创 2017-07-26 15:14:19 · 603 阅读 · 0 评论 -
2017.08.09回顾 seaborn两个坐标系 series中mixtype sorted key
1、上午对现有决策引擎做了一些简单修改,没什么技术含量,注意的地方就是条件概率的计算2、继续SQL抓取数据集,没什么技术含量,后来发现中间少抓了几个变量,已经补上,后面还需要check看是否遗漏变量3、有了数据集,又开始耍自己的评分卡工具包,对工具包做了一些修改,美化barplot/修正排序BUG/regroup写成静态方法,过程中发现一些问题,也有一些收获我发现我给int64原创 2017-08-10 14:10:08 · 1583 阅读 · 0 评论 -
2017.08.02回顾 centos安装anaconda/xgboost linux操作系统信息 top内存CPU notebook注释 feature多
1、centos下安装anaconda,参考http://devopspy.com/python/anaconda-centos-7/wget https://repo.continuum.io/archive/Anaconda2-4.3.0-Linux-x86_64.shbash Anaconda2-4.3.0-Linux-x86_64.sh #这一步,bash本来就是默原创 2017-08-02 20:51:25 · 877 阅读 · 0 评论 -
2017.08.01回顾 xgboost get_dummies 尽可能留变量
节奏不要乱,做应该做的事情,一些不应该做的事情需要克制!1、上午就是抓取建模变量,对变量做一些初步encode的工作,集中注意力弄了一上午,应该完成了1/32 、继续zillow数据建模,有几点收获:xgboost的基分类器是CART,但是也可以用线性分类器,booster参数可以设置,似乎还有一个名叫dart的分类器,听朋友说是神经网络相关的整理了所有变量的预处理方法尝试了d原创 2017-08-02 10:42:48 · 1362 阅读 · 0 评论 -
2017.07.24回顾 plt.hist直方图绘制
今天是新的一周的第一天,状态不是很好,还沉浸在周末的喜悦之中,无论好与坏,还是对今天的工作做一个小结吧。1、完成了接口的拆分上线,一些检查和督促工作2、和新人讨论关于两个变量分布变化影响的问题,一个是看了改变前后的变化,实际上14号改变前后变化并不大,看起来像是按比例分配到后面的value上去,但是也有一些轻微的左偏,说明建模数据集的分布和14号之前全量的客户数据分布存在一定的差异,建模的原创 2017-07-24 21:02:23 · 4247 阅读 · 0 评论 -
2017.08.08回顾 ensemble
1、ensemble的层次是这样的baseline是常数,是训练集因变量的平均xgb = w1*xgb1 + (1-w1)*xgb2trees = w2*gbm + w3*xgb + (1-w2-w3)*baselinefinal = w4*OLS + (1-w4)*trees作者独立的model也是直接fork别人的,lightgbm/xgb without outliers原创 2017-08-08 21:13:15 · 313 阅读 · 0 评论 -
2017.08.07回顾
我也不明白为什么,睡觉时间有这么久,但是早上来到办公室状态好差,很困,不知道是不是星期一综合征1、上午带着浓烈的睡意,补全了上周的日志,然后解决了线上系统一个BUG,开始弄数据集,又发现了一些问题2、下午主要是回答邮件的内容,写一些SQL查数据解决对方的疑惑3、linux安装lightGBM很方便,pip install lightgbm,windows安装会报一个编码错误,原因不明原创 2017-08-07 21:09:47 · 268 阅读 · 0 评论 -
2017.07.31回顾 LabelEncoder xgb.cv
1、花了少量时间补充上周五的小结2、然后开始继续抄作业kernel去除outliers的方法是用的常数,-0.4和0.4,为什么这样设计,并没有给出说明,这个值是介于2 delta和3 delta之间缺失值处理方面,全部用-1填补对于类型为object的变量,使用了一个sklearn.preprocessing中的LabelEncoder,这个类使用上需要建立一个实例,使用方法很简原创 2017-07-31 20:25:50 · 4420 阅读 · 0 评论 -
2017.07.28回顾
1、花了大半天的时间前情提要2、各个指标浏览一圈3、继续kaggle zillow的问题,开始尝试去除离群点,采取箱线图的3倍四分位距的方法,排除了极端异常值,然后拟合的时候自己尝试了下xgboost,但是调参失败了,最后得出的值都差不多,后来仿照了别人的调参方法,提交,结果排在了1011位,还需要调整。浏览了一下xgboost的调参指南,有些没涉及到的参数只有一个浅显的印象,还有些参数是原创 2017-07-31 09:52:38 · 226 阅读 · 0 评论 -
2017.07.27回顾 ET和RT比较 高级切片 argsort barplot(yerr=) xgb.plot_importance
1、一到办公室写了上一日的小结2、昨天帮同事拉进白名单,就只能顺带更新了channel rolling variable,运行良好3、看了下ExtraRandomizedTrees和randomForest的文档,随机森林是有放回的抽样,样本数等于原始样本数,特征数随机子集,结果回归用average,分类用voting(但是sklearn的实现是对probability的average),原创 2017-07-28 14:32:31 · 3040 阅读 · 0 评论 -
2017.07.21回顾 notepad++tab转space df.plot series.value_counts()
1、上午一到办公室就是解决线上的错误问题,主要配合搞了一上午2、上午也帮同事review代码3、写了昨天的小结,内容比较多,在小结中也整理了其他一些获得的新知识4、修复了自己程序的一个BUG5、处理一些公司杂事,一段SQL或一些决定6、和新人交流沟通,关于两个变量的分析问题7、notepad++,edit里面有个功能可以一键转换成把tab转space,日常tab转4空格设置原创 2017-07-21 18:29:53 · 456 阅读 · 0 评论 -
2017.07.20回顾 xgboost安装 xgboost抄作业
1、上午主要就做rts的逻辑,稍微改了一下PTI的限制逻辑,然后编辑邮件,差不多时间进行提交2、在这中间处理了一个老客户的问题,处理了live_time和work_time疑似BUG的问题,和新人讨论了一些最新的分析结果,其中我对非参检验和参数检验还不是很清楚,需要下来学习,老实说卡方检验的原理,我也只看过一半,应用点到是知道,她新提到的KS检验,我基本不了解3、今天剩余时间主要就是抄作业原创 2017-07-21 16:12:17 · 367 阅读 · 0 评论 -
2017.07.14回顾 ipython魔法命令 浮点数定义 GPL 为什么要WOE编码
1、一些小的工程改动2、建表/增加字段,decimal(9,2)表示一共9位,小数是2位,int(2)不是代表两位数,仍然可以存储大数3、Ipython的console中有一些魔法命令,以%开头,matplotlib就有一个魔法命令%matplotlib qt,后面的参数可以指定显示图像的GUI库,我本身没有pyqt库,我用pip instaall失败,但是用conda install p原创 2017-07-17 10:10:26 · 706 阅读 · 0 评论 -
2017.02.28回顾 gbdt预测值更新 np数组取反
1、对决策引擎做了一些审批阈值的调整2、继续对GBDT进行研究,研究了预测值如何更新的问题,我当初简单以为是用叶子节点的样本平均值表示预测值,昨天仔细跟了代码,才知道是用叶子节点样本的残差和除以一个以残差、y为输入的式子,sum(residual)/sum((y-residual)*(1-y+residual))这个就是所谓的牛顿迭代法求解,这个值的数量级整体趋势为什么会越来越小?(这个是我问原创 2017-03-01 10:47:32 · 858 阅读 · 0 评论 -
sklearn中gbdt源码解读笔记
这周已经过去了3天,主要精力都是集中在sklearn的gbdt代码解读上,进展肯定是有,但是感觉阻力比较大,但是这又有什么办法呢?人一能之,我十之!但是感觉有时候多花时间的情况下效率很低很低,但是可能也是自己内心浮躁,想回去玩造成了这种效率低下,要看这个算法,只有不到黄河心不死的决心,即便我被迫需要先应用再解读,我也一定要花时间去解读,一定要精通这个算法,排除万难!把前几天关于gbdt的解读再总结原创 2017-01-12 15:25:01 · 3368 阅读 · 0 评论 -
python文件操作 信用模型 2016.06.27回顾
1、python在linux中创建文件夹,os.mkdir,os.mkdir不能递归地创建文件夹,也就是说父文件夹必须存在,os.makedirs可以递归地创建文件夹 2、python判断文件是否存在,用到的是os.path.exists() 3、nohup重定向的命令问题,nohup command >log 2>&1 &这样写日志,重启一次命令,上次的log会被覆盖,运维告诉我用nohup原创 2016-06-28 10:24:06 · 1030 阅读 · 0 评论 -
echarts sys.stdout.flush() 2016.05.19回顾
上午主要看了下echarts,决定用php来作服务端语言,也想重新回顾一下php,回顾了一下jquery,AJAX请求,获取数据,返回到前台,用echarts生成图表然后就是后台缓冲区的问题,python -u这个参数听说是不启动缓冲区,但是我没成功,我觉得是因为python manage.py会多生成一个进程,而子进程没有-u参数,所以失败,后来我综合考虑采用了sys.stdout.flush(原创 2016-05-20 09:36:00 · 937 阅读 · 0 评论 -
centos装pandas 2016.05.06回顾
这个本来应该周五写的,拖了一个周末,现在对周五的工作总计如下:1、周五开始看梯度下降法,有一些前置高数的知识,看了一点,本周要继续功克,目标是最后自己实现一遍logistic算法2、周五还做了一个很重要的事情就是在开发服务器上把trigger服务调通了,记录一下过程,同事已经封装成了相应的类,我只负责调用,需要在centos下安装几个模块,numpypandaspython-L原创 2016-05-09 14:42:05 · 2246 阅读 · 0 评论 -
编码纠正 glob logging replace re.sub 2016.05.30回顾
昨天主要就是写一个脚本去掉征信中的某些敏感字段,这个事情可以分为两步,第一步是找到某个时间点之前的客户的征信报告,几个表联合查询,可以找到当时解析的filename,但是把很多filename放在一个文件夹的时候可能会出现重名的情况,所以move征信报告的时候,可能不是move的当时申请贷款对应的那一份征信报告,所以如果想找到当初那笔贷款所用到的征信报告很难,而且很难准确,而且一个客户有可能三笔贷款原创 2016-05-31 13:43:05 · 508 阅读 · 0 评论