package PCI.ASQ.pca; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import PCI.ASQ.basic.RatioMatrix; //这个函数用于求模糊概率集平均值采样主要成份分析 //思想:贝叶斯 模糊数学 统计于概率论 //实现:罗瑶光 //作者,著作权人: 罗瑶光,浏阳 public class PCAMeanOfFuzzPC{ public static RatioMatrix getSimilarFuzzSetWithScale(RatioMatrix input, List groups , double scale) { List output= new ArrayList<>(); Iterator iterators= groups.iterator(); while(iterators.hasNext()) { RatioMatrix ratio= iterators.next(); double rightRightMean= ratio.getRightRightRatio(); double rightErrorMean= ratio.getRightErrorRatio(); double errorRightMean= ratio.getErrorRightRatio(); double errorErrorMean= ratio.getErrorErrorRatio(); double predictionRightRight= Math.abs(input.getRightRightRatio()- rightRightMean); double predictionRightError= Math.abs(input.getRightErrorRatio()- rightErrorMean); double predictionErrorRight= Math.abs(input.getErrorRightRatio()- errorRightMean); double predictionErrorError= Math.abs(input.getErrorErrorRatio()- errorErrorMean); double tempSumRight= predictionRightRight+ predictionRightError+ predictionErrorRight + predictionErrorError; if(tempSumRight< scale) { output.add(ratio); } } RatioMatrix outputMean= new RatioMatrix(); Iterator iteratorsOutput= output.iterator(); while(iteratorsOutput.hasNext()) { RatioMatrix ratio= iteratorsOutput.next(); outputMean.I_ErrorErrorRatio(ratio.getErrorErrorRatio()+ outputMean.getErrorErrorRatio()); outputMean.I_ErrorRightRatio(ratio.getErrorRightRatio()+ outputMean.getErrorRightRatio()); outputMean.I_RightErrorRatio(ratio.getRightErrorRatio()+ outputMean.getRightErrorRatio()); outputMean.I_RightRightRatio(ratio.getRightRightRatio()+ outputMean.getRightRightRatio()); } outputMean.I_ErrorErrorRatio(outputMean.getErrorErrorRatio()/ output.size()); outputMean.I_ErrorRightRatio(outputMean.getErrorRightRatio()/ output.size()); outputMean.I_RightErrorRatio(outputMean.getRightErrorRatio()/ output.size()); outputMean.I_RightRightRatio(outputMean.getRightRightRatio()/ output.size()); return outputMean; } }