2017-08-06 31 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