私はrandomforestを使って時系列解析をしようとしています。 PFB私のコードRのランダムフォレストを使った時系列予測
Subsales<-read.csv('Sales.csv')
head(Subsales)
サンプルデータ:
Date SKU City Sales
<date> <chr> <chr> <dbl>
1 2014-08-11 Vaseline Petroleum Jelly Pure 60 ml Jeddah1 378
2 2014-08-18 Vaseline Petroleum Jelly Pure 60 ml Jeddah1 348
3 2014-08-25 Vaseline Petroleum Jelly Pure 60 ml Jeddah1 314
4 2014-09-01 Vaseline Petroleum Jelly Pure 60 ml Jeddah1 324
5 2014-09-08 Vaseline Petroleum Jelly Pure 60 ml Jeddah1 352
6 2014-09-15 Vaseline Petroleum Jelly Pure 60 ml Jeddah1 453
####Length of training & testing set Splitting it 80-20####
train_len=round(nrow(SubSales)*0.8)
test_len=nrow(SubSales)
######Splitting dataset into training and testing#####
#### Training Set
training<-slice(SubSales,1:train_len)
#### Testing Set
testing<-slice(SubSales,train_len+1:test_len)
training=training[c(1,4)]
testing=testing[c(1,4)]
library(randomForest)
set.seed(1234)
regressor = randomForest(formula=Sales~.,
data=training,
ntree=100)
y_pred = predict(regressor,newdata = testing)
私はテストデータset.Allに予測機能を使用する場合、私は静止した結果を取得していますが値は369、私は別のために試してみたされている予測しますデータセット私は同じ結果を得ました。誰でも私がここで間違っていることを教えてもらえますか?
販売を予測するものは何ですか?現時点では、日付と1つのレベルを持つ2つの要因(製品と都市)のみが表示されます。フィーチャー・エンジニアリングから始めましょう。たとえば、日付から曜日を抽出し、それを7レベルの要素として含めるようにしてください。 – JanLauGe
'slice 'がどこから来たのかわからないと、' training'と 'testing'データセットは2つの値に制限されているようです。おそらく、最初の列と第4列の 'training = training [、c(1,4)]を選択するためのカンマがないかもしれません。 – nya
'test <-slice(SubSales、(train_len + 1):test_len)'を試して、括弧try <1 + 2:5'の効果を見て、期待した結果と比較してください。かっこなしでは、2つのスライスは本質的に分離の目的を打ち負かして重複します。そのようなタスクの 'caret'パッケージから' createDataPartition'関数を強くお勧めします。 – OdeToMyFiddle