weka学习(一)

1.公司最近要做风控系统, 不是很懂,看了一些方法,记录下来。 加载arff 文件 和保存文件。 

@Service("commonFunctionBiz")
public class CommonFunctionBizImpl implements CommonFunctionBiz {

    private static final Logger LOGGER = LoggerFactory.getLogger(CommonFunctionBizImpl.class);

    @Override
    public Instances loadArffFile(String arffFilePath) {

        LOGGER.info("[loadArffFile]:使用指定加载器的方法来加载ARFF文件");
        Instances data = null;
        try {

            // LOGGER.info("[loadArffFile]:使用DataSource类的read方法来加载ARFF文件");
            // Instance data = ConverterUtils.DataSource.read(arffFilePath);

            ArffLoader loader = new ArffLoader();
            loader.setSource(new File(arffFilePath));
            data = loader.getDataSet();

        } catch (BizException bizE) {
            LOGGER.error("加载ARFF文件出现业务异常,错误原因:", bizE);
        } catch (Exception e) {
            LOGGER.error("加载ARFF文件出现系统异常,错误原因:", e);
        }

        return data;
    }

    @Override
    public void saveArff2Csv(String savePath, Instances data) {
        LOGGER.info("[saveArff2Csv]:保存ARFF到CSV文件开始");
        try {
            // 文件扩展名与数据文件格式相符,可用DataSink类
            // ConverterUtils.DataSink.write(savePath, data);

            // 明确指定CSVSaver转换器
            CSVSaver saver = new CSVSaver();
            saver.setInstances(data);
            saver.setFile(new File(savePath));
            saver.writeBatch();

        } catch (BizException bizE) {
            LOGGER.error("保存CSV文件出现业务异常,错误原因:", bizE);
        } catch (Exception e) {
            LOGGER.error("保存CSV文件出现系统异常,错误原因:", e);
        }
    }
}

猜你喜欢

转载自my.oschina.net/u/3701483/blog/2244602