• Weka训练模型的存取


    因为WEKA中所有分类器都实现了Serializable,所以只需要用java的ObjectOutputStream就可以实现了。

        /**
         * 存储model
         * 
         * @param model
         *            训练过的分类器 例如J48
         * @param ModelPath
         *            存储路径
         */
        private void persistModel(Classifier model, String ModelPath) {
            ObjectOutputStream oos = null;
            try {
                oos = new ObjectOutputStream(new FileOutputStream(ModelPath));
                oos.writeObject(model);
                oos.flush();
                oos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 加载model
         * 
         * @param ModelPath
         *            存储路径
         * @return 分类器
         */
        private Classifier reloadPersistModel(String ModelPath) {
            ObjectInputStream ois = null;
            try {
                ois = new ObjectInputStream(new FileInputStream(new File(ModelPath)));
                Classifier model = (Classifier) ois.readObject();
                ois.close();
                return model;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }

    调用的地方

                    Classifier m_classifier = new J48();
                    m_classifier.buildClassifier(instances);
                    // 存储model
                    persistModel(m_classifier, "/data/data/com.example.wekatest/model");
                    // 读取model
                    Classifier m_classifier2 = reloadPersistModel("/data/data/com.example.wekatest/model");
                    Log.d(LOG_TAG, m_classifier2.toString());
  • 相关阅读:
    构建之法阅读笔记2
    2020.2.10
    2020.2.9
    2020.2.8
    2020.2.7
    2020.2.6
    2020.2.5
    学习进度——第十三周
    PHPStorm+XAMPP开发php项目
    第一阶段成果建议
  • 原文地址:https://www.cnblogs.com/scarecrow-blog/p/6769760.html
Copyright © 2020-2023  润新知