3

私のデータは果物で構成されており、色や形、その他の特徴によって記述されているとします。ユーザーが述べた機能を持つ最大 X 個の果物を返したいと思います。また、最小数の質問でそれを行いたいと考えています。

私が常にユーザーに最初に尋ねる質問は、果物の色と形です。ユーザーの回答によると、テクスチャ サイズ ピール タイプなどの K 個以上の機能を要求したいと思います。K は、最も正確な X 結果を返す最小の数値にしたいので、次の機能を知りたいです。私はユーザーに尋ねるべきです。私のDBは、特徴(任意の値)に分類された果物で構成されています。

機械学習の問題ですか?使用するアルゴリズムと使用する実装を教えてください。この問題に答える適切なアルゴリズムについて、scikit-learn、nltk、weka を調べてみました。これらのアルゴリズムはこの問題に答えるのに適していないか、それらを使用したより具体的なガイドが必要です。

ありがとうございました!

4

2 に答える 2

1

はい、そうです。

デシジョン ツリーは、各機能にポイントを投影し、最適な分割を見つけます。この分割は、さまざまなメトリックによって決定できます。たとえば、ジニ インデックスまたはエントロピー (情報ゲイン) Sci-kit の学習では、sklearn.treeにこれがあります。

5 つのデータ ポイントがあるとします。

 color   shape   fruit
 orange  oblong  orange
 red     round   apple
 orange  round   orange
 red     oblong  apple
 red     round   apple

したがって、トレーニングするには、次のようにします。

feature   class  |  feature  class
orange    orange |  oblong   orange
red       apple  |  round    apple
orange    orange |  round    orange
red       apple  |  oblong   apple
red       apple  |  round    apple

ご覧のとおり、最適な分割は色です。このデータセットでは、色 = 赤の場合は果物 = リンゴ、色 = オレンジの場合は果物 = オレンジです。

これらのデータ ポイントでトレーニングすると、決定木が得られます。

        color
___________________
|                 |
|                 |
red               orange
apple             orange

実際には、これらの分割は数値に基づいていますnum > .52

これにどのアルゴリズムを使用するかは、状況によって異なります。独自のデータについて調査を行う必要があります。これは、データセットごと/好みの種類のものであることが多いためです。

上記の例では、次のように sci-kit Learn を使用できます。

from sklearn.trees import DecisionTreeClassifier
#make your sample matrix 
samples = [[1,1], [0,0], [1,0], [0,1], [0,0]]
#make your target vector ( in this case fruit)
fruitname = [1, 0, 1, 0, 0]
#create and fit the model
dtree =  DecisionTreeClassifier()
dtree =  dtree.fit(samples, fruitname)
#test an unknown red fruit that is oblong
dtree.predict([0,1])

color=1 は果物がオレンジ色であることを意味し、shape=1 は果物が長方形であることを意味することに注意してください。

より詳細な概要については、sci-kitユーザー ガイドを参照してください。

于 2013-03-01T09:52:14.920 に答える
0

はい、これは(ある意味で)機械学習の問題です。多くの異なるアルゴリズムがある決定木アプローチを提案します。ID3C4.5は、最大の情報ゲインに基づいて次の質問(ツリーを分割する次の機能)に基づいて深さを最小化するのに役立つ単純なアルゴリズムです。

于 2013-03-01T09:48:20.547 に答える