You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Histogram Data正确使用:区间大小设置问题求助

如何调整HistogramData设置以得到预期的区间百分比结果?

问题背景

在多次Parameter Variation运行后,将结果保存到Histogram Data对象中,但输出的区间范围和百分比不符合预期,希望明确问题原因并找到解决方法。

HistogramData设置

Number of intervals: 7
Value range:
     Automatically detected
     Initial Interval Size: 10

结果打印代码

//if final replication, write Histogram Data into Excel
if(getCurrentReplication() == lastReplication){
    double intervalWidth = histogramData.getIntervalWidth();
    int intervalQty = histogramData.getNumberOfIntervals();
    
    for(int i = 0; i < intervalQty; i++){
        traceln(intervalWidth*i + " " + histogramData.getPDF(i));
        excelRecords.setCellValue(String.valueOf(intervalWidth*i) + " - " + String.valueOf(intervalWidth*(i+1)), 1, rowIndex, columnIndex);
        excelRecords.setCellValue(histogramData.getPDF(i), 1, rowIndex, columnIndex+1);
        rowIndex++;
    }
}

预期结果

10 - 80%
20 - 10%
30 - 5%
40 - 2%
50...
60...

实际输出结果

0.0 0.0
10.0 0.0
20.0 0.0
30.0 0.998782775272379
40.0 0.0011174522089635631
50.0 9.9772518657461E-5
60.0 0.0

调整初始区间大小为0.1后的结果

0.0 0.9974651710510558
4.0 0.001117719851502934
8.0 9.181270208774101E-4
12.0 2.3951139675062872E-4
16.0 1.5967426450041916E-4
20.0 9.979641531276197E-5
24.0 0.0

问题分析与解决方法

核心误解

你对HistogramData的自动区间逻辑理解有误:

  • 当开启Automatically detected值范围时,Initial Interval Size仅作为初始参考,系统会根据实际数据分布自动调整区间宽度和范围,最终区间不一定匹配你的初始设置。比如初始设0.1时,系统自动将区间宽度调整为4,就是为了适配数据的集中分布。
  • 自动检测会从数据的最小值开始生成区间,所以第一个区间是0-10(宽度10时),而非你预期的10-20。

解决步骤

  1. 固定区间范围与宽度:
    关闭自动区间检测,手动设置:

    • Value range最小值为10,最大值为80(对应7个10宽度的区间:10-20、20-30...70-80)
    • Interval Size设为10
      这样系统会严格按照你指定的区间生成直方图。
  2. 转换PDF为百分比格式:
    getPDF(i)返回的是0-1的概率值,需要乘以100并格式化百分比,修改代码中的单元格赋值逻辑:

    excelRecords.setCellValue(String.format("%.1f%%", histogramData.getPDF(i)*100), 1, rowIndex, columnIndex+1);
    
  3. 处理边界数据:
    如果数据中有小于10或大于80的值,会被归入溢出/下溢区间,需要额外处理:

    • 下溢数据量:histogramData.getUnderflowCount()
    • 溢出数据量:histogramData.getOverflowCount()
      可根据需求将这些数据的百分比添加到结果中。
  4. 数据分布说明:
    从实际结果看,你的数据绝大多数集中在30左右的区间,即使调整了区间设置,也可能出现多数区间百分比为0的情况,这是数据本身的分布特性,并非HistogramData的功能问题。

内容的提问来源于stack exchange,提问作者Shingston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 04:05:37