Apache Math 是一个 Java 库,提供了许多数学工具和统计功能。要从数据集生成分布,你可以使用 Apache Math 中的 Frequency
类来计算数据集中各个元素的频率,或者使用 EmpiricalDistribution
类来创建一个经验分布。
以下是一个简单的示例,展示了如何使用 Apache Math 从数据集生成分布:
pom.xml
文件中添加以下依赖:<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
import org.apache.commons.math3.stat.Frequency;
import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
import org.apache.commons.math3.distribution.EmpiricalDistribution;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class DistributionExample {
public static void main(String[] args) {
// 创建一个数据集
List<Double> dataset = Arrays.asList(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0);
// 使用 Frequency 类计算频率分布
Frequency frequency = new Frequency();
for (Double value : dataset) {
frequency.addValue(value);
}
// 打印频率分布
for (Double value : frequency.getUniqueValues()) {
System.out.println("Value: " + value + ", Frequency: " + frequency.getCount(value));
}
// 使用 EmpiricalDistribution 类创建经验分布
EmpiricalDistribution empiricalDistribution = new EmpiricalDistribution(dataset.size());
for (Double value : dataset) {
empiricalDistribution.addValue(value);
}
// 打印经验分布的分位数
DescriptiveStatistics descriptiveStatistics = empiricalDistribution.getSampleStats();
System.out.println("Mean: " + descriptiveStatistics.getMean());
System.out.println("Median: " + empiricalDistribution.getQuantile(0.5));
System.out.println("Standard Deviation: " + descriptiveStatistics.getStandardDeviation());
}
}
这个示例首先创建了一个包含 10 个数据点的数据集。然后,它使用 Frequency
类计算数据集中各个元素的频率,并打印结果。接下来,它使用 EmpiricalDistribution
类创建一个经验分布,并打印均值、中位数和标准差等统计信息。
领取专属 10元无门槛券
手把手带您无忧上云