2017-08-06 33 views
0

我試圖訓練和在一定的數據集測試線性迴歸模型r多個迴歸預測輸出具有比容納在測試設置

以下是訓練數據集的標題多個值

> head(TaxiTrain) 
     id vendor_id  pickup_datetime dropoff_datetime passenger_count 
1 id2875421   2 2016-03-14 17:24:55 2016-03-14 17:32:30    1 
2 id2377394   1 2016-06-12 00:43:35 2016-06-12 00:54:38    1 
3 id3858529   2 2016-01-19 11:35:24 2016-01-19 12:10:48    1 
4 id3504673   2 2016-04-06 19:32:31 2016-04-06 19:39:40    1 
5 id2181028   2 2016-03-26 13:30:55 2016-03-26 13:38:10    1 
6 id0801584   2 2016-01-30 22:01:40 2016-01-30 22:09:03    6 
    pickup_longitude pickup_latitude dropoff_longitude dropoff_latitude 
1  -73.98215  40.76794   -73.96463   40.76560 
2  -73.98042  40.73856   -73.99948   40.73115 
3  -73.97903  40.76394   -74.00533   40.71009 
4  -74.01004  40.71997   -74.01227   40.70672 
5  -73.97305  40.79321   -73.97292   40.78252 
6  -73.98286  40.74220   -73.99208   40.74918 
    store_and_fwd_flag trip_duration 
1     N   455 
2     N   663 
3     N   2124 
4     N   429 
5     N   435 
6     N   443 

的教育訓練集和包含1458644行

測試集類似於設置除2列

head(Taxitest) 
     id vendor_id  pickup_datetime passenger_count pickup_longitude 
1 id3004672   1 2016-06-30 23:59:58    1  -73.98813 
2 id3505355   1 2016-06-30 23:59:53    1  -73.96420 
3 id1217141   1 2016-06-30 23:59:47    1  -73.99744 
4 id2150126   2 2016-06-30 23:59:41    1  -73.95607 
5 id1598245   1 2016-06-30 23:59:33    1  -73.97021 
6 id0668992   1 2016-06-30 23:59:30    1  -73.99130 
    pickup_latitude dropoff_longitude dropoff_latitude store_and_fwd_flag 
1  40.73203   -73.99017   40.75668     N 
2  40.67999   -73.95981   40.65540     N 
3  40.73758   -73.98616   40.72952     N 
4  40.77190   -73.98643   40.73047     N 
5  40.76147   -73.96151   40.75589     N 
6  40.74980   -73.98051   40.78655     N 
訓練

測試集包含625134點意見

現在我面臨兩個problems.I培養了線性迴歸模型:

lm1 <- lm(trip_duration ~ passenger_count, data = TaxiTrain) 

該訓練訓練集的線性迴歸模型。當我在測試集合中使用以下代碼時。

lm2 <- predict(lm1, data = Taxitest) 

我得到1458644個觀察結果(與訓練集相同)。我應該得到625134預測

我不知道錯誤在哪裏。我請求某人澄清

+0

看似可疑的對我說,你回來1458644個觀察時,既沒有得到你的數據集的有很多。這表明你的火車數據集有1458644個觀測值,而不是你提到的1457644個觀測值。 – AntoniosK

+0

我明白了。它是Kaggle上的一個數據集。我已經運行過去的預測功能,並且沒有遇到任何問題。上週這已經出現。我也嘗試重新安裝R。沒有影響 –

+1

我的錯誤。訓練集中的行數也是1458644.預測函數的輸出結果與1458644相同。 –

回答

2

嘗試使用lm2<-predict(lm1, newdata=Taxitest)來代替。

檢查該命令如何使用?predict.lm。如果您不使用newdata=它會預測您用於訓練模型的數據集。

舉個例子見下圖:

# train and test sets 
dt1 = mtcars[1:15,] 
dt2 = mtcars[20:23,] 

# build the model 
lm = lm(disp ~ drat, data = dt1) 

# check the differences/similarities 
predict(lm, data=dt2) 
predict(lm, newdata=dt2) 
predict(lm, dt2) 
+1

'data ='在'predict'命令中不起作用。它只適用於'newdata ='。我會糾正你提到的事情。聽起來很合理...... :) – AntoniosK

+0

嗯..有趣。所以它不會用'data ='抱怨,並且在正確的參數是'newdata ='時運行不正確? – Sotos

+0

的確不會抱怨。它只是忽略它。就像使用'預測(lm)'一樣。 – AntoniosK