【发布时间】:2020-07-27 02:27:16
【问题描述】:
我有 X、Y 数据,我想根据 X 值对这些数据进行分类。 但是,我想根据得到的 bin 间隔和每个 bin 的平均 Y 来确定满足条件的 X bin 的最佳数量。例如,如果我有
X=[2,3,4,5,6,7,8,9,10]
Y=[120,140,143,124,150,140,180,190,200]
我想确定满足此条件的最佳 X 箱数:Y 箱的平均值/(X 箱的 8* 宽度)应高于 20,但尽可能接近 20。箱还应是整数,例如 [1,2,..]。 我目前正在使用:
bin_means, bin_edges, binnumber = binned_statistic(X, Y, statistic='mean', bins=bins)
带有预定义的垃圾箱。但是,我想要一个可以在使用它之前为我确定最佳垃圾箱的算法。 一个小数据可以很容易地确定它,但对于数百个点,它变得很耗时。
谢谢
【问题讨论】:
-
“Y bin 的平均值”是指
bin_means的平均值? -
看看这是否有帮助...stats.stackexchange.com/q/798/275865
-
@RichieV 是的,Y bin 的平均值是 bin_means。我认为它必须是迭代的。感谢您发布的链接,这似乎是一个类似的问题,但我有兴趣满足这个特殊条件。而且它似乎用我不熟悉的 R 语言给出了答案
-
嗨,你成功了吗?
-
您好@RichieV,老实说,我没有继续使用您的代码。我设法编写了一个很长的代码来做到这一点。这个想法是从更宽的 bin 开始,然后迭代地缩小它们,直到满足条件。我的意思是它很长但服务于工作,我相信有更有效的方法。如果有兴趣,我可以发给你。
标签: pandas numpy scipy binning scipy-optimize-minimize