2017-11-02 18 views
-4

私はこのようなトランザクションデータをいくつか持っています。機械学習を使用して将来のイベントを予測する

SHOP_ID, DATE , DAY, IN_TIME , OUT_TIME 
shop007, 2017/5/20, mon, 05:03:38, 05:05:33 
shop0010, 2017/4/13, sat, 08:53:42, 08:53:45 
shop005, 2017/10/25, wed, 03:02:42, 03:04:15 
shop001, 2017/10/5, sun, 19:09:37, 19:11:35 
shop008, 2017/1/19, sat, 14:33:01, 14:35:00 
shop004, 2017/3/13, sun, 02:16:06, 02:17:59 
shop0010, 2016/7/4, thu, 10:25:54, 10:25:59 
shop008, 2016/11/6, sat, 22:52:21, 22:53:49 
shop004, 2016/11/13, tue, 08:30:51, 08:32:04 
shop007, 2016/10/2, wed, 19:28:29, 19:29:48 
shop006, 2017/9/25, mon, 01:11:19, 01:12:12  
shop003, 2017/1/14, mon, 00:43:33, 00:43:53 
shop009, 2017/7/7, fri, 16:35:52, 16:36:54 
shop008, 2017/4/26, tue, 06:31:23, 06:33:10 
shop007, 2016/3/19, fri, 04:46:34, 04:48:04 
shop001, 2016/11/4, mon, 11:16:55, 11:18:22  
shop001, 2017/8/31, sat, 07:07:25, 07:09:16 
shop005, 2017/3/16, mon, 17:17:00, 17:18:47 
shop001, 2017/4/23, fri, 04:35:37, 04:37:24 
shop003, 2016/9/18, thu, 08:53:55, 08:55:35 
shop001, 2016/1/12, sun, 10:25:43, 10:26:09 
shop009, 2017/4/9, mon, 17:44:45, 17:45:54 
shop004, 2017/7/1, mon, 01:23:14, 01:24:37 
shop002, 2017/12/28, thu, 18:00:34, 18:00:50 
shop009, 2016/4/6, tue, 00:48:25, 00:49:50 
shop009, 2016/4/10, sat, 14:21:41, 14:22:19 
shop001, 2016/5/16, wed, 15:07:17, 15:09:14 
shop005, 2016/10/6, wed, 23:09:58, 23:10:07 
shop009, 2016/5/6, tue, 09:39:47, 09:39:55 
shop002, 2017/6/16, sat, 19:35:08, 19:35:53 
shop005, 2017/5/26, wed, 10:08:24, 10:09:31 
shop003, 2016/8/7, fri, 06:52:28, 06:52:54 
shop006, 2017/5/5, thu, 17:28:06, 17:28:50 
shop001, 2016/1/7, wed, 10:39:07, 10:39:24 

そして、私が収集したコーパスデータを使用して、現在の週の&日&時間で歩いて、顧客の数を予測する時系列モデルを作成したいです。私が欲しい

モデルはncustomersは、顧客の合計とtimeは可能性があり、週&日&時間ですncustomers ~ timeです。

独立変数はカテゴリ型、従属変数は連続型であるため、私はライナー回帰モデルを使用できるかどうか分かりません。

+0

あなたは、(= O)(= 1)または「XがYに属していない」は、それぞれ単に「XがYに属している」ことを示す2値変数のセットとしてカテゴリ変数をマッピングすることができます。そのようなバイナリ変数は、多くの異なるモデルに独立変数として供給することができます。 – Heikki

答えて

0

まず、正確にあなたのタイムスペースを定義する必要があります。毎日のモデルが必要な場合は、可変時間として「日付」を使用する必要があります。この場合、必要なのは時系列予測モデルだと思います。

線形回帰はオプションですが、この場合にはより洗練されたモデルと便利なモデルがあります。私はあなたのいくつかを残します。

次のステップは、最良のモデルを選択することです。そのため、たとえば最小MSEでモデルを実行する必要があります(他の方法があります)。私はあなたにこのループのための "ループ"を与えます。

if (!require("forecast")){install.packages("forecast"); library(forecast)} 

train<-ts(your_data_train,frequency=24) 
test<-ts(your_data_test,frequency=24) 


fit1<-tslm(train ~ trend + season) #linear regression 
fcast1 <- forecast(fit1,h=npred ,level = 0) 

fit2<-ets(train,ic="aic") #exponencial smoothing without Box-Cox 
fcast2 <- forecast(fit2,h=npred ,level = 0) 

fit3<-HoltWinters(train) #Clasic Holtwinter (similar to exponencial smoothing) 
fcast3 <-forecast(fit3,h=npred ,level = 0) 

fit4<-HoltWinters(train,seasonal = "mult") #Holtwinter mult 
fcast4 <-forecast(fit4,h=npred ,level = 0) 

fit5 <- tbats(train) #Model TBATS 
fcast5 <- forecast(fit5, h=npred ,level = 0) 

lam <- BoxCox.lambda(train) 
fit6 <- ets(train, additive=TRUE, lambda=lam) #Model exponencial smoothing with de Box.Cox 
fcast6 <-forecast(fit6,h=npred,level = 0) 

pred<-c(fcast1$mean,fcast2$mean,fcast3$mean,fcast4$mean,fcast5$mean,fcast6$mean) 

error<-0 
for(i in 1:length(pred)){ 
    error[i]<-mean((pred[i]-test)^2) 
} 
+0

いくつかの時間をコンセプトに費やします。詳細な回答をありがとう、本当にそれを感謝します。病気は結果と戻って取得:) –

+0

あなたが好きなら、私にupvoteを与えてください、それは私をたくさん助けます:D –

関連する問題