m******r 发帖数: 1033 | 1 求问, 对于高度不平衡数据(highly imbalanced data),有的人说做,有的人说不做
。
公说公有理婆说婆有理;各有各的理;
我一开始信了这套理论,后来不信了,现在则是半信半疑。
请问大家在实践中是怎么处理的? |
m******r 发帖数: 1033 | 2 这个理论我前几年为啥信了呢 ? 因为他说的是很常见的情况,我做的大部分项目,
positive case都是百分之几,百分之一很多,千分之几的也有。 我看她说的头头是道
,当时我很傻很天真,就信了。
最近几年我不信了。因为最近几年看很多推导 恶补了数学基础 (民科也要不断学习嘛
);发现正规教科书里面完全不提什么不平衡数据,推导都是‘普世价值‘,平衡也罢
不平衡也罢; 这些积分,求导都是永远成立的,不以人的意志为转移,也不以平不平
衡为转移。 更可笑的是,有的网页居然说在'平衡'的过程中, 要达到大约50%的状态
。这么说来,30%就不如40%, 40%就不如50% ? 这是闻所未闻的,至少没有理论基础。
而且, 如果平衡数据如此重要, stat 101早就应该把这一步写进data preparation了。
最近我又有点将信将疑了,因为看了一些知名网站,纷纷开始忽悠大家要做'平衡' ;
虽然文章没什么新意,更没有推导,作为民科 ,还是有责任搞清楚,大家是不是应该
平衡一下数据? |
l**********0 发帖数: 150 | |
w***g 发帖数: 5958 | 4 别说网页上写的,就是课本上有证明的,也不可全信。
有没有用,其实说啥都没用,得试。
我见过的,比较标准的ML套路,training和testing都是90% negative,用
cross entropy或者accuracy评价,那么balance往往有害。但是有时候不是
标准的ML套路,而是比较关心对positive样本的评分,而且评分还需要比较
高的resolution/precision,这种情况下如果positive样本过少,resolution
就会低。这时候就需要oversample positive样本来认为提高resolution。
比如要对test sample进行排序。如果model输出全都<0.001,那排出来的顺序
就不会特别准确。这时候需要牺牲accuracy,增大model输出分数范围和分辨率,
提高ranking的准确性。这种情况往往在数据检索的时候出现比较多。极端情
况就是要在海量数据里找出相关数据并排序。还有一个情况必须oversample。
就是用CNN做segmentation,而positive region又很小的时候。如果直接
train, 啥都detect不出来。
。
了。
【在 m******r 的大作中提到】 : 这个理论我前几年为啥信了呢 ? 因为他说的是很常见的情况,我做的大部分项目, : positive case都是百分之几,百分之一很多,千分之几的也有。 我看她说的头头是道 : ,当时我很傻很天真,就信了。 : 最近几年我不信了。因为最近几年看很多推导 恶补了数学基础 (民科也要不断学习嘛 : );发现正规教科书里面完全不提什么不平衡数据,推导都是‘普世价值‘,平衡也罢 : 不平衡也罢; 这些积分,求导都是永远成立的,不以人的意志为转移,也不以平不平 : 衡为转移。 更可笑的是,有的网页居然说在'平衡'的过程中, 要达到大约50%的状态 : 。这么说来,30%就不如40%, 40%就不如50% ? 这是闻所未闻的,至少没有理论基础。 : 而且, 如果平衡数据如此重要, stat 101早就应该把这一步写进data preparation了。 : 最近我又有点将信将疑了,因为看了一些知名网站,纷纷开始忽悠大家要做'平衡' ;
|
l*********s 发帖数: 5409 | 5 总结下,要不要做平衡要看分析框架。
【在 w***g 的大作中提到】 : 别说网页上写的,就是课本上有证明的,也不可全信。 : 有没有用,其实说啥都没用,得试。 : 我见过的,比较标准的ML套路,training和testing都是90% negative,用 : cross entropy或者accuracy评价,那么balance往往有害。但是有时候不是 : 标准的ML套路,而是比较关心对positive样本的评分,而且评分还需要比较 : 高的resolution/precision,这种情况下如果positive样本过少,resolution : 就会低。这时候就需要oversample positive样本来认为提高resolution。 : 比如要对test sample进行排序。如果model输出全都<0.001,那排出来的顺序 : 就不会特别准确。这时候需要牺牲accuracy,增大model输出分数范围和分辨率, : 提高ranking的准确性。这种情况往往在数据检索的时候出现比较多。极端情
|
m******r 发帖数: 1033 | 6 从这个角度解释很make sense. 很convincing.
今天我看那个https://www.analyticsvidhya.com/blog/2016/03/practical-guide-
deal-imbalanced-classification-problems/ 居然大言不惭地说:
‘’ML algorithms assume that the data set has balanced class distributions.
‘’
看了简直被气昏掉了。
【在 w***g 的大作中提到】 : 别说网页上写的,就是课本上有证明的,也不可全信。 : 有没有用,其实说啥都没用,得试。 : 我见过的,比较标准的ML套路,training和testing都是90% negative,用 : cross entropy或者accuracy评价,那么balance往往有害。但是有时候不是 : 标准的ML套路,而是比较关心对positive样本的评分,而且评分还需要比较 : 高的resolution/precision,这种情况下如果positive样本过少,resolution : 就会低。这时候就需要oversample positive样本来认为提高resolution。 : 比如要对test sample进行排序。如果model输出全都<0.001,那排出来的顺序 : 就不会特别准确。这时候需要牺牲accuracy,增大model输出分数范围和分辨率, : 提高ranking的准确性。这种情况往往在数据检索的时候出现比较多。极端情
|
F****n 发帖数: 3271 | 7 一个简单的rule, 如果牵涉到类似confidence interval, 别做balance, 做了也要想办
法矫正(如使用一些加权的方法,有时候还挺复杂)。如果只看classification
results (e.g., prediction), 最好做,因为可以提高效率。
一般来说,rebalance 改变的是sample的概率,对很多方法而言,这不会bias
prediction但是会bias standard errors.
【在 m******r 的大作中提到】 : 求问, 对于高度不平衡数据(highly imbalanced data),有的人说做,有的人说不做 : 。 : 公说公有理婆说婆有理;各有各的理; : 我一开始信了这套理论,后来不信了,现在则是半信半疑。 : 请问大家在实践中是怎么处理的?
|
m****o 发帖数: 182 | 8 imbalanced learning实际不是很靠谱,但是cost sensitive learning对提高
precision还是挺有用的。
【在 m******r 的大作中提到】 : 求问, 对于高度不平衡数据(highly imbalanced data),有的人说做,有的人说不做 : 。 : 公说公有理婆说婆有理;各有各的理; : 我一开始信了这套理论,后来不信了,现在则是半信半疑。 : 请问大家在实践中是怎么处理的?
|
d******c 发帖数: 2407 | 9 一看就是印度人搞的网站,你也看?看看about,看看作者什么背景。
distributions.
【在 m******r 的大作中提到】 : 从这个角度解释很make sense. 很convincing. : 今天我看那个https://www.analyticsvidhya.com/blog/2016/03/practical-guide- : deal-imbalanced-classification-problems/ 居然大言不惭地说: : ‘’ML algorithms assume that the data set has balanced class distributions. : ‘’ : 看了简直被气昏掉了。
|
v*******e 发帖数: 11604 | 10 看到你们讨论的这些,我想起了了以前学习的电子信号处理理论。古代的信号处理方法
,一般都有一个预先处理的过程叫做“equalization”,中文叫做“均衡化”的。比如
收到的信号有的很强,有的很弱,就把强的衰减,弱的放大,使得下级处理的时候输入
信号幅度差不多。这个主要原因可能是下级能够处理的信号范围有限,幅度太大会消波
失真,幅度太小就超出处理能力,所以需要均衡化。
可是后来的处理方法,一般就没有这个过程,主要原因有两个,一个是下级能够处理的
信号范围大了,一个是,信息论推导出最好的处理是“匹配滤波器”,信号强了就给
大的权重,信号弱了就给小的权重,(注意,和equalization理念完全相反),这才符
合信息论,得到最佳结果。因为信号强了信噪比就大,带的信息就多。
你们讨论的这个东西,如果下级处理不能对付大范围波动的输入,那么就需要
balancing/equalization。如果下级处理能够对付,而且对信号输入信息量进行优化,
那么就不需要“平衡”。
另外对年轻人一点不满,搞一个新东西不要老是发明新名词,把前人几百年的工作都放
在一边。那balancing,其实就是equalization吧。 |
|
|
m******r 发帖数: 1033 | 11 确实是烙印的网站。 主要用来熟悉敌情使用。 知己知彼百战不殆。
老中的我也看。 这方面的专著是URI EE系一个中国人教授写的书,但里面就是纯希腊
文推导了,民科自认不是这块料研究这种学术专著。
【在 d******c 的大作中提到】 : 一看就是印度人搞的网站,你也看?看看about,看看作者什么背景。 : : distributions.
|
m******r 发帖数: 1033 | 12 感谢答疑。
昨天我明白了,今天早上又忽然想到一个问题。
按照'得失论'(trade_off), 做balance以后,得到的是resolution/precision(分辨率/
精确度), 那失去的是什么? 难道是recall rate? 还是别的什么?
【在 w***g 的大作中提到】 : 别说网页上写的,就是课本上有证明的,也不可全信。 : 有没有用,其实说啥都没用,得试。 : 我见过的,比较标准的ML套路,training和testing都是90% negative,用 : cross entropy或者accuracy评价,那么balance往往有害。但是有时候不是 : 标准的ML套路,而是比较关心对positive样本的评分,而且评分还需要比较 : 高的resolution/precision,这种情况下如果positive样本过少,resolution : 就会低。这时候就需要oversample positive样本来认为提高resolution。 : 比如要对test sample进行排序。如果model输出全都<0.001,那排出来的顺序 : 就不会特别准确。这时候需要牺牲accuracy,增大model输出分数范围和分辨率, : 提高ranking的准确性。这种情况往往在数据检索的时候出现比较多。极端情
|
a********r 发帖数: 217 | 13 那是您老没做10000:1之类的imbalance,那个时候基本只能靠这些balance 办法提高准
确率和覆盖率了,否则结果惨不忍睹,例如电信欺诈中普通用户与欺诈者的比例。
【在 m******r 的大作中提到】 : 求问, 对于高度不平衡数据(highly imbalanced data),有的人说做,有的人说不做 : 。 : 公说公有理婆说婆有理;各有各的理; : 我一开始信了这套理论,后来不信了,现在则是半信半疑。 : 请问大家在实践中是怎么处理的?
|
w********m 发帖数: 1137 | |
x***4 发帖数: 1815 | 15 equalization和balance是完全不同的概念。
【在 v*******e 的大作中提到】 : 看到你们讨论的这些,我想起了了以前学习的电子信号处理理论。古代的信号处理方法 : ,一般都有一个预先处理的过程叫做“equalization”,中文叫做“均衡化”的。比如 : 收到的信号有的很强,有的很弱,就把强的衰减,弱的放大,使得下级处理的时候输入 : 信号幅度差不多。这个主要原因可能是下级能够处理的信号范围有限,幅度太大会消波 : 失真,幅度太小就超出处理能力,所以需要均衡化。 : 可是后来的处理方法,一般就没有这个过程,主要原因有两个,一个是下级能够处理的 : 信号范围大了,一个是,信息论推导出最好的处理是“匹配滤波器”,信号强了就给 : 大的权重,信号弱了就给小的权重,(注意,和equalization理念完全相反),这才符 : 合信息论,得到最佳结果。因为信号强了信噪比就大,带的信息就多。 : 你们讨论的这个东西,如果下级处理不能对付大范围波动的输入,那么就需要
|
w***g 发帖数: 5958 | 16 我文中提了,一般牺牲的就是accuracy。比如99%都是negative的,其实如果
做不准就是应该全都predict成0 accuracy最高。xgboost里经常能训练出来
全是0的model。但是那样对positive的recall就是0。Balance了以后能提高
recall,但是accuracy就会降低。
实际dataset可能会不一样。
率/
【在 m******r 的大作中提到】 : 感谢答疑。 : 昨天我明白了,今天早上又忽然想到一个问题。 : 按照'得失论'(trade_off), 做balance以后,得到的是resolution/precision(分辨率/ : 精确度), 那失去的是什么? 难道是recall rate? 还是别的什么?
|
m******r 发帖数: 1033 | 17 醍醐灌顶啊.
【在 w***g 的大作中提到】 : 我文中提了,一般牺牲的就是accuracy。比如99%都是negative的,其实如果 : 做不准就是应该全都predict成0 accuracy最高。xgboost里经常能训练出来 : 全是0的model。但是那样对positive的recall就是0。Balance了以后能提高 : recall,但是accuracy就会降低。 : 实际dataset可能会不一样。 : : 率/
|
d****n 发帖数: 12461 | 18 平衡第一点考虑的就是training和test做出来的效果差不多啊。另外就是收敛速度上的
考虑。 |
L****8 发帖数: 3938 | 19 这种全0的啥意义都没有 比如说用于诊断疾病 图像分割
【在 w***g 的大作中提到】 : 我文中提了,一般牺牲的就是accuracy。比如99%都是negative的,其实如果 : 做不准就是应该全都predict成0 accuracy最高。xgboost里经常能训练出来 : 全是0的model。但是那样对positive的recall就是0。Balance了以后能提高 : recall,但是accuracy就会降低。 : 实际dataset可能会不一样。 : : 率/
|
E**********e 发帖数: 1736 | 20 制药里边positive 的case 就是1% 或 0.1%。 这种情况就是要考虑怎么处理不平衡。
否则你得到的一些metric 是没有意义的。 比如 error rate。 无论你的model 多好,
你的error rate 总是能达到99%。 事实是你的positive case 也许没有有效的
discriminated。 样品要是很大话, 就要under sampling majority, psitive和
negative 配比接近 1:1. 但是要在最后用population 的 比例进行修正。 至于50% 还
是3%, 这些都是正常平衡的。
。
了。
【在 m******r 的大作中提到】 : 这个理论我前几年为啥信了呢 ? 因为他说的是很常见的情况,我做的大部分项目, : positive case都是百分之几,百分之一很多,千分之几的也有。 我看她说的头头是道 : ,当时我很傻很天真,就信了。 : 最近几年我不信了。因为最近几年看很多推导 恶补了数学基础 (民科也要不断学习嘛 : );发现正规教科书里面完全不提什么不平衡数据,推导都是‘普世价值‘,平衡也罢 : 不平衡也罢; 这些积分,求导都是永远成立的,不以人的意志为转移,也不以平不平 : 衡为转移。 更可笑的是,有的网页居然说在'平衡'的过程中, 要达到大约50%的状态 : 。这么说来,30%就不如40%, 40%就不如50% ? 这是闻所未闻的,至少没有理论基础。 : 而且, 如果平衡数据如此重要, stat 101早就应该把这一步写进data preparation了。 : 最近我又有点将信将疑了,因为看了一些知名网站,纷纷开始忽悠大家要做'平衡' ;
|
n******7 发帖数: 12463 | 21 有一些指标对data的分布不是很敏感
比如MCC,F-score, BER 等
率/
【在 m******r 的大作中提到】 : 感谢答疑。 : 昨天我明白了,今天早上又忽然想到一个问题。 : 按照'得失论'(trade_off), 做balance以后,得到的是resolution/precision(分辨率/ : 精确度), 那失去的是什么? 难道是recall rate? 还是别的什么?
|