【发布时间】:2017-12-12 13:13:09
【问题描述】:
我对 R 完全陌生,我正在尝试通过使用 R 中的神经网络包训练神经网络来预测测试数据集的 Weekly_Sales。
我看过的数据(train1):
Store Dep Date Temperature Fuel_Price MarkDown1 MarkDown2 MarkDown3 MarkDown4 MarkDown5 CPI Unemployment IsHoliday Rank Weekly_Sales
1 1 5/2/2010 42.31 2.572 -2000 -500 -100 -500 -700 211.0963582 8.106 0 13 24924.50
1 1 12/2/2010 38.51 2.548 -2000 -500 -100 -500 -700 211.2421698 8.106 1 13 46039.49
1 1 19/02/2010 39.93 2.514 -2000 -500 -100 -500 -700 211.2891429 8.106 0 13 41595.55
1 1 26/02/2010 46.63 2.561 -2000 -500 -100 -500 -700 211.3196429 8.106 0 13 19403.54
1 1 5/3/2010 46.50 2.625 -2000 -500 -100 -500 -700 211.3501429 8.106 0 13 21827.90
1 1 12/3/2010 57.79 2.667 -2000 -500 -100 -500 -700 211.3501429 8.106 0 13 21827.90
数据分离
>ind<- sample(2,nrow(train1),replace= TRUE,prob=c(0.7,0.3))
>train <- train1[ind==1,]
>test <- train1 [ind==2,]
火车
>head(train)
Store Dept Date Temperature Fuel_Price MarkDown1 MarkDown2 MarkDown3 MarkDown4 MarkDown5 CPI Unemployment IsHoliday Rank Weekly_Sales
1 1 5/2/2010 42.31 2.572 -2000 -500 -100 -500 -700 211.0963582 8.106 0 13 24924.50
1 1 26-02-2010 46.63 2.561 -2000 -500 -100 -500 -700 211.3196429 8.106 0 13 19403.54
1 1 5/3/2010 46.50 2.625 -2000 -500 -100 -500 -700 211.3501429 8.106 0 13 21827.90
1 1 19-03-2010 54.58 2.720 -2000 -500 -100 -500 -700 211.2156350 8.106 0 13 22136.64
1 1 26-03-2010 51.45 2.732 -2000 -500 -100 -500 -700 211.0180424 8.106 0 13 26229.21
1 1 2/4/2010 62.27 2.719 -2000 -500 -100 -500 -700 210.8204499 7.808 0 13 57258.43
用于测试
>head(test)
Store Dept Date Temperature Fuel_Price MarkDown1 MarkDown2 MarkDown3 MarkDown4 MarkDown5 CPI Unemployment IsHoliday Rank Weekly_Sales
1 1 12/2/2010 38.51 2.548 -2000 -500 -100 -500 -700 211.2421698 8.106 1 13 46039.49
1 1 19-02-2010 39.93 2.514 -2000 -500 -100 -500 -700 211.2891429 8.106 0 13 41595.55
1 1 12/3/2010 57.79 2.667 -2000 -500 -100 -500 -700 211.3806429 8.106 0 13 21043.39
1 1 7/5/2010 72.55 2.835 -2000 -500 -100 -500 -700 210.3399684 7.808 0 13 17413.94
1 1 21-05-2010 76.44 2.826 -2000 -500 -100 -500 -700 210.6170934 7.808 0 13 14773.04
1 1 28-05-2010 80.44 2.759 -2000 -500 -100 -500 -700 210.8967606 7.808 0 13 15580.43
我使用的代码如下:
>library(neuralnet)
>n <-neuralnet(Weekly_Sales~Temperature+Fuel_Price+MarkDown1+MarkDown2+MarkDown3+MarkDown4+MarkDown5+CPI+Unemployment+IsHoliday+Rank,data= train,hidden=c(4,3),err.fct="sse",linear.output=FALSE)
>plot(n)
>output <- compute(n,test[,4:14])
>output1 <- output$net.result*(max(test$Weekly_Sales)-min(test$Weekly_Sales))+min(test$Weekly_Sales)
神经网络经过训练,显示出 10^13 范围内的误差。此外,我每次都得到相同的输出,我正在运行代码,这些预测甚至与测试数据中的实际 Weekly_Sales 都不接近。我使用了另一个部门的数据集,但仍然得到相同的预测。
输出
>head(output$net.result)
[,1]
2 0.9999999998
3 0.9999999998
6 0.9999999998
14 0.9999999998
16 0.9999999998
17 0.9999999998
> head(output1)
[,1]
2 149743.97
3 149743.97
6 149743.97
14 149743.97
16 149743.97
17 149743.97
【问题讨论】:
标签: r neural-network