2017-07-08 8 views
0

私のデータを分割することができるパッケージがありますか?目に見えないデータのモデルをテストするためのパッケージ

データの2/3でモデルを最適化することをお勧めします。 それから最後の1/3に実行して、それがどれくらい上がっているかを確認します。

これは愚かな質問のように聞こえるかもしれませんが、最適化されたモデルをデータの最後の1/3/rdに転送するには、その方法がありますか?それ以外の場合は、もう一度バックテストしていますか?アイデアは、実際のライブデータを見ているように、データの最後の1/3にテストを転送することです。

そこにRパッケージがありますか?

**回答があります。

  1. データの最初の2/3rdsにモデルの最適化:

    それは以下の手順でそのrelativleyシンプルなタスクは、この場合には思われます。

  2. データの最後の1/3のパラメータをテストします。

これは、サンプルサイズ全体にわたってモデルをテストして最適化するのとは対照的です。このようにして、モデルには見えないデータが表示されます。

答えて

1

パッケージがありますが、要件に応じて、ベースRの抽出演算子を使用して行うことができます。あなたの時系列や何らかの順序付けられた観察のように聞こえます。

データを取得したら、トレーニングインデックスを作成します。 次に、トレーニングインデックスでデータをサブセット化してトレーニングセットを作成します。 次に、データをもう一度サブセット化して列車のインデックスを引いて、テストセットを作成します。また

data <- data.frame(x=runif(10000), y=runif(10000)) 

train_index <- 1:(NROW(data)*0.666) 

train_set <- data[train_index, ] 

test_set <- data[-train_index, ] 

caretパッケージは非常に人気があり、あなたが使用しているモデルとデータに応じて、様々な洗練されたレベルのサンプリング技術を実現するための多くの追加の引数を持つtrain機能を持っています。あなたがそれを使用していない場合は、それを確認してください。

あなたが時系列で作業している場合は、forecastパッケージは、関心のあるかもしれない2つの機能を持ちCVartsCV、彼らはあなたが必要な方法でデータを分割しませんが、彼らは、ローリングに基づいてデータを訓練しますいくつかの時系列モデルにとってより適切である。

幸運を祈る!

+0

オクラホマ - 実際に2/3を作るために、1行あたり.666の乗数を使用するようなサブセットにすることはできませんでした。ありがとう –

1

これに役立ついくつかのパッケージがあります。 caToolsパッケージには、具体的には、データセットをテストセットとトレーニングセットに分割するためのsample.splitという機能があります。

参照:sample.split documentation

あなたが最初の引数(通常は応答変数)として、データセット内の列を渡すと、それはその変数の値の間で比例したデータセットを分割します。これは、応答変数が5%の値しか得られない場合に役立ちます。訓練とテストの両方でそれぞれの値が同じように表現されるようにしたいと考えています。

split = sample.split(wikiWords$Vandal, SplitRatio = 2/3) 
wikitrain = subset(wikiWords, split == TRUE) 
wikitest = subset(wikiWords, split == FALSE) 
関連する問題