这是一个最大熵的简明Java实现,提供提供训练与预测接口。训练算法采用GIS训练算法,附带示例训练集和一个天气预测的Demo。
- 调用方法
public static void main(String[] args) throws IOException { String path = "data/train.txt"; MaxEnt maxEnt = new MaxEnt(); maxEnt.loadData(path); maxEnt.train(200); List<String> fieldList = new ArrayList<String>(); fieldList.add("Sunny"); // 假如天晴 fieldList.add("Humid"); // 并且湿润 Pair<String, Double>[] result = maxEnt.predict(fieldList); // 预测出门和自宅的概率各是多少 System.out.println(Arrays.toString(result)); }
- 算法详解 最大熵属于辨识模型,能够满足所有已知的约束, 对未知的信息不做任何过分的假设。 详见《最大熵的Java实现》