要做一个需求,就是我们作为一个平台方提供给第三方或者个人销售商品,但是要对某种商品价格有一个合理价格区间的处理。
( 1 )数据是离散型的,要找到合理范围,因为平均数有时候说明不了问题。 ( 2 )在现有数据基础上处理,要把那些报价太低骗人的和报价太高扯淡的商品屏蔽掉。 ( 3 )在合理区间在得到出几个区间(正态分布型的)
有没有做过数据清洗相关方面提供一些思路和做法。
1
Rheinmetal 2019-07-24 10:32:35 +08:00
在合理区间在得到出几个区间 这是什么意思?
不用平均数可以用分位数嘛 直接切掉前 10% 和后 10% 这样就行了 分成这几种区间如何 10%-30% 30-50 50-70 70-90 |
2
silverbooker 2019-07-24 10:42:14 +08:00 1
用四分位数可以处理这个问题。至于具体的概念你可以搜一下。
简单的说中位数就是这组离散数据的 50%分位数。 同理,你可以取得 25%分位数(就是你把这组数据从小到大排序后第 25%的数字),又称下四分位数,命名位 Q1。 取得 75%分位数,又称上四分位数,命名位 Q3。 然后你就可以依据这些计算上下边界,超过上下边界的就是异常值,你就可以把它们过滤掉。 上界 = Q3+(Q3-Q1)*K 下界 = Q1-(Q3-Q1)*K 其中 K=1.5 ,这是一个经验值,一般不做改动。 |
3
akira 2019-07-24 12:32:46 +08:00
没做过数据清洗,但是感觉用正态分布的置信区间应该能解决你的问题
|
4
zppass OP @Rheinmetal @silverbooker,大佬说的是,刚开始我想用正态分布来搞,结果发现异常值影响很大。用了分箱法,也就是分位进行数据预处理确实清除了很多异常值后,最起码看分布图舒服多了。
其实目的就是对某类商品有个大概的合理的价格区间,在价格区间内部在分个三六九等的样子。 |
5
zppass OP @Rheinmetal @akira @silverbooker 谢谢各位老哥建议,汇报一下进展吧,
分箱是可以去除一些异常值,但是呢过于低的值过滤不掉(采用的是等频分箱,发现自动分箱有时候会把一个区间的值分成很多或者没分,可能我设置的不好吧。)。 处理后的数据进行聚类,然后处理了一下,发现能得到合理的区间(产品觉得合理就合理喽)。 在感谢的同时,也希望帖子别沉,大家都来提一下思路,能让更多的人参与进来互相启发。 |