package com.jstarcraft.ai.model.rule.supervised.regress; import com.jstarcraft.ai.data.DataInstance; import com.jstarcraft.ai.data.DataModule; import com.jstarcraft.ai.model.supervised.Practicer; import com.jstarcraft.ai.model.supervised.Predictor; /** * 零规则回归器 * * @author Birdy * */ public class ZeroRuleRegressor implements Practicer, Predictor { private float quantity; @Override public void practice(DataModule module, DataModule... contexts) { float markSum = 0F; float weightSum = 0F; for (DataInstance instance : module) { markSum += instance.getQuantityMark() * instance.getWeight(); weightSum += instance.getWeight(); } quantity = markSum / weightSum; } @Override public void predict(DataInstance instance, DataInstance... contexts) { instance.setQuantityMark(quantity); } }