如何解决ValueError:找到具有0个样本的数组

时间:2018-06-27 12:48:39

标签: python-3.x scikit-learn

当我尝试训练模型时,我真的很想尝试使用sklearn运行线性回归的python:

regressIt.fit(X_train, Y_train)

它引发以下异常:

ValueError: Found array with 0 sample(s) (shape=(0, 546)) while a minimum of 1 is required.

我在做什么错了?

谢谢。

3 个答案:

答案 0 :(得分:0)

好的,谢谢,这是我所拥有的以及正在使用的数据:

import numpy as np import pandas as pd from sklearn import datasets, linear_model #Get the data colNames = ['price', 'lotsize'] df = pd.read_csv("Housing.csv") Y = df.price.tolist() X = df.lotsize.tolist() #reshape it X=np.array(X).reshape((1,-1)) Y=np.array(Y).reshape((1,-1)) #training/testing sets X_train = X[:-250] X_test = X[-250:] Y_train = X[:-250] Y_test = Y[:-250] # Create linear regression object regressIt = linear_model.LinearRegression() # Train the model regressIt.fit(X_train, Y_train) #Show it print( str(round(regressIt.predict(Y))) )

#The Data
 price  lotsize
42000   5850
38500   4000
49500   3060
60500   6650
61000   6360
66000   4160
66000   3880
69000   4160
83800   4800
88500   5500
90000   7200
30500   3000
27000   1700
36000   2880
37000   3600
37900   3185
40500   3300
40750   5200
45000   3450
45000   3986
48500   4785
65900   4510
37900   4000
38000   3934
42000   4960
42300   3000
43500   3800
44000   4960
44500   3000
44900   4500
45000   3500
48000   3500
49000   4000
51500   4500
61000   6360
61000   4500
61700   4032
67000   5170
82000   5400
54500   3150
66500   3745
70000   4520
82000   4640
92000   8580
38000   2000
44000   2160
41000   3040
43000   3090
48000   4960
54800   3350
55000   5300
57000   4100
68000   9166
95000   4040
38000   3630
25000   3620
25245   2400
56000   7260
35500   4400
30000   2400
48000   4120
48000   4750
52000   4280
54000   4820
56000   5500
60000   5500
60000   5040
67000   6000
47000   2500
70000   4095
45000   4095
51000   3150
32500   1836
34000   2475
35000   3210
36000   3180
45000   1650
47000   3180
55000   3180
63900   6360
50000   4240
35000   3240
50000   3650
43000   3240
55500   3780
57000   6480
60000   5850
78000   3150
35000   3000
44000   3090
47000   6060
58000   5900
163000  7420
128000  8500
123500  8050
39000   6800
53900   8250
59900   8250
35000   3500
43000   2835
57000   4500
79000   3300
125000  4320
132000  3500
58000   4992
43000   4600
48000   3720
58500   3680
73000   3000
63500   3750
43000   5076
46500   4500
92000   5000
75000   4260
75000   6540
85000   3700
93000   3760
94500   4000
106500  4300
116000  6840
61500   4400
80000   10500
37000   4400
59500   4840
70000   4120
95000   4260
117000  5960
122500  8800
123500  4560
127000  4600
35000   4840
44500   3850
49900   4900
50500   3850
65000   3760
90000   6000
46000   4370
35000   7700
26500   2990
43000   3750
56000   3000
40000   2650
51000   4500
51000   4500
57250   4500
44000   4500
61000   2175
62000   4500
80000   4800
50000   4600
59900   3450
35500   3000
37000   3600
42000   3600
48000   3750
60000   2610
60000   2953
60000   2747
62000   1905
63000   3968
63900   3162
130000  6000
25000   2910
50000   2135
52900   3120
62000   4075
73500   3410
38000   2800
46000   2684
48000   3100
52500   3630
32000   1950
38000   2430
46000   4320
50000   3036
57500   3630
70000   5400
69900   3420
74500   3180
42000   3660
60000   4410
50000   3990
58000   4340
63900   3510
28000   3420
54000   3420
44700   5495
47000   3480
50000   7424
57250   3460
67000   3630
52500   3630
42000   3480
57500   3460
33000   3180
34400   3635
40000   3960
40500   4350
46500   3930
52000   3570
53000   3600
53900   2520
50000   3480
55500   3180
56000   3290
60000   4000
60000   2325
69500   4350
72000   3540
92500   3960
40500   2640
42000   2700
47900   2700
52000   3180
62000   3500
41000   3630
138300  6000
42000   3150
47000   3792
64500   3510
46000   3120
58000   3000
70100   4200
78500   2817
87250   3240
70800   2800
56000   3816
48000   3185
68000   6321
79000   3650
80000   4700
87000   6615
25000   3850
32500   3970
36000   3000
42500   4352
43000   3630
50000   3600
26000   3000
30000   3000
34000   2787
52000   3000
70000   4770
27000   3649
32500   3970
37200   2910
38000   3480
42000   6615
44500   3500
45000   3450
48500   3450
52000   3520
53900   6930
60000   4600
61000   4360
64500   3450
71000   4410
75500   4600
33500   3640
41000   6000
41000   5400
46200   3640
48500   3640
48900   4040
50000   3640
51000   3640
52500   5640
52500   3600
54000   3600
59000   4632
60000   3640
63000   4900
64000   4510
64900   4100
65000   3640
66000   5680
70000   6300
65500   4000
57000   3960
52000   5960
54000   5830
74500   4500
90000   4100
45000   6750
45000   9000
65000   2550
55000   7152
62000   6450
30000   3360
34000   3264
38000   4000
39000   4000
45000   3069
47000   4040
47500   4040
49000   3185
50000   5900
50000   3120
52900   5450
53000   4040
55000   4080
56000   8080
58500   4040
59500   4080
60000   5800
64000   5885
67000   9667
68100   3420
70000   5800
72000   7600
57500   5400
69900   4995
70000   3000
75000   5500
76900   6450
78000   6210
80000   5000
82000   5000
83000   5828
83000   5200
83900   5500
88500   6350
93000   8250
98000   6000
98500   7700
99000   8880
101000  8880
110000  6480
115442  7000
120000  8875
124000  7155
175000  8960
50000   7350
55000   3850
60000   7000
61000   7770
106000  7440
155000  7500
141000  8100
62500   3900
70000   2970
73000   3000
80000   10500
80000   5500
88000   4500
49000   3850
52000   4130
59500   4046
60000   4079
64000   4000
64500   9860
68500   7000
78500   7980
86000   6800
86900   4300
75000   10269
78000   6100
95000   6420
97000   12090
107000  6600
130000  6600
145000  8580
175000  9960
72000   10700
84900   15600
99000   13200
114000  9000
120000  7950
145000  16200
79000   6100
82000   6360
85000   6420
100500  6360
122000  6540
126500  6420
133000  6550
140000  5750
190000  7420
84000   7160
97000   4000
103500  9000
112500  6550
140000  13200
74700   7085
78000   6600
78900   6900
83900   11460
85000   7020
85000   6540
86000   8000
86900   9620
94500   10500
96000   5020
106000  7440
72000   6600
74500   7200
77000   6710
80750   6660
82900   7000
85000   7231
92500   7410
76000   7800
77500   6825
80000   6360
80000   6600
86000   6900
87000   6600
87500   6420
89000   6600
89900   6600
90000   9000
95000   6500
112000  6360
31900   5300
52000   2850
90000   6400
1.00E+05    11175
91700   6750
174500  7500
94700   6000
68000   10240
80000   5136
61100   3400
62900   2880
65500   3840
66000   2870
49500   5320
50000   3512
53500   3480
58550   3600
64500   3520
65000   5320
69000   6040
73000   11410
75000   8400
75000   5300
132000  7800
60000   3520
65000   5360
69000   6862
51900   3520
57000   4050
65000   3520
79500   4400
72500   5720
104900  11440
114900  7482
120000  5500
58000   4320
67000   5400
67000   4320
69000   4815
73000   6100
73500   7980
74900   6050
75000   3800
79500   5400
120900  6000
44555   2398
47000   2145
47600   2145
49000   2145
49000   2610
49000   1950
49500   2145
52000   2275
54000   2856
55000   2015
55000   2176
56000   2145
60000   2145
60500   2787
50000   9500
64900   4990
93000   6670
85000   6254
61500   10360
88500   5500
88000   5450
89000   5500
89500   6000
95000   5700
95500   6600
51500   4000
62900   4880
118500  4880
42900   8050
44100   8100
47000   5880
50000   5880
50000   12944
53000   6020
53000   4050
54000   8400
58500   5600

答案 1 :(得分:0)

好吧,我想我想通了
      X=np.array(X).reshape((-1,1)) Should be this instead of ((1,-1)) Not sure why yet? Y=np.array(Y).reshape((-1,1)) #Also this print(str(regr.predict(X_test)))

答案 2 :(得分:0)

tuple_holds<std::tuple<A, B>, C>::value