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. WEKAを使用して誤って分類されたインスタンスを検索する
- 4. wekaのLibSVMを使用した1クラス分類のパラメータ調整
- 5. Wekaでの単一インスタンスの分類
- 6. Wekaの新しく訓練されたNaiveBayesクラシファイアで非ラベルデータセットを分類する方法
- 7. 正しく分類されたインスタンスの意味weka
- 8. Wekaを使って感想でツイートを分類する
- 9. wekaの単項クラステキスト分類?
- 10. wekaでのテキスト分類
- 11. 汎用ファクトリメソッドを1つ使用してインスタンスを作成する
- 12. 分類中にWeka nullPointerExceptionが発生しました
- 13. wekaで分類するためのテキストの表現方法は?
- 14. CurrentRoleInstance.Idを使用して1つのインスタンスでタスクを実行
- 15. array.delete(array.min)を使用して値の1つのインスタンスを削除する
- 16. wekaを使用してディスカッショントピックに基づいて分類の入力として電子メールデータを表現する方法は?
- 17. SQLでグループを使用してデータを分類する
- 18. カスタム分類を使用してWordpressクエリを注文する
- 19. WEKAの分類器の混同行列の読み方
- 20. Bayes分類の前にPCAを使用
- 21. 異なるスレッドで1つのクラスのインスタンスを使用する
- 22. Tridion Coreサービス - 階層分類を使用して作業する
- 23. WekaでSVMを使用するには?
- 24. TensorFlowを使用したマルチラベルテキスト分類
- 25. TensorFlow - ニューラルネットワークを使用したテキスト分類
- 26. TensorFlowデータセットを使用した分類
- 27. LSA/SVDを使用したドキュメント分類
- 28. naiveBayes(e1071)での分類が機能しません($ levelsはNULLを返します)
- 29. ACFを使用して分類法の画像を取得
- 30. SDWebImageをキャッシュなしで1つのインスタンスに使用する方法
こんにちは私は分類のこのタイプが必要です。今私は分類を構築しています。しかし、私はどのように単一のレコードを解析し、クラス値の確率を得るか分からない。 – Sajithv