Я пытаюсь визуализировать свою модель линейной регрессии и, к сожалению, не могу понять, как управлять данными для правильного построения результатов регрессии.Ниже приведены шаги, которые я предпринял для выполнения модели линейной регрессии, как выглядят данные, и какие ошибки я получаю.
X=sale[['Dec-2018','Nov-2018', 'Oct-2018','Sep-2018','Aug-2018','Jul-2018']]
y=sale[['CLV']]
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state=0)
from sklearn.linear_model import LinearRegression
linreg = LinearRegression()
linreg.fit(X_train, y_train)
y_pred = linreg.predict(X_test)
print (X)
print (y)
X.iloc[:,:] = labelencoder_X.fit_transform(X.iloc[:,:])
y.iloc[:,:1] = labelencoder_y.fit_transform(y.iloc[:,:1])
plt.scatter(X_test, y_test, color='black')
plt.plot(X_train, y_pred, color = 'green', linewidth=3)
plt.title('CLTV (Training set)')
plt.xlabel('Time')
plt.ylabel('CLV')
plt.show()
Ниже приведено состояние данных и полученная ошибка:
month_year Dec-2018 Nov-2018 Oct-2018 Sep-2018 Aug-2018 Jul-2018
0 0.00 0.00 0.00 0.00 0.00 0.00
1 0.00 0.00 0.00 0.00 0.00 0.00
2 0.00 286.40 0.00 825.92 0.00 902.09
3 0.00 0.00 0.00 521.50 0.00 0.00
4 0.00 6354.88 16471.77 2941.72 21706.44 2796.36
5 0.00 0.00 0.00 147.70 0.00 0.00
6 0.00 0.00 0.00 0.00 0.00 0.00
7 0.00 601.44 678.76 0.00 608.76 1064.08
8 0.00 0.00 0.00 519.89 0.00 0.00
9 438.50 312.73 675.38 0.00 301.70 0.00
10 998.61 9053.83 2149.30 5999.50 654.37 1070.59
11 763.06 572.59 0.00 0.00 1724.95 0.00
12 210.35 0.00 343.76 217.77 0.00 0.00
13 0.00 0.00 0.00 0.00 0.00 0.00
14 0.00 0.00 0.00 918.98 0.00 0.00
15 0.00 0.00 0.00 535.50 229.50 0.00
16 0.00 0.00 392.08 0.00 0.00 0.00
17 142.60 279.50 0.00 234.00 0.00 0.00
18 111.45 100.95 217.75 0.00 0.00 0.00
19 327.40 0.00 245.80 77.31 338.20 0.00
20 0.00 0.00 0.00 0.00 0.00 0.00
21 0.00 400.32 0.00 1210.32 0.00 2915.92
22 0.00 0.00 0.00 0.00 0.00 0.00
23 0.00 115.23 0.00 267.80 0.00 0.00
24 0.00 0.00 0.00 0.00 0.00 417.38
25 0.00 0.00 0.00 0.00 0.00 0.00
26 0.00 0.00 497.83 0.00 0.00 446.09
27 0.00 0.00 0.00 0.00 0.00 0.00
28 0.00 279.86 0.00 0.00 0.00 0.00
29 752.39 1070.14 387.80 692.24 330.44 653.00
... ... ... ... ... ... ...
3898 0.00 117.54 311.63 438.14 537.95 165.00
3899 0.00 0.00 0.00 1538.41 0.00 0.00
3900 874.45 0.00 0.00 0.00 0.00 361.48
3901 0.00 363.20 0.00 0.00 0.00 0.00
3902 0.00 0.00 0.00 0.00 297.06 0.00
3903 0.00 95.34 0.00 0.00 0.00 0.00
3904 0.00 0.00 0.00 0.00 0.00 0.00
3905 0.00 0.00 0.00 4314.72 0.00 0.00
3906 0.00 0.00 448.37 0.00 0.00 0.00
3907 0.00 0.00 0.00 103.30 0.00 0.00
3908 0.00 0.00 774.76 0.00 627.27 0.00
3909 0.00 1070.40 0.00 891.90 0.00 0.00
3910 0.00 0.00 0.00 0.00 0.00 0.00
3911 0.00 0.00 99.44 224.80 0.00 0.00
3912 0.00 0.00 0.00 0.00 0.00 149.48
3913 0.00 399.68 0.00 0.00 0.00 503.80
3914 0.00 0.00 0.00 312.96 0.00 488.55
3915 0.00 0.00 0.00 0.00 0.00 25.50
3916 0.00 0.00 0.00 0.00 0.00 0.00
3917 0.00 171.20 0.00 0.00 0.00 0.00
3918 367.88 0.00 604.25 0.00 372.25 753.66
3919 0.00 0.00 0.00 0.00 0.00 0.00
3920 0.00 0.00 329.61 0.00 0.00 0.00
3921 0.00 0.00 110.38 0.00 0.00 0.00
3922 0.00 0.00 0.00 173.90 0.00 0.00
3923 0.00 0.00 0.00 0.00 0.00 0.00
3924 0.00 0.00 0.00 0.00 0.00 0.00
3925 77.84 0.00 0.00 0.00 98.76 0.00
3926 208.00 637.71 112.99 134.90 0.00 139.89
3927 0.00 0.00 1072.00 0.00 0.00 0.00
[3928 rows x 6 columns]
month_year CLV
0 0.00
1 401.90
2 2780.66
3 1150.80
4 121869.86
5 386.20
6 1760.96
7 5371.07
8 792.94
9 4196.01
10 29748.44
11 3822.90
12 942.34
13 92.72
14 918.98
15 1759.50
16 392.08
17 1468.12
18 430.15
19 988.71
20 253.05
21 6748.40
22 215.05
23 383.03
24 417.38
25 312.38
26 2595.24
27 134.10
28 670.65
29 5578.04
... ...
3898 2058.09
3899 2232.49
3900 2527.10
3901 363.20
3902 793.52
3903 95.34
3904 342.92
3905 4314.72
3906 518.27
3907 103.30
3908 2274.03
3909 2338.60
3910 2128.57
3911 324.24
3912 149.48
3913 903.48
3914 801.51
3915 25.50
3916 138.90
3917 244.90
3918 2098.04
3919 0.00
3920 329.61
3921 110.38
3922 173.90
3923 180.60
3924 80.82
3925 176.60
3926 1929.93
3927 1837.28
[3928 rows x 1 columns]
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-197-44d25a827a36> in <module>
2 print (X)
3 print (y)
----> 4 X.iloc[:,:] = labelencoder_X.fit_transform(X.iloc[:,:])
5 y.iloc[:,:1] = labelencoder_y.fit_transform(y.iloc[:,:1])
6 plt.scatter(X_test, y_test, color='black')
/anaconda3/lib/python3.7/site-packages/sklearn/preprocessing/label.py in fit_transform(self, y)
233 y : array-like of shape [n_samples]
234 """
--> 235 y = column_or_1d(y, warn=True)
236 self.classes_, y = _encode(y, encode=True)
237 return y
/anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py in column_or_1d(y, warn)
795 return np.ravel(y)
796
--> 797 raise ValueError("bad input shape {0}".format(shape))
798
799
ValueError: bad input shape (3928, 6)
Я пробовал несколько сценариев нарезки данных, но это не помогает.Возможно, что-то связано с размерами, и именно здесь мне нужна помощь.