2017-04-26 7 views
0

私はWaitingTime変数を予測するモデルを開発しようとしています。私は、次のデータセットでランダムなフォレストを実行しています。ハイOOBエラーレート

$ BookingId   : Factor w/ 589855 levels "00002100-1E20-E411-BEB6-0050568C445E",..: 223781 471484 372126 141550 246376 512394 566217 38486 560536 485266 ... 
$ PickupLocality  : int 1 67 77 -1 33 69 67 67 67 67 ... 
$ ExZone    : int 0 0 0 0 1 1 0 0 0 0 ... 
$ BookingSource   : int 2 2 2 2 2 2 7 7 7 7 ... 
$ StarCustomer   : int 1 1 1 1 1 1 1 1 1 1 ... 
$ PickupZone   : int 24 0 0 0 6 11 0 0 0 0 ... 
$ ScheduledStart_Day : int 14 20 22 24 24 24 31 31 31 31 ... 
$ ScheduledStart_Month : int 6 6 6 6 6 6 7 7 7 7 ... 
$ ScheduledStart_Hour : int 14 17 7 2 8 8 1 2 2 2 ... 
$ ScheduledStart_Minute : int 6 0 58 55 53 54 54 0 12 19 ... 
$ ScheduledStart_WeekDay: int 1 7 2 4 4 4 6 6 6 6 ... 
$ Season    : int 1 1 1 1 1 1 1 1 1 1 ... 
$ Pax     : int 1 3 2 4 2 2 2 4 1 4 ... 
$ WaitingTime   : int 45 10 25 5 15 25 40 15 40 30 ... 

Iは、サンプルのメソッドを使用して、80%/ 20%にトレーニング/テストサブセットにデータセットを分割した後BookingId因子を除いたランダムフォレストを実行しています。これは、予測を検証するためにのみ使用されます。

問題は、OOBエラー率の試行と低下を試み、精度を上げる試みがすべて失敗したことです。私が達成できた最大の精度は〜23%でした。

私は私の最後の試みがMrFlickの提案に従い、取得するために使用した機能の数、異なるntreeとmtry値、異なるトレーニング/テスト比、およびまた= 40 WaitingTime <を考慮したデータのみを取るを変更しようとしましたすべてのクラスの同じサンプルサイズは、私の予測変数(WaitingTime)のすべてのクラスに対して同じサンプルサイズを取得します。 1

tempdata <- subset(tempdata, WaitingTime <= 40) 
rndid <- with(tempdata, ave(tempdata$Season, tempdata$WaitingTime, FUN=function(x) {sample.int(length(x))})) 

data <- tempdata[rndid<=27780,] 

あなたは、私が50%以上、少なくとも精度を達成することができますどのように任意の他の方法を知っていますか? WaitingTimeクラスによって

レコード:事前に

ありがとう!ランダムフォレストのハイパーパラメータをいじっ

答えて

0

は、ほぼ確実に大幅にパフォーマンスが向上しません。

私はあなたのデータの回帰アプローチを使用してお勧めします。待機時間は分類的ではないので、分類手法はあまりうまく機能しないかもしれません。あなたの分類モデルは注文情報を失います。5 15など

最初に試してみたいのは、単純な線形回帰を使用することです。テストセットから予測値をBinし、精度を再計算します。より良い?悪い?それが良い場合は、randomForest回帰モデルを試してみる(または私が望むように、グラジエントを増強したマシン)。

第二に、それはあなたのデータはちょうどあなたが興味を持っている変数の予測するものではない可能性があります。たぶん、データは何とか上流台無しました。結果と予測子の相関および/または相互情報を最初に計算することは、良い診断である可能性があります。

また、非常に多くのカテゴリラベルで、23%は実際にはそれほど悪くないかもしれません。ランダム推測に基づいて特定のデータ点が正しくラベル付けされる確率は、N_class/Nである。したがって、ランダム推測モデルの精度は50%ではありません。 adjusted rand indexを計算すると、ランダムな推測よりも優れていることがわかります。

+0

答えていただきありがとうございます。あなたのリードに続き、元に戻るでしょう。 –

+0

こんにちはTHC、 は、私は私のデータセットに対して、単純な回帰を実行し、145.1712のSMEを得ました。私はまた、相関関係を調べ、変数間に相関がないことを見出した。私は調整されたrandインデックスを計算する必要がありますが、他のアルゴリズムを試してみたいと思うかもしれませんが、より良い予測を返すアルゴリズムがあるかもしれません。 –

関連する問題