当我尝试训练模型时,我真的很想尝试使用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.
我在做什么错了?
谢谢。
答案 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