0

ルールであるデータセットがあり、ルールを分類する際に少なくとも 100% の精度を持つ決定木を生成したいのですが、100% を得ることはできません。minNumObjs を 1 に設定してプルーニングを解除しましたが、正しく分類されたインスタンスは 84% しか得られません。

私の属性は次のとおりです。

@attribute users numeric
@attribute bandwidth numeric
@attribute latency numeric
@attribute mode {C,H,DCF,MP,DC,IND}

元データ:

2,200000,0,C
2,200000,1000,C
2,200000,2000,MP
2,200000,5000,C
2,400000,0,C
2,400000,1000,DCF

インスタンスの 100% を分類できない理由と、インスタンスの 100% を分類する方法 (属性を数値にすることを許可しながら) を理解するのを誰かが助けてくれますか?

ありがとう

4

1 に答える 1

2

異なるラベルを持つ同一の特徴ベクトルが原因で、100% の精度を得ることは不可能な場合があります。あなたの場合、usersbandwidth、およびlatencyは機能であり、modeは予測しようとしているラベルであると推測しています。その場合、たまたま異なるラベルを持つ { users, bandwidth, } の同一の値が存在する可能性があります。latencymode

一般に、同じフィーチャに異なるラベルを付けるには、次のいずれかの方法で発生する可能性があります。

  1. データの読み取りが悪いため、データにノイズがあります。
  2. キャプチャされていないランダム性のソースがあります。
  3. 異なるラベルを区別できる機能は他にもありますが、それらの機能はデータ セットにありません。

ここでできることの 1 つは、デシジョン ツリーを通じてトレーニング セットを実行し、誤分類された項目を見つけることです。それらが間違っている理由を特定し、上記の内容を示すデータ インスタンスがあるかどうかを確認してください (つまり、同じ機能でラベルが異なるデータ インスタンスがいくつかある)。

于 2016-04-21T21:14:57.787 に答える