/** 最小最大规范化也叫离差标准化
* 可以对原始数据进行线性变换,
* 假定Min和Max是最小值和最大值,
* v是该区间中的一个值,将其映射到新的区间[newMin, newMax]中为v'
* 则有:
* v' = (v-Min)/(Max-Min)*(newMax-newMin)+newMin
* 这种方法有一个缺陷就是当有新数据加入时,可能导致Max和Min的变化,需要重新定义。
*/
package re;
public class MinMaxNormalization {
public static void main(String[] args) {
MinMaxNormalization mmn = new MinMaxNormalization();
double newV = mmn.Normalization(1500, 1000, 2000, 0, 1);
System.out.println("The result is " + newV);
}
/**
* @author
* @param v 做标准化的样本数据
* @param Min 样本数据最小值
* @param Max 样本数据最大值
* @param newMin 新的映射区间最小值
* @param newMax 新的映射区间最大值
* @return
*/
public double Normalization(double v, double Min, double Max, double newMin, double newMax) {
return (v-Min)/(Max-Min)*(newMax-newMin)+newMin;
}
}