算法
strwolf
这个作者很懒,什么都没留下…
展开
-
无向图DFS算法
需求来自我的同事,他的问题抽象出来就是寻找无向图中两点的任一条路径,也就是可以用无向图DFS算法,思想大概是: 1、基本数据结构是包含节点名以及其相邻所有节点 2、栈结构存储路径节点 3、一个寻路算法寻找当前节点下一个可用路径(节点),如果搜索到的节点是初始节点,上一节点或者栈中节点,就搜索其下一个节点,搜到可用节点,以该节点为当前节点递归调用寻路算法,一个节点搜索完没有可用节点要弹出栈,发原创 2016-02-27 12:52:28 · 2121 阅读 · 0 评论 -
2017.02.28回顾 gbdt预测值更新 np数组取反
1、对决策引擎做了一些审批阈值的调整 2、继续对GBDT进行研究,研究了预测值如何更新的问题,我当初简单以为是用叶子节点的样本平均值表示预测值,昨天仔细跟了代码,才知道是用叶子节点样本的残差和除以一个以残差、y为输入的式子,sum(residual)/sum((y-residual)*(1-y+residual))这个就是所谓的牛顿迭代法求解,这个值的数量级整体趋势为什么会越来越小?(这个是我问原创 2017-03-01 10:47:32 · 871 阅读 · 0 评论 -
2017.02.20回顾 gbdt+lr
1、重跑了镇江的部分客户,看了下通过率,信用模型就是信用模型,很难防住欺诈 2、修改了个小BUG 3、下午研究了gbdt+lr的模型,读了facebook的论文3.1的章节,这个章节是论文的核心部分,讲了是怎样通过GBDT把实值特征变量转换成bool特征变量,每一个叶节点就是一条rule,也就是一个特征,然后怎么去选取这些高阶特征论文没有细说了,而是给出了gbdt+lr的对于NE的提升,相对G原创 2017-02-21 11:47:49 · 2878 阅读 · 1 评论 -
2017.02.22回顾
1、昨天不服气,还是继续研究怎么把决策树的结构输出出来,因为有一个包,没装好,在anaconda环境中,我用了这样一个命令进行安装,conda install -c conda-forge pydotplus,成功安装,安装过程中有几个conda的相关东西需要安装或是update(确切的说,好像是conda-forge),其实我不清楚这个命令的意思,反正用pip install pydotplus原创 2017-02-23 17:50:34 · 1077 阅读 · 0 评论 -
2017.03.16回顾 线性代数 最小二乘 pdo 3C
1、研究了线性模型,写出损失函数,然后求导就给自己卡了一下午,我不知道矩阵该怎么求导,方法就是所谓的最小二乘,在解决这个问题的过程中,我也温故了一下数学知识 。 向量内积:又称向量点积(dot product),两个向量相乘得到一个标量,在二维和三维空间的几何意义是,两个向量模长乘以夹角的余弦,ab = ︱a︱︱b︱cosθ 向量外积:又称向量叉积,两个向量相乘得到一个向量,向量的模等于︱原创 2017-03-17 17:58:59 · 375 阅读 · 0 评论 -
2017.03.07回顾 GBDT前面树权重更大 python散点图
1、确定数据传输格式 2、看了下通过率方面的问题 3、下午开始研究GBDT相关问题,我最开始的疑问,是不是前面的树的权重大,对于我实际的数据集大多数样本点是这样的,少部分比较反常,但是我后来换了一个标准数据集,由于数据集太好了,损失函数直接就收敛到0了,所以每个点的预测值也是收敛到一个非常大非常小的值,在expit函数下,大概绝对值8,数值就很接近1或0了,然后前面收敛曲线基本上接近于一条直线原创 2017-03-08 15:03:26 · 1277 阅读 · 0 评论 -
2017.02.24回顾 logistic 1 -1 定义
1、去学习了一下,用1和-1编码的logistic regression的损失函数,gbdt论文中提到的损失函数,是单个样本点的,其次要令y* = 2y - 1把0,1映射到-1,1,定义p的时候多一个2倍,即 p = 1/(1+exp(-2f)),把这两部分带入log似然函数就可以得到-1,1定义下的损失函数,log(1+exp(-2yf)),其实推导过程我是没看懂的,这个y我不知道是怎么拿进原创 2017-02-27 12:09:07 · 1095 阅读 · 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 · 541 阅读 · 0 评论 -
2017.03.24回顾 归一化 标准化 R2 date_format 共线性 系数检验 决策树
1、as cash,调整了某两类的客户的审批阈值 2、归一化是线性映射到0-1,z-score标准化是(x-μ)/δ,经过转换后均值为0,标准差为1,机器学习实战那本书讲岭回归的时候,标准化的方法是除以方差,这样一来标准化后的标准差就是1/δ 3、线性回归评价指标R2,是回归值平方和除以真实值平方和 4、mysql中datetime截取年月日有一个内置函数,data_format(datet原创 2017-03-27 14:40:22 · 1402 阅读 · 0 评论 -
2016.02.16回顾 决策树后剪枝
1、上线同盾多头策略,修改同盾逾期为根绝nationalId检索,思考了一下怎么样才比较好过渡到customerId 2、下午研究cart树,主要温习了之前的代码,研究了后剪枝技术,后剪枝技术,是用一个测试集去测试误差平方和,如果合并后误差平方和变小,就做合并处理,无论是后剪枝还是建树都用到了递归的程序设计思想,写出来没有几行,但含金量非常高,但是有一个细节,就是在算合并后的误差平方和的时候,两原创 2017-02-17 09:47:26 · 1263 阅读 · 0 评论 -
sklearn中gbdt源码解读笔记
这周已经过去了3天,主要精力都是集中在sklearn的gbdt代码解读上,进展肯定是有,但是感觉阻力比较大,但是这又有什么办法呢?人一能之,我十之!但是感觉有时候多花时间的情况下效率很低很低,但是可能也是自己内心浮躁,想回去玩造成了这种效率低下,要看这个算法,只有不到黄河心不死的决心,即便我被迫需要先应用再解读,我也一定要花时间去解读,一定要精通这个算法,排除万难!把前几天关于gbdt的解读再总结原创 2017-01-12 15:25:01 · 3379 阅读 · 0 评论 -
2016.12.28回顾 GBDT初探
昨天基本上一直在研究GBDT,主要是直接使用python的sklearn包中现成的算法,但是我在windows环境下安装这个包出现了一些问题,我最后尝试的是下载anaconda,anaconda我了解了一下是一个用于科学计算的集成开发工具,或者是环境,他已经有了很多科学计算相关的包,他的原理应该是基于virtualenv的,我这个anaconda的环境是python2.7.12,里面集成了spyd原创 2016-12-29 10:00:38 · 394 阅读 · 0 评论 -
logistic回归研究 2016.04.28回顾
昨天的话,主要就干了一个事情,就是对logistic regression的研究 1、从最开始的woe开始说起,一般来说woe公式是ln((Bi/BT)/(Gi/GT)),但是我偶然发现tony的WOE是用的ln((Gi/GT)/(Bi/BT)),由于ln(A/B) = ln(A) - ln(B),所以ln(A/B) = - ln(B/A),相当于说就是所有的输入变量添加了一个负号,当时就这个问原创 2016-04-29 18:54:57 · 677 阅读 · 0 评论 -
python编码问题 极大似然 2016.05.04回顾
1、上午对迁移的数据进行检查,最后终于发现没有错了,可以迁移到生产环境 2、对部署到生产环境的程序再次做了测试,发给运维上架 3、把loan_amount逻辑以sql方式给到it 4、再一次地学习logistic regression推导部分,梯度下降法求解,里面有很多数学概念,我都遗忘了,这一块进度很慢,甚至都在怀疑自己不适合去理解这些算法 5、对于那天export PYTHONIOEN原创 2016-05-05 09:36:46 · 564 阅读 · 0 评论 -
logistic回归相关 2016.05.13回顾
1、上午主要还是昨天的logistic回归demo的问题,我本来初衷只是想弄明白为什么sigmoid函数-Z改成Z,我程序报overflow,但是由于对logistic还不熟,自己想出了很多问题: J(θ)是把每一条记录的误差加合,每一个的误差是-ln(h(θ))当y=1,-(1-ln(h(θ))当y=0,把每一条记录的误差加合就是J(θ),每一次迭代都重新加一次,有一段脑壳没把这个loop的层次分原创 2016-05-16 14:22:21 · 341 阅读 · 0 评论 -
分词词云 logistic相关研究 2016.05.16回顾
上午研究了下分词,词频统计,生成词频云,把某几个QQ群的聊天记录导出做了实验,效果还是可以,程序是在别人的程序基础上修改的,主要涉及到jieba模块用于中文分词,wordcloud模块用于生成词云,画图是用到matplotlib,还写了个清洗QQ聊天记录的程序,主要是去掉一些系统生成的关于日期发言人等无用信息,同时也算温习了正则表达式之类的知识,还挺好玩的,我一直尝试想导出微信的数据,特别是朋友圈的原创 2016-05-17 14:22:34 · 396 阅读 · 0 评论 -
logistic regression研究,对于之前自我提问Q4理论证明和更新理解
昨天主要就是解决了logistic regression相关的问题,问题起因是我最开始不知道为什么我在程序里把1/(1+exp(-z))改成1/(1+exp(z))会出错,然后在没有理论支持的情况下把最后批量梯度下降时候的梯度添加一个负号,这个时候能收敛而且有结果,我当时鬼使神差地误认为1/(1+exp(-z))有特殊的含义,只能代表1的概率,1/(1+exp(z))只能代表0的概率,于是基于此开始原创 2016-05-18 16:01:44 · 544 阅读 · 0 评论 -
logistic回归问题自我答疑
之前在学习logistic回归的时候遇到几个问题,一直困扰着我,随着学习的深入,我终于想通了这些问题,而且我发现这些看似很难的算法,其实不难,是可以战胜的,所以不要浅尝辄止,要百折不挠,现在把几个问题和答案小结如下: Q1:woe本来是ln((Bi/BT)/(Gi/GT)),如果定义成ln((Gi/GT)/(Bi/BT))对于最后训练出来的模型(参数)会有什么影响? A1:由于ln(A/B)原创 2016-05-06 11:06:32 · 1278 阅读 · 0 评论 -
2016.10.26回顾 决策树
昨天感觉湿气很重,加上头一天只睡了大概7个小时,一直犯困,导致工作效率及其低下,几乎没干太多有用的事。 1、上午看了一下同盾的贷前数据的情况,发现一些问题 2、修改了as和ts审批阈值 3、下午开了个会,然后研究了下决策树,主要就是机器学习实战那本书,没得条件熵的理论介绍,直接给出了代码,条件熵的意义不是很好理解,反正就是已知一个特征的情况下,数据集的无序程度是下降了,数学上是可以证明的,其原创 2016-10-27 10:09:07 · 255 阅读 · 0 评论 -
2016.12.30回顾
1、date_sub,date_add的参数都是一个日期加一个时间INTERVAL,两个日期相差天数,to_days(日期或类日期字串)-to_days(日期或类日期字串),excel透视表分段,有一个group选项,可以选择起始点和终点以及步长 2、另外把gbdt用在了之前整理的数据集上,在开发集上效果逆天,在尝试过程中,涉及到了诸多pandas和numpy的操作 #导入csv df = p原创 2017-01-03 11:16:34 · 253 阅读 · 0 评论 -
2017.07.06-2017.07.07回顾 信息熵的坑 多重共线性实践
上周最后两天比较忙,没来得及写小结,这里补充一下 上周还是忙建模的事情,稳定性上进行一些新的探索,周四还面试了几个人,有些知识不用确实容易忘记,但是有什么办法了,只有一遍一遍去理解,面试别人的时候也不用着急,也不要怕丢人,现场去推理,这样也可以检验对方的水平,就是个探讨,技术上没有什么丢人不丢人原创 2017-07-11 11:21:27 · 521 阅读 · 1 评论