java - Java 中数据集的规范化

标签 java double cluster-computing normalization

我正在研究一个聚类程序,并且有一个 double 据集,我需要对其进行归一化,以确保每个 double (变量)具有相同的影响。

我想使用最小-最大归一化,其中每个变量的最小值和最大值都是确定的,但我不确定如何在我的数据集上用 Java 实现它。有人有什么建议吗?

最佳答案

Encog Project wiki给出 utility class进行范围归一化。

构造函数采用输入和规范化数据的高值和低值。

/**
     * Construct the normalization utility, allow the normalization range to be specified.
     * @param dataHigh The high value for the input data.
     * @param dataLow The low value for the input data.
     * @param dataHigh The high value for the normalized data.
     * @param dataLow The low value for the normalized data. 
     */
    public NormUtil(double dataHigh, double dataLow, double normalizedHigh, double normalizedLow) {
        this.dataHigh = dataHigh;
        this.dataLow = dataLow;
        this.normalizedHigh = normalizedHigh;
        this.normalizedLow = normalizedLow;

然后您可以对样本使用normalize 方法。

/**
 * Normalize x.
 * @param x The value to be normalized.
 * @return The result of the normalization.
 */
public double normalize(double x) {
    return ((x - dataLow) 
            / (dataHigh - dataLow))
            * (normalizedHigh - normalizedLow) + normalizedLow;
}

要找到数据集的最小值和最大值,请使用此问题的一个答案:Finding the max/min value in an array of primitives using Java .

关于java - Java 中数据集的规范化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30680389/

相关文章:

Java:(int) double 可靠吗?

java - 识别非集群环境中的序列化问题

python - 余弦相似度与余弦距离

api - Databricks Job API 使用单节点集群创建作业

Java,简化检查 int 数组是否包含 int

java - 如何在ebean中使用多个数据库

java - 如何从EhCache获取初始数据快照

java - 用于 Java Web 应用程序的动态 LESS 编译器?

ruby - 在不将数组转换为字符串的情况下摆脱数组中的双引号

delphi - 在 Delphi 中将 GetHashCode 的 double 转换为整数