Naive Bayesを使用してモデルを訓練し、それを単一のレコードに適用する方法があるのだろうかと思っていました。私はwekaに新しいので、これが可能かどうかわかりません。また、クラシファイアの出力をファイルに保存する方法はありますか?NaiveBayesを使用してWekaのインスタンスを1つに分類する
答えて
Naive Bayesは分類挑戦に使用できる単純な確率論的Bayes定理に基づいたモデルなので、答えは肯定です。
Naive Bayesと他の分類子を使用して分類するには、サンプルデータセットでモデルを訓練し、訓練を受けたらモデルを任意のレコードに適用する必要があります。
もちろんこのアプローチを使用するとエラー確率が発生しますが、それは主にサンプルの品質とデータセットのプロパティに依存します。
私はWekaを直接使用していませんが、Rapid Minerの拡張機能として使用していますが、原則を適用する必要があります。モデルが訓練されたら、モデルパラメータを表示/印刷できるはずです。
私は現在javaを使用している間、同じ回答を探しています。
私は訓練の日付を含むarffファイルを作成し、http://weka.wikispaces.com/file/view/WekaDemo.javaを例として使用して、クラスファイヤーを訓練し、評価しました。
Javaでモデルを保存してロードする方法と、さらに重要なことに、単一のレコードに対してテストする方法がまだ分かっています。
WekaDemo.java
...
public void execute() throws Exception {
// run filter
m_Filter.setInputFormat(m_Training);
Instances filtered = Filter.useFilter(m_Training, m_Filter);
// train classifier on complete file for tree
m_Classifier.buildClassifier(filtered);
// 10fold CV with seed=1
m_Evaluation = new Evaluation(filtered);
m_Evaluation.crossValidateModel(
m_Classifier, filtered, 10, m_Training.getRandomNumberGenerator(1));
//TODO Save model
//TODO Load model
//TODO Test against a single information
}
...
編集1:
保存してモデルをロードするには、ここで説明されている:http://weka.wikispaces.com/Use+WEKA+in+your+Java+code#Classification-Classifying%20instancesでHow to test existing model with new instance in weka, using java code?
どのように分類するためのクイックがあります単一インスタンス。
//load model (saved from user interface)
Classifier tree = (Classifier) weka.core.SerializationHelper.read("/some/where/j48.model");
// load unlabeled data
Instances unlabeled = new Instances(new BufferedReader(new FileReader("/some/where/unlabeled.arff")));
// set class attribute
unlabeled.setClassIndex(unlabeled.numAttributes() - 1);
// create copy
Instances labeled = new Instances(unlabeled);
// label instances
for (int i = 0; i < unlabeled.numInstances(); i++) {
double clsLabel = tree.classifyInstance(unlabeled.instance(i));
labeled.instance(i).setClassValue(clsLabel);
System.out.println(clsLabel + " -> " + unlabeled.classAttribute().value((int) clsLabel));
double[] dist =tree.distributionForInstance(unlabeled.instance(i))
for(int j=0; j<dist.length;j++){
System.print(unlabeled.classAttribute().value(j)+": " +dist[j]);
}
}
編集この方法は、訓練評価し、モデルを保存しません。これは私が通常weka guiを使用して行うことです。 (http://weka.wikispaces.com/Serialization) このメソッドは、名目クラスを持つ例ではツリー型モデルを使用しますが、Naive Bayesの例に簡単に変換する必要があります。
- 1. Weka + NaiveBayesによる分類分類子+テキスト分類
- 2. Wekaのインスタンスの分類
- 3. nltk naivebayesテキスト分類用の分類器
- 4. テキスト分類NaiveBayes
- 5. WEKAを使用して誤って分類されたインスタンスを検索する
- 6. wekaのLibSVMを使用した1クラス分類のパラメータ調整
- 7. Wekaでの単一インスタンスの分類
- 8. wekaを使用して画像分類ライブラリを構築する
- 9. Weka分類プロジェクトStringToWordVectorとSMOを使用
- 10. Wekaの新しく訓練されたNaiveBayesクラシファイアで非ラベルデータセットを分類する方法
- 11. 正しく分類されたインスタンスの意味weka
- 12. Wekaを使って感想でツイートを分類する
- 13. wekaを使ってword2vecを分類する
- 14. wekaを使用してJavaのドキュメント分類で動的テストインスタンスを渡す方法
- 15. wekaのベースライン分類器
- 16. wekaの単項クラステキスト分類?
- 17. wekaでのテキスト分類
- 18. wekaは、すべてのデータセットに対して正しく分類されたインスタンスを100%返します
- 19. 分類器のWeka確率分布
- 20. 単純なテキスト分類Javaで純粋なbayes(weka)を使用して
- 21. Weka分類:間違った+正しい<総インスタンス、どのように?
- 22. テキスト分類でWEKAのMultilayerPerceptronを使用した出力が正しくない
- 23. WekaをJavaで使用してテストデータを分類するための訓練モデルを適用できません
- 24. Wekaで新しい画像を分類する
- 25. Weka OneRには?分類器モデルとして
- 26. 汎用ファクトリメソッドを1つ使用してインスタンスを作成する
- 27. 1つのクラスデータ分類テンソル
- 28. Weka J48の分類はツリーに従っていません
- 29. CNTK分類モデルすべて1を分類する
- 30. Weka ADTreeの分類をExcelで繰り返し
こんにちは私は分類のこのタイプが必要です。今私は分類を構築しています。しかし、私はどのように単一のレコードを解析し、クラス値の確率を得るか分からない。 – Sajithv