由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 单变量xgboost模型好的吓人,求解
相关主题
svm/svr还是不错的xgboost 里面的tree到底是一整个depth=N的树,还是一个binary
求教 xgboost train error 非常小,咋回事请问xgboost训练需要保持不同类别样本数尽量一致吗?
彻底抛弃xgboost 找新欢lightlgm没毛病吧?Re: Zillow Prize kaggle的比赛 求问
[请教]树模型, 该如何向客户解释 ?大家试过 h2o吗?
DL一个基础问题:xgboost预测结果不一致怎么回事?
有没有做sentiment analysis的,求思路有人搞P2P lending吗?
xgboost 训练大数据问题ML 最讨厌的就是搞了太多专业名词
xgboost 训练小感为什么grid search伤人品
相关话题的讨论汇总
话题: auc话题: 变量话题: 模型话题: br话题: xgb
进入Programming版参与讨论
1 (共1页)
m******r
发帖数: 1033
1
最近闭门造车,不接电话,不回电邮,不上网, 死几百咧,造了个模型,先用线性逻
辑回归,试来试去,性能不理想,AUC大概63% . 这也没什么奇怪的,并不是给你一堆
数,就能造个模型出来。 反正试来试去,就这一个变量可用,, 假定为A, AUC = 63%
然后我就用xgboost, 我的妈,AUC一下上升到95%, 96%,97%, 98%, 因为编程太弱
,我的土方法是:一个变量一个变量试, 都是manual work, 每次只跑一个变量,记录
重要结果,保存在excel里。 最终结果是:仅用A变量,AUC = 95%, 在此基础上加上一
点别的变量, AUC 很快飞涨到97%, 98%
我知道这种基于树的模型容易过度拟合, 就特意找了好几年前的老数据(真实数据)测
试。 测试的AUC性能一点都不下降, 和原来的差距小于1%. 所以不能说是过度拟合。
现在问题来了,我想来想去不明白为什么这个变量用在xgb有这么高的AUC? 不明白xgb
施了什么法术?向业务部门也很难解释,做个简单的tabulation, 能依稀看出一些
trend (这到能说明 线性回归下此变量达到AUC = 63 %)。 可在xgboost下该变量表现
如此完美, 连我自己都不信啊。
有大神碰到过此类问题的, 能不能给讲讲?
w***g
发帖数: 5958
2
单变量一条线上, 如果+分布成几撮, 中间穿插着很多-,逻辑回归这种单threshold
的模型就会完蛋。如果这个假设成立,用k-NN预测应该也会显著好于线性模型。

xgb

【在 m******r 的大作中提到】
: 最近闭门造车,不接电话,不回电邮,不上网, 死几百咧,造了个模型,先用线性逻
: 辑回归,试来试去,性能不理想,AUC大概63% . 这也没什么奇怪的,并不是给你一堆
: 数,就能造个模型出来。 反正试来试去,就这一个变量可用,, 假定为A, AUC = 63%
: 然后我就用xgboost, 我的妈,AUC一下上升到95%, 96%,97%, 98%, 因为编程太弱
: ,我的土方法是:一个变量一个变量试, 都是manual work, 每次只跑一个变量,记录
: 重要结果,保存在excel里。 最终结果是:仅用A变量,AUC = 95%, 在此基础上加上一
: 点别的变量, AUC 很快飞涨到97%, 98%
: 我知道这种基于树的模型容易过度拟合, 就特意找了好几年前的老数据(真实数据)测
: 试。 测试的AUC性能一点都不下降, 和原来的差距小于1%. 所以不能说是过度拟合。
: 现在问题来了,我想来想去不明白为什么这个变量用在xgb有这么高的AUC? 不明白xgb

L****8
发帖数: 3938
3
我看很多医学文章 还在用线性模型 搞多变量拟合 然后算个p值 讨论一下每个变量的
贡献 很多人喜欢简单模型 容易“理解” 有 insight
这种想法在ML面前 就是渣

xgb

【在 m******r 的大作中提到】
: 最近闭门造车,不接电话,不回电邮,不上网, 死几百咧,造了个模型,先用线性逻
: 辑回归,试来试去,性能不理想,AUC大概63% . 这也没什么奇怪的,并不是给你一堆
: 数,就能造个模型出来。 反正试来试去,就这一个变量可用,, 假定为A, AUC = 63%
: 然后我就用xgboost, 我的妈,AUC一下上升到95%, 96%,97%, 98%, 因为编程太弱
: ,我的土方法是:一个变量一个变量试, 都是manual work, 每次只跑一个变量,记录
: 重要结果,保存在excel里。 最终结果是:仅用A变量,AUC = 95%, 在此基础上加上一
: 点别的变量, AUC 很快飞涨到97%, 98%
: 我知道这种基于树的模型容易过度拟合, 就特意找了好几年前的老数据(真实数据)测
: 试。 测试的AUC性能一点都不下降, 和原来的差距小于1%. 所以不能说是过度拟合。
: 现在问题来了,我想来想去不明白为什么这个变量用在xgb有这么高的AUC? 不明白xgb

m******r
发帖数: 1033
4
有道理。 你的讲解让我想起不久前看过一段视频。 是采访著名cart发明人breimann还
是frimann讲他当年怎么发明决策树算法的故事。 他当年是stanford搞物理的, 原本
用k_nearest_neighborhood 方法解决高能粒子classification的问题, 后来有天早上
在床上想啊想啊( 我也爱赖在床上想一些自己的土算法, 很有效)忽然就从knn联想到
了决策树算法。 后来创办了CART软件,不久前被minitab收购。
现在我知道应该怎么向客户展示了: 应该类似和散点图(scatterplot)差不多的图,重
点展示一些cluster。
还有一个疑问。 xgb输出是score, 0~1, 我然后根据分数排序, 看看每个十分位(
decile),购买率是多少, 结果竟然是100%, 99% 90%, 80%, 30%, 12%, 10%, 0%,
0%, 0% (就是做lift curve 类似方法)
我再仔细研究score, 发现这些分数跳跃性很大, 有很多分数相同(up to 10th
decimal place).
怎么看怎么别扭。 我的理解是: 这里面毕竟只有一个变量,树的深度是4,共有100颗
树,所以ties是很难避免的。 还请斧正。
总之, 我对我以上十个购买率的这组数, 深表怀疑。 too good to be true. 我用
更老的数据验证,确实得到极为类似的结果。
除了吴东大神,其他的大神也请点拨一下。

threshold

【在 w***g 的大作中提到】
: 单变量一条线上, 如果+分布成几撮, 中间穿插着很多-,逻辑回归这种单threshold
: 的模型就会完蛋。如果这个假设成立,用k-NN预测应该也会显著好于线性模型。
:
: xgb

g****t
发帖数: 31659
5
各种adaptive线性回归技术试过了吗?
除了auc别的统计指标怎么样?
g****t
发帖数: 31659
6
这种情况,
可以用adaptive技术预测加号的聚集速度。
还可以预先训练出来一张表,按条件切换权重什么的。


: 单变量一条线上, 如果 分布成几撮, 中间穿插着很多-,逻辑回归这种单
threshold

: 的模型就会完蛋。如果这个假设成立,用k-NN预测应该也会显著好于线性模型。

: xgb



【在 w***g 的大作中提到】
: 单变量一条线上, 如果+分布成几撮, 中间穿插着很多-,逻辑回归这种单threshold
: 的模型就会完蛋。如果这个假设成立,用k-NN预测应该也会显著好于线性模型。
:
: xgb

g****t
发帖数: 31659
7
这年头能卖简单模型的人水平一般都很高。


: 我看很多医学文章 还在用线性模型 搞多变量拟合 然后算个p值 讨论一
下每个
变量的

: 贡献 很多人喜欢简单模型 容易“理解” 有 insight

: 这种想法在ML面前 就是渣

: xgb



【在 L****8 的大作中提到】
: 我看很多医学文章 还在用线性模型 搞多变量拟合 然后算个p值 讨论一下每个变量的
: 贡献 很多人喜欢简单模型 容易“理解” 有 insight
: 这种想法在ML面前 就是渣
:
: xgb

m******r
发帖数: 1033
8
不想摊子铺的太大。 adaptive regression 我在别的项目试验过, sas 9.4 恰好有这
个功能 (忘了proc name, 请自行google, 大概叫transreg ? ).
除了AUC, 就看4几条curve, true positive/false positive, grains chart, lift
curve, precision/recall. 曲线美的像是从photoshop里加工过。
我一看AUC就知道这几条曲线差不了。 因为我做类似项目很长时间了,看看AUC心里就
有数了,一般85%以上性能会很好。 75%以上是大多数结果,65%以上勉强可用 最好不
用。 低于65%, 比较差劲 别跟人说这是你做的, 丢人。
问题现在是指标太好。 要是别人给我看这种结果,我会怀疑这人是不是在忽悠我。

【在 g****t 的大作中提到】
: 各种adaptive线性回归技术试过了吗?
: 除了auc别的统计指标怎么样?

g****t
发帖数: 31659
9
老数据新数据混合测一下?
我怀疑除了overfitting之外。
是不是可能这本身就是个不复杂的问题,你的线性回归方法部分
漏了什么。所以只有63% auc
线性方法结果好的,别的什么办法出来的结果往往都不错。


: 不想摊子铺的太大。 adaptive regression 我在别的项目试验过, sas
9.4 恰
好有这

: 个功能 (忘了proc name, 请自行google, 大概叫transreg ? ).

: 除了AUC, 就看4几条curve, true positive/false positive, grains
chart,
lift

: curve, precision/recall. 曲线美的像是从photoshop里加工过。

: 我一看AUC就知道这几条曲线差不了。 因为我做类似项目很长时间了,看
看AUC
心里就

: 有数了,一般85%以上性能会很好。 75%以上是大多数结果,65%以上勉强
可用
最好不

: 用。 低于65%, 比较差劲 别跟人说这是你做的, 丢人。

: 问题现在是指标太好。 要是别人给我看这种结果,我会怀疑这人是不是
在忽悠
我。



【在 m******r 的大作中提到】
: 不想摊子铺的太大。 adaptive regression 我在别的项目试验过, sas 9.4 恰好有这
: 个功能 (忘了proc name, 请自行google, 大概叫transreg ? ).
: 除了AUC, 就看4几条curve, true positive/false positive, grains chart, lift
: curve, precision/recall. 曲线美的像是从photoshop里加工过。
: 我一看AUC就知道这几条曲线差不了。 因为我做类似项目很长时间了,看看AUC心里就
: 有数了,一般85%以上性能会很好。 75%以上是大多数结果,65%以上勉强可用 最好不
: 用。 低于65%, 比较差劲 别跟人说这是你做的, 丢人。
: 问题现在是指标太好。 要是别人给我看这种结果,我会怀疑这人是不是在忽悠我。

L****8
发帖数: 3938
10
看一看是不是训练数据混到测试数据里了

【在 m******r 的大作中提到】
: 不想摊子铺的太大。 adaptive regression 我在别的项目试验过, sas 9.4 恰好有这
: 个功能 (忘了proc name, 请自行google, 大概叫transreg ? ).
: 除了AUC, 就看4几条curve, true positive/false positive, grains chart, lift
: curve, precision/recall. 曲线美的像是从photoshop里加工过。
: 我一看AUC就知道这几条曲线差不了。 因为我做类似项目很长时间了,看看AUC心里就
: 有数了,一般85%以上性能会很好。 75%以上是大多数结果,65%以上勉强可用 最好不
: 用。 低于65%, 比较差劲 别跟人说这是你做的, 丢人。
: 问题现在是指标太好。 要是别人给我看这种结果,我会怀疑这人是不是在忽悠我。

相关主题
有没有做sentiment analysis的,求思路xgboost 里面的tree到底是一整个depth=N的树,还是一个binary
xgboost 训练大数据问题请问xgboost训练需要保持不同类别样本数尽量一致吗?
xgboost 训练小感Re: Zillow Prize kaggle的比赛 求问
进入Programming版参与讨论
w*****r
发帖数: 197
11
你这感觉就像我第一次玩AlexNet一样。如果你在小学时就能接受计算器算得比你快,
为什么现在不能接受计算机用有效的ML算法对大数据的归纳能力比你强?
回到你的问题,有可能是基于某domain knowledge的假设错了,以至于模型无法拟合数
据的distribution。
n******g
发帖数: 2201
12
你的变量大概是target 的别名 比如用每分钟速度预测时速 当然很准
[在 magliner (magliner) 的大作中提到:]
:最近闭门造车,不接电话,不回电邮,不上网, 死几百咧,造了个模型,先用线性逻
:辑回归,试来试去,性能不理想,AUC大概63% . 这也没什么奇怪的,并不是给你一堆
:数,就能造个模型出来。 反正试来试去,就这一个变量可用,, 假定为A, AUC = 63%
:然后我就用xgboost, 我的妈,AUC一下上升到95%, 96%,97%, 98%, 因为编程太弱
:,我的土方法是:一个变量一个变量试, 都是manual work, 每次只跑一个变量,记
录重要结果,保存在excel里。 最终结果是:仅用A变量,AUC = 95%, 在此基础上加上
一点别的变量, AUC 很快飞涨到97%, 98%
:我知道这种基于树的模型容易过度拟合, 就特意找了好几年前的老数据(真实数据)
测试。 测试的AUC性能一点都不下降, 和原来的差距小于1%. 所以不能说是过度拟合。
:现在问题来了,我想来想去不明白为什么这个变量用在xgb有这么高的AUC? 不明白xgb
:施了什么法术?向业务部门也很难解释,做个简单的tabulation, 能依稀看出一些
:trend (这到能说明 线性回归下此变量达到AUC = 63 %)。 可在xgboost下该变量表现
:如此完美, 连我自己都不信啊。
:..........
g****t
发帖数: 31659
13
还得考虑你分钟级别数据的variance啊。不是光速度就够了。


: 你的变量大概是target 的别名 比如用每分钟速度预测时速 当然很准

: [在 magliner (magliner) 的大作中提到:]

: :最近闭门造车,不接电话,不回电邮,不上网, 死几百咧,造了个模型,先用
线性逻

: :辑回归,试来试去,性能不理想,AUC大概63% . 这也没什么奇怪的,并不是给
你一堆

: :数,就能造个模型出来。 反正试来试去,就这一个变量可用,, 假定为A, AUC
= 63%

: :然后我就用xgboost, 我的妈,AUC一下上升到95%, 96%,97%, 98%, 因为编
程太弱

: :,我的土方法是:一个变量一个变量试, 都是manual work, 每次只跑一个变
量,记

: 录重要结果,保存在excel里。 最终结果是:仅用A变量,AUC = 95%, 在此基础
上加上

: 一点别的变量, AUC 很快飞涨到97%, 98%

: :我知道这种基于树的模型容易过度拟合, 就特意找了好几年前的老数据(真实
数据)



【在 n******g 的大作中提到】
: 你的变量大概是target 的别名 比如用每分钟速度预测时速 当然很准
: [在 magliner (magliner) 的大作中提到:]
: :最近闭门造车,不接电话,不回电邮,不上网, 死几百咧,造了个模型,先用线性逻
: :辑回归,试来试去,性能不理想,AUC大概63% . 这也没什么奇怪的,并不是给你一堆
: :数,就能造个模型出来。 反正试来试去,就这一个变量可用,, 假定为A, AUC = 63%
: :然后我就用xgboost, 我的妈,AUC一下上升到95%, 96%,97%, 98%, 因为编程太弱
: :,我的土方法是:一个变量一个变量试, 都是manual work, 每次只跑一个变量,记
: 录重要结果,保存在excel里。 最终结果是:仅用A变量,AUC = 95%, 在此基础上加上
: 一点别的变量, AUC 很快飞涨到97%, 98%
: :我知道这种基于树的模型容易过度拟合, 就特意找了好几年前的老数据(真实数据)

m******r
发帖数: 1033
14
这种情况基本可以排除。 我做的是市场营销项目,不是物理项目。没有information
leak. 我用的变量是公认,有代表性,有实际意义的变量。 类似于以前liberty
mutual竞赛题, 购买商品 ~ 看了某商品 这种关系。

63%

【在 n******g 的大作中提到】
: 你的变量大概是target 的别名 比如用每分钟速度预测时速 当然很准
: [在 magliner (magliner) 的大作中提到:]
: :最近闭门造车,不接电话,不回电邮,不上网, 死几百咧,造了个模型,先用线性逻
: :辑回归,试来试去,性能不理想,AUC大概63% . 这也没什么奇怪的,并不是给你一堆
: :数,就能造个模型出来。 反正试来试去,就这一个变量可用,, 假定为A, AUC = 63%
: :然后我就用xgboost, 我的妈,AUC一下上升到95%, 96%,97%, 98%, 因为编程太弱
: :,我的土方法是:一个变量一个变量试, 都是manual work, 每次只跑一个变量,记
: 录重要结果,保存在excel里。 最终结果是:仅用A变量,AUC = 95%, 在此基础上加上
: 一点别的变量, AUC 很快飞涨到97%, 98%
: :我知道这种基于树的模型容易过度拟合, 就特意找了好几年前的老数据(真实数据)

n******r
发帖数: 4455
15
Boosting的原理就是多个模型联合,在数据量不大的情况做到很好的精度很正常
o x o
x o x
o x o
举个二元分类的简单例子,上面这几个点,线性模型相当于划一条斜线,是不可能分开的
如果只用单个模型,需要复杂的高次函数才可以
但是,如果用多个线性模型联合,只要四个45度的斜线就可以做到100%的区分
你这种情况应该是overfit了。验证的方法很简单,把你的数据分成training/test set
,然后看model在test set的performance。
m******r
发帖数: 1033
16
多谢。 你的讲解很透彻。

开的
set

【在 n******r 的大作中提到】
: Boosting的原理就是多个模型联合,在数据量不大的情况做到很好的精度很正常
: o x o
: x o x
: o x o
: 举个二元分类的简单例子,上面这几个点,线性模型相当于划一条斜线,是不可能分开的
: 如果只用单个模型,需要复杂的高次函数才可以
: 但是,如果用多个线性模型联合,只要四个45度的斜线就可以做到100%的区分
: 你这种情况应该是overfit了。验证的方法很简单,把你的数据分成training/test set
: ,然后看model在test set的performance。

m******r
发帖数: 1033
17
上来给大家汇报一下工作。
一开始我也以为overfit了,哪里出了错。仔细检查了代码,整个过程没什么错误。 虽
然这是个比较大的项目,很多代码copy来copy去 但是我造这个模型用的是最近12月的
数据, 真正的测试数据是更早的数据:前24个月到前12个月。 也就是我造模型的数据
在我的硬盘里,测试的数据在数据库里躺着呢。
这简直就是物理隔离啊。
今天我把测试的12个月数据每个月单独拎出来测一遍。 这样每个月只有1K~2K人群
samplesize应该算很小了,结果目测还是很好的,反正就那10个数从100%递减到0%, 按
score_rank递减,我连AUC都懒得看,因为趋势是很明显的。
于是我就这样给老板交差了。
还有一个原因是这个xgb做的模型是其中一个部分,大部分还是用回归做的。 如果所有
模型都得到这么高的AUC, 我还真发毛了。
c******r
发帖数: 300
18
一个变量的模型还用啥xgboosting/ml, 你画个scatterplot smooth下不就广域完了,
stat101就可以搞定,感觉ML学多了就容易简单问题复杂化 ......

xgb

【在 m******r 的大作中提到】
: 最近闭门造车,不接电话,不回电邮,不上网, 死几百咧,造了个模型,先用线性逻
: 辑回归,试来试去,性能不理想,AUC大概63% . 这也没什么奇怪的,并不是给你一堆
: 数,就能造个模型出来。 反正试来试去,就这一个变量可用,, 假定为A, AUC = 63%
: 然后我就用xgboost, 我的妈,AUC一下上升到95%, 96%,97%, 98%, 因为编程太弱
: ,我的土方法是:一个变量一个变量试, 都是manual work, 每次只跑一个变量,记录
: 重要结果,保存在excel里。 最终结果是:仅用A变量,AUC = 95%, 在此基础上加上一
: 点别的变量, AUC 很快飞涨到97%, 98%
: 我知道这种基于树的模型容易过度拟合, 就特意找了好几年前的老数据(真实数据)测
: 试。 测试的AUC性能一点都不下降, 和原来的差距小于1%. 所以不能说是过度拟合。
: 现在问题来了,我想来想去不明白为什么这个变量用在xgb有这么高的AUC? 不明白xgb

p****o
发帖数: 1340
19
:) 这是一个典型overfit的例子。

【在 c******r 的大作中提到】
: 一个变量的模型还用啥xgboosting/ml, 你画个scatterplot smooth下不就广域完了,
: stat101就可以搞定,感觉ML学多了就容易简单问题复杂化 ......
:
: xgb

1 (共1页)
进入Programming版参与讨论
相关主题
为什么grid search伤人品DL一个基础问题:
训练模型该拜哪个菩萨?有没有做sentiment analysis的,求思路
Hinton的capsule理论是不是证明是伪科学了?xgboost 训练大数据问题
请问一个常见的算法问题xgboost 训练小感
svm/svr还是不错的xgboost 里面的tree到底是一整个depth=N的树,还是一个binary
求教 xgboost train error 非常小,咋回事请问xgboost训练需要保持不同类别样本数尽量一致吗?
彻底抛弃xgboost 找新欢lightlgm没毛病吧?Re: Zillow Prize kaggle的比赛 求问
[请教]树模型, 该如何向客户解释 ?大家试过 h2o吗?
相关话题的讨论汇总
话题: auc话题: 变量话题: 模型话题: br话题: xgb