4

私は自分のデータセットを使用して列の作成者を特定しようとする何かに取り組んできました。

mlpypythonライブラリを使用する予定です。優れたドキュメントがあります(約100ページのPDF)。他のライブラリの提案も受け付けています。

問題は、データマイニングと機械学習の概念に迷っているということです。あまりにも多くの作業があり、アルゴリズムと概念が多すぎます。

私は方向性、どのアルゴリズム/概念を学ぶべきかを尋ね、そして私の特定の問題を探しています。

これまでのところ、このようなデータセットを作成しました。

| author | feature x | feature y | feature z | some more features |
|--------+-----------+-----------+-----------+--------------------|
| A      |         2 |         4 |         6 | ..                 |
| A      |         1 |         1 |         5 | ..                 |
| B      |        12 |        15 |         9 | ..                 |
| B      |        13 |        13 |        13 | ..                 |

ここで、新しい列を取得して解析します。その後、列のすべての機能を使用できるようになります。私の目的は、その列の作成者が誰であるかを把握することです。

私はMLの人ではないので、すべての行のフィーチャ間の距離を取得して、最も近いものを選択することしか考えられません。しかし、私はこれが私が行くべき方法ではないと確信しています。

道順、リンク、読み物などをいただければ幸いです。

4

4 に答える 4

3

十分なトレーニングデータがある場合は、目的に応じてkNN(k最近傍)分類器を使用できます。わかりやすく、しかもパワフルです。

可能な実装については、scikits.annを確認してください。

ここでのこのチュートリアルは、scikits-learnのチュートリアルの良いリファレンスとして役立ちます。

編集:さらに、ここにscikits-learnのkNNのページがあります。与えられた例からそれを簡単に理解することができます。

そして、mlpyにもkNNがあるようです

于 2013-03-20T18:16:37.317 に答える
2

mlpyに実装されているアルゴリズムの選択肢が豊富なので、問題ないはずです。サポートベクターマシンは素晴らしいと言ったとき、私はスティーブLに同意しますが、特にMLを初めて使用する場合は、内部の詳細が使いやすい場合でも、内部の詳細を把握するのは簡単ではありません。

kNNに加えて、分類木(http://en.wikipedia.org/wiki/Decision_tree_learning)とロジスティック回帰(http://en.wikipedia.org/wiki/Logistic_regression )を検討できます。

手始めに、決定木には、理解しやすく、したがってデバッグしやすい出力を生成するという利点があります。

一方、ロジスティック回帰は、より多くのデータが必要な場合に、良好な結果をもたらし、非常に適切にスケーリングできます。

あなたの場合、少し読んだ後、より快適に作業できるアルゴリズムを探していると思います。ほとんどの場合、それらのすべてはあなたに非常にまともな結果を与えることができます。幸運を!

于 2013-03-20T19:04:40.153 に答える
2

他の人が述べたように、あなたは著者の帰属のために多くのアルゴリズムを使うことができます。kNNは良い出発点です。さらに、ロジスティック回帰、ナイーブベイズ分類器、ニューラルネットワークなど、より正確な予測を提供する他のいくつかのアルゴリズムを試すことができます。

著者の帰属と盗用検出にも興味があります。実際、私はソースコードの作成者の帰属に上記の手法を使用しました。以下の研究論文を使用して、これらの詳細を読むことができます。

  1. http://www.ijmlc.org/papers/50-A243.pdf [ソースコード盗用検出のための機械学習ベースのツール]
  2. http://dl.acm.org/citation.cfm?id=2423074 [教師なし特徴学習によるソースコード作成者の識別]

さらに、Pythonの使用を計画している場合は、http://scikit-learn.org/stable/ライブラリも参照してください。これは、優れたドキュメントが付属する包括的なライブラリでもあります。

于 2013-03-22T07:30:30.993 に答える
1

MLに精通していない場合、私が推奨する最初の3つのアルゴリズムは次のとおりです。

1-ロジスティック回帰2-ナイーブベイズ3-サポートベクターマシン

予測パフォーマンスのみに関心があり、十分なトレーニングデータがあり、欠測値がない場合は、ベイジアンネットワークなどのより複雑な方法を使用しても、予測パフォーマンスが統計的に有意に向上しないことがわかります。たとえそうだとしても、これらの3つの(比較的)単純な方法論から始めて、それらを参照ベンチマークとして使用する必要があります。

于 2013-07-29T13:52:15.590 に答える