BP神经网络和Stacking

from keras.models import Sequential  # 按顺序建立的神经网络模型
from keras.layers import Dense  # dense 全连接层 
import numpy as np 
import matplotlib.pyplot as plt 
%matplotlib inline
import tensorflow as tf
Using TensorFlow backend.
import pandas as pd 
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import KFold
train = pd.read_csv('train_1.csv',index_col = '任务id')
test = pd.read_csv('test_1.csv',index_col = '任务id')

神经网络

train
总里程车辆吨位车辆长度diff_发车_靠车diff_到达_发车diff_卸货_到达time_costis_weekendis_fest业务类型_速运...运输等级_二级运输线路总成本线路价格(不含税)线路指导价(不含税)调价审核完成时间调价类型调价ECP创建时间交易开始时间交易成功时间B端议价反馈数量
任务id
47130.0045510.0526320.0925930.0205820.0390350.1268180.1010901.00.01.0...1.0281.82238282N调低2019-05-01 11:09:01.0000000002019-05-01 11:10:00.0000000002019-05-01 23:09:00.0000000000
47210.0420930.4385960.5000000.0489710.1000710.1268180.1889340.00.00.0...1.0672.4710106722019-05-06 03:33:44调高2019-05-06 03:33:42.0000000002019-05-06 03:12:39.0000000002019-05-06 03:44:00.0000000001
47220.0420930.4385960.5000000.0489710.1064580.1268180.1952080.00.00.0...1.0681.2311006812019-05-09 04:56:42调高2019-05-09 04:56:40.0000000002019-05-09 04:02:03.0000000002019-05-09 05:05:00.0000000001
47230.0420930.4385960.5000000.0489710.1064580.1268180.1952080.00.00.0...1.0681.2311006812019-05-09 04:59:40调高2019-05-09 04:59:38.0000000002019-05-09 04:00:35.0000000002019-05-09 05:32:00.0000000002
47270.0420930.4385960.5000000.0489710.1036200.1268180.1924190.00.00.0...1.0618.8910006192019-05-09 23:33:38调高2019-05-09 23:33:37.0000000002019-05-09 20:35:30.0000000002019-05-09 23:45:00.0000000001
47250.0420930.4385960.5000000.0489710.1036200.1268180.1924190.00.00.0...1.0618.89620619N未调整2019-05-09 20:29:41.0000000002019-05-09 20:34:28.0000000002019-05-09 21:33:00.0000000000
47260.0420930.4385960.5000000.0489710.1036200.1268180.1924190.00.00.0...1.0618.8910006192019-05-09 23:29:45调高2019-05-09 23:29:43.0000000002019-05-09 20:35:00.0000000002019-05-09 23:45:00.0000000001
47280.0420930.4385960.5000000.0489710.1064580.1268180.1952081.00.00.0...1.0622.788606232019-05-11 02:34:18调高2019-05-11 02:34:16.0000000002019-05-11 01:58:45.0000000002019-05-11 03:53:00.0000000002
47290.0420930.4385960.5000000.0489710.1064580.1268180.1952080.00.00.0...1.0446.788604472019-05-16 04:31:29调高2019-05-16 04:31:27.0000000002019-05-16 02:42:02.0000000002019-05-16 04:44:00.0000000000
47300.0420930.4385960.5000000.0489710.1064580.1268180.1952080.00.00.0...1.0446.787704472019-05-17 06:38:57调高2019-05-17 06:38:55.0000000002019-05-17 04:28:59.0000000002019-05-17 06:47:00.0000000000
54550.0420930.4385960.5000000.1696240.1064580.1268180.3137270.00.00.0...1.0612.3910006122019-05-22 18:33:33调高2019-05-22 18:33:32.0000000002019-05-22 15:07:04.0000000002019-05-22 19:22:00.0000000003
128880.0788780.4385960.5000000.1270400.1596880.1268180.3241850.00.00.0...1.01121.41171311212019-05-23 19:09:38调高2019-05-23 19:09:37.0000000002019-05-23 18:38:04.0000000002019-05-23 21:27:00.0000000001
47200.0045510.0526320.0925930.0276790.0447130.1268180.1136390.00.01.0...1.0281.82259282N调低2019-05-29 17:19:33.0000000002019-05-29 17:23:59.0000000002019-05-29 17:24:00.0000000000
47180.0045510.0526320.0925930.0205820.0425830.1268180.1045760.00.01.0...1.0281.82259282N调低2019-05-29 17:16:38.0000000002019-05-29 17:20:40.0000000002019-05-29 17:21:00.0000000000
47190.0045510.0526320.0925930.1199430.0425830.1268180.2021800.00.01.0...1.0286.26259286N调低2019-05-29 17:15:11.0000000002019-05-29 17:19:36.0000000002019-05-29 17:20:00.0000000000
50670.0420930.4385960.5000000.0418740.1036200.1268180.1854481.00.00.0...1.0609.149176092019-05-29 16:51:55调高2019-05-29 16:51:50.0000000002019-05-29 16:55:48.0000000002019-05-30 11:06:00.0000000000
53180.0045510.0526320.0925930.0205820.0390350.1268180.1010901.00.01.0...1.0281.82257282N调低2019-05-31 18:10:18.0000000002019-05-31 18:10:16.0000000002019-05-31 18:29:00.0000000000
54960.0045510.0526320.0925930.0205820.0390350.1268180.1010901.00.01.0...1.0281.82232282N调低2019-05-31 17:49:23.0000000002019-05-31 17:53:18.0000000002019-05-31 18:22:00.0000000000
53510.0045510.0526320.0925930.0205820.0390350.1268180.1010901.00.01.0...1.0281.82256282N调低2019-05-29 17:31:42.0000000002019-05-29 17:36:23.0000000002019-05-29 17:36:00.0000000000
47400.0045510.0526320.0925930.0205820.0425830.1268180.1045761.00.01.0...1.0281.82256282N调低2019-05-30 12:52:08.0000000002019-05-30 12:55:51.0000000002019-05-30 13:18:00.0000000000
47460.0045510.0526320.0925930.0205820.0425830.1268180.1045761.00.01.0...1.0281.82257282N调低2019-05-30 12:53:42.0000000002019-05-30 12:53:40.0000000002019-05-30 13:20:00.0000000000
49910.0420930.4385960.5000000.0418740.1036200.1268180.1854481.00.00.0...1.0609.149176092019-05-29 18:54:00调高2019-05-29 18:53:54.0000000002019-05-29 18:58:31.0000000002019-05-30 17:55:00.0000000000
49670.0420930.4385960.5000000.0489710.1036200.1268180.1924191.00.00.0...1.0618.899176192019-05-29 18:54:45调高2019-05-29 18:54:40.0000000002019-05-29 18:59:16.0000000002019-05-30 17:56:00.0000000000
54560.0420930.4385960.5000000.2547910.1064580.1268180.3973881.00.00.0...1.0905.30998905N调高2019-05-27 15:10:58.0000000002019-05-27 15:10:38.0000000002019-05-27 16:34:00.0000000000
54740.0420930.4385960.5000000.2122070.1064580.1268180.3555581.00.00.0...1.0846.85998847N调高2019-05-27 15:11:32.0000000002019-05-27 15:11:18.0000000002019-05-27 16:37:00.0000000000
54070.0420930.4385960.5000000.0844570.1064580.1268180.2300671.00.00.0...1.0671.499176712019-05-29 16:57:30调高2019-05-29 16:57:22.0000000002019-05-29 17:01:53.0000000002019-05-30 17:58:00.0000000000
48860.0045510.0526320.0925930.0347760.0425830.1268180.1185191.00.01.0...1.0281.82257282N调低2019-05-29 20:07:17.0000000002019-05-29 20:07:15.0000000002019-05-29 20:43:00.0000000000
52340.0045510.0526320.0925930.0205820.0425830.1268180.1045761.00.01.0...1.0281.82257282N调低2019-05-30 12:57:49.0000000002019-05-30 12:57:47.0000000002019-05-30 13:16:00.0000000000
52880.0045510.0526320.0925930.0205820.0425830.1268180.1045761.00.01.0...1.0281.82256282N调低2019-05-30 12:57:29.0000000002019-05-30 13:02:08.0000000002019-05-30 13:19:00.0000000000
51810.0045510.0526320.0925930.0205820.0390350.1268180.1010901.00.01.0...1.0281.82257282N调低2019-05-31 18:13:07.0000000002019-05-31 18:17:49.0000000002019-05-31 18:22:00.0000000000
..................................................................
42430.0011380.0000000.0000000.0205820.0354860.0246910.0630010.00.01.0...0.0204.54165179N调低2019-12-19 13:48:54.0000000002019-12-19 13:48:52.0000000002019-12-19 13:52:00.0000000000
43190.0011380.0000000.0000000.0205820.0425830.0246910.0699730.00.01.0...0.0204.54165179N调低2019-12-19 13:51:28.0000000002019-12-19 13:51:25.0000000002019-12-19 13:59:00.0000000000
41550.0000000.0000000.0000000.0205820.0354860.0246910.0630010.00.01.0...0.0192.29127127N未调整2019-12-19 10:47:10.0000000002019-12-19 10:47:07.0000000002019-12-19 16:43:00.0000000000
42750.0011380.0000000.0000000.0205820.0354860.0246910.0630010.00.01.0...0.0204.54165179N调低2019-12-19 13:54:28.0000000002019-12-19 13:54:26.0000000002019-12-19 14:56:00.0000000000
172630.0420930.4385960.5000000.0418740.1064580.1268180.1882360.00.00.0...1.0780.17998750N调高2019-12-26 22:01:20.0000000002019-12-26 22:01:17.0000000002019-12-26 23:29:00.0000000000
172440.0420930.4385960.5000000.0418740.1064580.1268180.1882360.00.00.0...1.0838.6210088082019-12-27 22:17:22调高2019-12-27 22:17:15.0000000002019-12-27 02:00:00.0000000002019-12-27 23:48:00.0000000000
155350.0788780.4385960.5000000.0418740.1596880.0946500.2296250.00.00.0...1.01351.539861301N调低2019-12-26 13:55:02.0000000002019-12-26 13:55:00.0000000002019-12-26 14:04:00.0000000000
169870.0420930.4385960.5000000.0418740.1064580.1748970.2045270.00.00.0...1.0780.17998750N调高2019-12-26 22:02:22.0000000002019-12-26 22:02:19.0000000002019-12-27 08:54:00.0000000000
170640.0420930.4385960.5000000.0418740.1064580.1748970.2045270.00.00.0...1.0838.62998808N调高2019-12-26 22:01:50.0000000002019-12-26 22:01:48.0000000002019-12-27 02:14:00.0000000000
127450.9745921.0000001.0000000.0205820.0745210.1268180.1359490.00.01.0...0.012224.221500015000N未调整2019-12-19 16:36:06.0000000002019-12-19 16:41:01.0000000002019-12-20 13:33:00.0000000000
128040.9575271.0000001.0000000.0063880.8161820.1358020.8535940.00.00.0...0.012260.4614670115762019-12-31 14:32:46调高2019-12-31 14:31:32.0000000002019-12-31 18:00:00.0000000002020-01-02 14:03:00.0000000000
128150.9737811.0000001.0000000.0049680.0007100.1358020.0511490.00.00.0...0.012518.7417431118232019-12-31 11:10:05调高2019-12-31 11:09:54.0000000002019-12-31 14:00:00.0000000002019-12-31 14:15:00.0000000000
170060.0420930.4385960.5000000.0418740.1064580.1748970.2045271.00.00.0...1.0663.2711816332020-01-01 09:56:52调高2020-01-01 09:56:51.0000000002019-12-27 02:00:00.0000000002020-01-01 10:29:00.0000000001
128220.9522181.0000001.0000000.0418740.8871540.1358020.9581701.00.01.0...0.012232.4619500115522020-01-04 15:55:25调高2020-01-04 15:55:19.0000000002019-12-26 18:00:00.0000000002020-01-04 18:07:00.0000000001
40700.0000000.0000000.0000000.0241310.0390350.0246910.0699731.00.01.0...0.0192.29111111N未调整2019-12-19 14:56:18.0000000002019-12-19 14:56:15.0000000002019-12-19 23:11:00.0000000000
43310.0011380.0000000.0000000.0205820.0425830.0246910.0699731.00.01.0...0.0204.54165179N调低2019-12-19 13:51:28.0000000002019-12-19 13:51:25.0000000002019-12-19 13:59:00.0000000000
41670.0000000.0000000.0000000.0205820.0354860.0246910.0630011.00.01.0...0.0192.29127127N未调整2019-12-19 10:47:10.0000000002019-12-19 10:47:07.0000000002019-12-19 16:43:00.0000000000
42830.0011380.0000000.0000000.0205820.0354860.0246910.0630011.00.01.0...0.0204.54165179N调低2019-12-19 13:54:28.0000000002019-12-19 13:54:26.0000000002019-12-19 14:56:00.0000000000
171910.0420930.4385960.5000000.0418740.1064580.0761320.1710630.00.00.0...1.0873.359178512019-12-26 21:50:15调高2019-12-26 21:50:14.0000000002019-12-26 21:50:12.0000000002019-12-28 09:33:00.0000000000
128140.9737811.0000001.0000000.0049680.0014190.1358020.0518461.00.00.0...0.012520.2417431118242019-12-31 11:09:22调高2019-12-31 11:09:12.0000000002019-12-31 14:00:00.0000000002019-12-31 14:14:00.0000000000
172060.0420930.4385960.5000000.0418740.1064580.1268180.1882360.00.00.0...1.01006.9310369852019-12-26 21:55:16调高2019-12-26 21:55:16.0000000002019-12-26 21:55:13.0000000002019-12-26 22:33:00.0000000000
128130.9737811.0000001.0000000.0418740.0007100.1358020.0874021.00.00.0...0.012518.7417431118232019-12-31 11:10:46调高2019-12-31 11:10:38.0000000002019-12-31 14:00:00.0000000002019-12-31 14:14:00.0000000000
128000.9575271.0000001.0000000.0418740.7806960.5679011.0000000.00.01.0...0.012265.461669511585N调高2019-12-21 23:39:51.0000000002019-12-21 23:39:49.0000000002019-12-22 11:33:00.0000000000
172300.0420930.4385960.5000000.0418740.1064580.1748970.2045270.00.00.0...1.0955.53917925N未调整2019-12-26 21:58:42.0000000002019-12-26 21:58:40.0000000002019-12-27 20:55:00.0000000000
127540.9522181.0000001.0000000.0411640.8871540.1358020.9574730.00.01.0...0.012187.621500015000N未调整2019-12-10 18:06:02.0000000002019-12-10 18:06:00.0000000002019-12-11 13:47:00.0000000000
155590.0788780.4385960.5000000.0205820.1632360.0843620.2087100.00.00.0...1.01144.0117121094N调高2019-12-24 19:24:11.0000000002019-12-24 19:24:08.0000000002019-12-25 16:48:00.0000000000
155140.0790670.4385960.5000000.0205820.2838890.1268180.3416140.00.00.0...1.01151.599991101N调低2019-12-24 18:10:27.0000000002019-12-24 18:10:22.0000000002019-12-25 13:52:00.0000000000
128020.9666291.0000001.0000000.0418740.2427250.1268180.3220930.01.01.0...0.012265.461669511585N调高2019-12-21 23:39:44.0000000002019-12-21 23:39:42.0000000002019-12-22 11:30:00.0000000000
110030.0045510.0526320.0925930.0205820.0425830.1268180.1045760.01.01.0...1.0272.71232257N调低2019-12-23 15:33:19.0000000002019-12-23 15:33:15.0000000002019-12-24 10:58:00.0000000000
153730.0788780.4385960.5000000.1128460.1525900.1268180.3032700.01.01.0...1.01351.5316351301N调高2019-12-24 15:43:58.0000000002019-12-24 15:43:40.0000000002019-12-24 16:18:00.0000000000

1703 rows × 43 columns

X = train[train.columns[:34]].values
y = train[['线路总成本', '线路价格(不含税)','线路指导价(不含税)']].values
scaler = MinMaxScaler()
y = scaler.fit_transform(y)
X_train,X_test,y_train,y_test= train_test_split(X,y,test_size=0.1,random_state=2020)
scaler.inverse_transform(y_test)
array([[ 1517.47,   999.  ,  1517.  ],
       [ 1165.07,  1712.  ,  1165.  ],
       [ 1073.76,  1810.  ,  1024.  ],
       [  403.28,   594.  ,   394.  ],
       [ 1018.61,  1019.  ,  1019.  ],
       [12154.16, 15000.  , 11494.  ],
       [  272.71,   232.  ,   257.  ],
       [ 1022.51,  1023.  ,  1023.  ],
       [ 1213.12,  1733.  ,  1163.  ],
       [  462.33,   603.  ,   453.  ],
       [  934.83,  1036.  ,   935.  ],
       [ 1051.46,   999.  ,  1051.  ],
       [11334.36, 11553.  , 10618.  ],
       [  204.54,   165.  ,   190.  ],
       [ 1133.76,  1055.  ,  1084.  ],
       [ 1398.31,  1635.  ,  1398.  ],
       [12187.62, 15500.  , 11518.  ],
       [11234.96, 11819.  , 10519.  ],
       [10811.97, 13800.  , 10139.  ],
       [  669.11,   917.  ,   639.  ],
       [ 1407.54,   986.  ,  1358.  ],
       [ 1351.53,  1635.  ,  1301.  ],
       [  953.72,  1927.  ,   904.  ],
       [ 1230.71,  1682.  ,  1182.  ],
       [ 1070.39,  1036.  ,  1040.  ],
       [ 1347.54,  1651.  ,  1298.  ],
       [ 1076.4 ,  1827.  ,  1027.  ],
       [10988.58, 15000.  , 10989.  ],
       [ 1470.67,   999.  ,  1471.  ],
       [12720.98, 14342.  , 12014.  ],
       [ 1407.54,  1575.  ,  1358.  ],
       [  403.21,   903.  ,   403.  ],
       [  955.53,   917.  ,   925.  ],
       [11110.67, 15000.  , 12500.  ],
       [ 1398.31,  1635.  ,  1398.  ],
       [  849.74,   998.  ,   818.  ],
       [  838.62,   998.  ,   808.  ],
       [  208.62,   277.  ,   205.  ],
       [  449.63,   590.  ,   440.  ],
       [  403.21,   553.  ,   403.  ],
       [10572.17, 16695.  , 10572.  ],
       [  836.58,   998.  ,   807.  ],
       [ 1042.  ,  1575.  ,  1042.  ],
       [  403.23,   603.  ,   403.  ],
       [10989.08, 15000.  , 10989.  ],
       [ 1016.21,  1575.  ,   966.  ],
       [11121.36, 14205.  , 10405.  ],
       [  721.72,   992.  ,   692.  ],
       [11128.36,  8900.  , 12004.  ],
       [12187.62, 15000.  , 15000.  ],
       [  403.28,   594.  ,   394.  ],
       [  284.4 ,   257.  ,   284.  ],
       [  667.07,   998.  ,   637.  ],
       [  403.28,   594.  ,   394.  ],
       [  403.21,   603.  ,   403.  ],
       [ 1022.51,  1023.  ,  1023.  ],
       [ 1308.  ,  1555.  ,  1255.  ],
       [11123.36, 14502.  , 10407.  ],
       [  403.32,   594.  ,   394.  ],
       [  403.28,   794.  ,   394.  ],
       [  403.26,   553.  ,   403.  ],
       [ 1144.01,  1712.  ,  1094.  ],
       [  843.26,  1100.  ,   843.  ],
       [  996.32,  1651.  ,   947.  ],
       [  784.81,   843.  ,   843.  ],
       [ 1351.53,   986.  ,  1301.  ],
       [  192.29,   127.  ,   127.  ],
       [  843.26,   843.  ,   843.  ],
       [ 1122.23,  1622.  ,  1073.  ],
       [  783.81,  1022.  ,  1022.  ],
       [  697.13,   917.  ,   835.  ],
       [10922.08, 15000.  , 10922.  ],
       [ 1022.51,  1023.  ,  1023.  ],
       [  403.22,   603.  ,   403.  ],
       [  286.26,   259.  ,   286.  ],
       [  204.54,   165.  ,   179.  ],
       [  404.68,   605.  ,   405.  ],
       [  204.54,   165.  ,   179.  ],
       [  643.89,   980.  ,   644.  ],
       [ 1060.3 ,  1911.  ,  1011.  ],
       [12210.97, 17056.  , 11538.  ],
       [  192.29,   127.  ,   189.  ],
       [11121.36, 12000.  , 10405.  ],
       [  584.08,   574.  ,   574.  ],
       [12210.97, 14055.  , 11538.  ],
       [  404.68,   595.  ,   395.  ],
       [ 1076.79,  1627.  ,  1027.  ],
       [  272.71,   257.  ,   268.  ],
       [  404.53,   595.  ,   395.  ],
       [11371.96,  8500.  , 12004.  ],
       [ 1390.46,  1911.  ,  1390.  ],
       [11198.36, 11618.  , 10482.  ],
       [12117.56, 15000.  , 15000.  ],
       [ 1071.66,  1653.  ,  1023.  ],
       [  934.83,   998.  ,   935.  ],
       [  955.53,   917.  ,   925.  ],
       [11806.17,  9433.  , 12720.  ],
       [  959.16,  1022.  ,  1022.  ],
       [ 1559.31,  1701.  ,  1559.  ],
       [  403.28,   544.  ,   394.  ],
       [ 1407.54,   986.  ,  1358.  ],
       [12144.74, 16500.  , 11481.  ],
       [ 1243.46,  1733.  ,  1243.  ],
       [ 1025.68,   999.  ,   975.  ],
       [  933.83,   935.  ,   934.  ],
       [  959.16,  1022.  ,  1022.  ],
       [  192.29,   127.  ,   127.  ],
       [  728.94,   998.  ,   697.  ],
       [  843.26,   902.  ,   902.  ],
       [  403.21,   894.  ,   394.  ],
       [  284.4 ,   257.  ,   284.  ],
       [ 1019.6 ,  1841.  ,   971.  ],
       [ 1156.53,  1099.  ,   847.  ],
       [  403.21,   903.  ,   403.  ],
       [ 1020.94,  1700.  ,   971.  ],
       [10489.17,  8000.  , 12720.  ],
       [ 1051.46,   999.  ,  1051.  ],
       [12187.62, 15500.  , 11518.  ],
       [12210.97, 17890.  , 11538.  ],
       [10437.17,  8300.  , 12720.  ],
       [10421.17, 16380.  , 10421.  ],
       [10639.17, 16695.  , 10639.  ],
       [11370.96, 10655.  , 10655.  ],
       [12144.74, 16500.  , 11481.  ],
       [  416.12,   916.  ,   416.  ],
       [  667.07,   998.  ,   637.  ],
       [  410.98,   596.  ,   402.  ],
       [12247.57, 14055.  , 11574.  ],
       [  403.41,   995.  ,   395.  ],
       [  662.65,   732.  ,   633.  ],
       [ 1018.61,  1019.  ,  1019.  ],
       [ 1351.53,  2037.  ,  1301.  ],
       [ 1018.61,  1019.  ,  1019.  ],
       [ 1078.49,  2061.  ,  1029.  ],
       [12210.97, 15000.  , 15000.  ],
       [ 1195.3 ,   999.  ,  1145.  ],
       [ 1051.46,  1799.  ,  1051.  ],
       [  403.21,   704.  ,   403.  ],
       [  783.81,  1022.  ,  1022.  ],
       [  697.13,   917.  ,  1022.  ],
       [  403.21,   603.  ,   403.  ],
       [  933.83,  1022.  ,  1022.  ],
       [  204.54,   165.  ,   165.  ],
       [  204.54,   165.  ,   179.  ],
       [12195.08, 15000.  , 11522.  ],
       [  738.68,   998.  ,   707.  ],
       [ 1133.2 ,  1712.  ,  1084.  ],
       [ 1022.51,  1023.  ,  1023.  ],
       [  410.98,   602.  ,   402.  ],
       [  403.28,   594.  ,   394.  ],
       [  956.17,   967.  ,   967.  ],
       [ 1151.59,   999.  ,  1101.  ],
       [  738.68,   998.  ,   707.  ],
       [12144.74, 16500.  , 11481.  ],
       [ 1379.  ,  1650.  ,  1326.  ],
       [ 1192.1 ,  1741.  ,  1142.  ],
       [ 1022.51,  1036.  ,  1023.  ],
       [ 1035.69,  1887.  ,   987.  ],
       [ 1062.2 ,  1813.  ,  1013.  ],
       [11334.36, 16695.  , 10618.  ],
       [10675.77, 15000.  , 10676.  ],
       [  272.71,   232.  ,   257.  ],
       [  759.48,  1255.  ,   835.  ],
       [  721.72,  1092.  ,   692.  ],
       [  758.48,  1022.  ,  1022.  ],
       [10922.08, 15000.  , 10922.  ],
       [  281.82,   256.  ,   282.  ],
       [ 1195.3 ,  1645.  ,  1145.  ],
       [ 1173.91,  1996.  ,  1125.  ],
       [  565.19,   541.  ,   565.  ],
       [10482.17, 12720.  , 12720.  ]])
print(X_train.shape)
print(y_train.shape)
(1532, 34)
(1532, 2)
def build_model():
    model = Sequential([
    Dense(64, activation=tf.nn.relu,
                       input_shape=(34,)),
    Dense(64, activation=tf.nn.relu),
    Dense(32,activation=tf.nn.relu),
    Dense(2)
  ])

    optimizer = tf.train.RMSPropOptimizer(0.001)
    model.compile(loss='mse',
                optimizer=optimizer,
                metrics=['mae'])
    return model 
model = build_model()

model.fit(X_train, y_train, epochs=250 ) 

pre = model.predict(X_test)
y_pre = scaler.inverse_transform(pre)
y_true = scaler.inverse_transform(y_test)
def metric(y_pre,y_true):
    return ((abs(y_pre - y_true))/y_true).mean()
metric(y_pre[:,1],y_true[:,1]),metric(y_pre[:,0],y_true[:,0])
y_pre
array([[ 1305.0636  ,  1507.7888  ],
       [ 1119.41    ,  1254.1056  ],
       [ 1259.6602  ,  1849.2323  ],
       [  390.25055 ,   544.7551  ],
       [  988.70953 ,  1039.439   ],
       [11550.204   , 14306.317   ],
       [  295.04327 ,   219.45985 ],
       [ 1016.6951  ,  1023.22375 ],
       [ 1171.6947  ,  1749.6289  ],
       [  406.2312  ,   562.3748  ],
       [  818.64935 ,   935.31177 ],
       [ 1114.8047  ,  1662.5568  ],
       [10845.84    , 12200.3545  ],
       [  205.70506 ,    46.931435],
       [ 1132.2059  ,  1426.7567  ],
       [ 1335.3221  ,  1701.8123  ],
       [10720.519   , 12028.937   ],
       [11124.664   , 13747.793   ],
       [10722.539   , 12024.162   ],
       [  661.68823 ,   829.11066 ],
       [ 1322.5798  ,   964.4997  ],
       [ 1282.2351  ,  1453.9495  ],
       [  973.0308  ,  1761.358   ],
       [ 1260.7831  ,  1856.5709  ],
       [  961.248   ,   954.48816 ],
       [ 1199.2781  ,  1275.2903  ],
       [ 1132.9553  ,  1721.3738  ],
       [10077.604   , 15202.591   ],
       [ 1263.4518  ,  1228.7592  ],
       [11841.785   , 13768.114   ],
       [ 1348.6885  ,  1729.8435  ],
       [  287.81235 ,   675.29407 ],
       [  955.52765 ,   858.11395 ],
       [11585.42    , 14450.994   ],
       [ 1304.4938  ,  1284.9801  ],
       [  692.91644 ,   900.112   ],
       [  754.9513  ,   925.387   ],
       [  219.10901 ,   354.815   ],
       [  403.4972  ,   521.494   ],
       [  345.08737 ,   524.5736  ],
       [10315.215   , 14608.666   ],
       [  759.0576  ,   905.8869  ],
       [  934.2337  ,  1464.7003  ],
       [  391.29416 ,   544.47797 ],
       [10646.697   , 14169.346   ],
       [  810.6588  ,  1220.3186  ],
       [10760.828   , 11381.781   ],
       [  715.417   ,   855.57294 ],
       [10687.356   , 11897.006   ],
       [11726.676   , 13376.778   ],
       [  381.6232  ,   528.40497 ],
       [  306.56622 ,   197.14157 ],
       [  661.25415 ,   915.4901  ],
       [  392.4997  ,   534.3512  ],
       [  389.0867  ,   529.63855 ],
       [ 1016.6951  ,  1023.22375 ],
       [ 1321.645   ,  1815.649   ],
       [10848.822   , 12329.249   ],
       [  395.7551  ,   554.63855 ],
       [  296.96558 ,   652.3022  ],
       [  378.1468  ,   482.56137 ],
       [ 1076.8687  ,  1470.7391  ],
       [  859.632   ,   995.7925  ],
       [ 1070.0586  ,  1818.0604  ],
       [  784.28235 ,   900.36554 ],
       [ 1287.6227  ,   803.91223 ],
       [  167.56787 ,    50.185482],
       [  852.94135 ,   934.8866  ],
       [ 1113.5623  ,  1746.2261  ],
       [  771.55426 ,  1060.8016  ],
       [  688.74603 ,   802.35236 ],
       [10536.23    , 13771.425   ],
       [ 1016.6951  ,  1023.22375 ],
       [  387.1082  ,   536.6619  ],
       [  317.06055 ,   313.65598 ],
       [  195.64595 ,   136.30536 ],
       [  407.58157 ,   498.853   ],
       [  193.31119 ,   131.62497 ],
       [  704.5961  ,   916.2591  ],
       [ 1039.0177  ,  1694.2977  ],
       [10010.148   , 15782.555   ],
       [   84.45573 ,   -22.312496],
       [10720.519   , 12028.937   ],
       [  600.10913 ,   780.37946 ],
       [11735.283   , 13838.804   ],
       [  370.94952 ,   533.9112  ],
       [ 1104.217   ,  1681.901   ],
       [  410.5102  ,   323.52554 ],
       [  395.55917 ,   555.08057 ],
       [11051.969   , 11019.764   ],
       [ 1304.4296  ,  2089.2825  ],
       [10687.356   , 11897.006   ],
       [11204.106   , 14356.169   ],
       [ 1090.8058  ,  1623.682   ],
       [  779.8621  ,   912.7374  ],
       [  865.35443 ,   871.8132  ],
       [10983.814   , 11827.601   ],
       [  941.58026 ,  1039.4353  ],
       [ 1341.8043  ,  1757.6267  ],
       [  384.6042  ,   487.86346 ],
       [ 1270.9099  ,  1317.3862  ],
       [11344.095   , 15409.088   ],
       [ 1081.2527  ,  1775.4283  ],
       [ 1043.2506  ,  1458.5288  ],
       [  906.9569  ,  1032.8734  ],
       [  941.58026 ,  1039.4353  ],
       [  168.72546 ,    88.58223 ],
       [  677.1466  ,   801.54736 ],
       [  824.58514 ,   973.99835 ],
       [  341.29715 ,   759.86884 ],
       [  295.1775  ,   192.15799 ],
       [ 1070.5411  ,  1723.2421  ],
       [ 1123.2665  ,  1324.7588  ],
       [  404.6457  ,   767.98004 ],
       [ 1008.0169  ,  1668.6987  ],
       [11424.964   , 14311.51    ],
       [ 1688.7523  ,  1482.9012  ],
       [10760.828   , 11381.781   ],
       [10760.828   , 11381.781   ],
       [10845.84    , 12200.3545  ],
       [10823.565   , 11785.428   ],
       [10551.548   , 15356.034   ],
       [10533.989   ,  8814.531   ],
       [11358.319   , 13913.23    ],
       [  384.53366 ,   256.5992  ],
       [  662.0324  ,   922.28284 ],
       [  406.2312  ,   562.3748  ],
       [11466.327   , 13189.79    ],
       [  361.49445 ,   772.25684 ],
       [  674.89465 ,   827.57526 ],
       [  994.6179  ,  1005.362   ],
       [ 1326.381   ,  1720.1023  ],
       [  994.6179  ,  1005.362   ],
       [ 1132.2418  ,  1721.4011  ],
       [11402.407   , 14015.907   ],
       [ 1177.5433  ,  1367.53    ],
       [  922.4901  ,  1678.8469  ],
       [  380.63635 ,   567.5858  ],
       [  801.8367  ,   940.9808  ],
       [  681.05835 ,   845.0781  ],
       [  374.6362  ,   488.06863 ],
       [  906.9569  ,  1032.8734  ],
       [  152.37051 ,   114.99935 ],
       [  217.90707 ,   117.12175 ],
       [11158.72    , 11000.613   ],
       [  817.6034  ,   945.20374 ],
       [ 1151.7108  ,  1174.148   ],
       [ 1016.6951  ,  1023.22375 ],
       [  449.79416 ,   520.836   ],
       [  387.07602 ,   527.4897  ],
       [  916.1636  ,  1066.8954  ],
       [ 1113.9105  ,  1305.6373  ],
       [  750.6172  ,   908.88306 ],
       [11524.594   , 15545.861   ],
       [ 1234.288   ,  1659.1686  ],
       [ 1186.4081  ,  2229.7869  ],
       [  895.10815 ,   889.861   ],
       [ 1041.1367  ,  1690.8862  ],
       [ 1073.9315  ,  1716.0935  ],
       [10551.548   , 15356.034   ],
       [11544.789   , 14051.969   ],
       [  289.68622 ,   187.19872 ],
       [  749.97955 ,   893.7389  ],
       [  720.2503  ,  1015.39825 ],
       [  749.97955 ,   893.7389  ],
       [10085.853   , 14431.91    ],
       [  273.8957  ,   173.83041 ],
       [ 1197.1199  ,  1716.9813  ],
       [ 1199.0336  ,  1806.2025  ],
       [  516.913   ,   447.1036  ],
       [10797.725   , 11302.929   ]], dtype=float32)
y_true
array([[ 1517.47,   999.  ],
       [ 1165.07,  1712.  ],
       [ 1073.76,  1810.  ],
       [  403.28,   594.  ],
       [ 1018.61,  1019.  ],
       [12154.16, 15000.  ],
       [  272.71,   232.  ],
       [ 1022.51,  1023.  ],
       [ 1213.12,  1733.  ],
       [  462.33,   603.  ],
       [  934.83,  1036.  ],
       [ 1051.46,   999.  ],
       [11334.36, 11553.  ],
       [  204.54,   165.  ],
       [ 1133.76,  1055.  ],
       [ 1398.31,  1635.  ],
       [12187.62, 15500.  ],
       [11234.96, 11819.  ],
       [10811.97, 13800.  ],
       [  669.11,   917.  ],
       [ 1407.54,   986.  ],
       [ 1351.53,  1635.  ],
       [  953.72,  1927.  ],
       [ 1230.71,  1682.  ],
       [ 1070.39,  1036.  ],
       [ 1347.54,  1651.  ],
       [ 1076.4 ,  1827.  ],
       [10988.58, 15000.  ],
       [ 1470.67,   999.  ],
       [12720.98, 14342.  ],
       [ 1407.54,  1575.  ],
       [  403.21,   903.  ],
       [  955.53,   917.  ],
       [11110.67, 15000.  ],
       [ 1398.31,  1635.  ],
       [  849.74,   998.  ],
       [  838.62,   998.  ],
       [  208.62,   277.  ],
       [  449.63,   590.  ],
       [  403.21,   553.  ],
       [10572.17, 16695.  ],
       [  836.58,   998.  ],
       [ 1042.  ,  1575.  ],
       [  403.23,   603.  ],
       [10989.08, 15000.  ],
       [ 1016.21,  1575.  ],
       [11121.36, 14205.  ],
       [  721.72,   992.  ],
       [11128.36,  8900.  ],
       [12187.62, 15000.  ],
       [  403.28,   594.  ],
       [  284.4 ,   257.  ],
       [  667.07,   998.  ],
       [  403.28,   594.  ],
       [  403.21,   603.  ],
       [ 1022.51,  1023.  ],
       [ 1308.  ,  1555.  ],
       [11123.36, 14502.  ],
       [  403.32,   594.  ],
       [  403.28,   794.  ],
       [  403.26,   553.  ],
       [ 1144.01,  1712.  ],
       [  843.26,  1100.  ],
       [  996.32,  1651.  ],
       [  784.81,   843.  ],
       [ 1351.53,   986.  ],
       [  192.29,   127.  ],
       [  843.26,   843.  ],
       [ 1122.23,  1622.  ],
       [  783.81,  1022.  ],
       [  697.13,   917.  ],
       [10922.08, 15000.  ],
       [ 1022.51,  1023.  ],
       [  403.22,   603.  ],
       [  286.26,   259.  ],
       [  204.54,   165.  ],
       [  404.68,   605.  ],
       [  204.54,   165.  ],
       [  643.89,   980.  ],
       [ 1060.3 ,  1911.  ],
       [12210.97, 17056.  ],
       [  192.29,   127.  ],
       [11121.36, 12000.  ],
       [  584.08,   574.  ],
       [12210.97, 14055.  ],
       [  404.68,   595.  ],
       [ 1076.79,  1627.  ],
       [  272.71,   257.  ],
       [  404.53,   595.  ],
       [11371.96,  8500.  ],
       [ 1390.46,  1911.  ],
       [11198.36, 11618.  ],
       [12117.56, 15000.  ],
       [ 1071.66,  1653.  ],
       [  934.83,   998.  ],
       [  955.53,   917.  ],
       [11806.17,  9433.  ],
       [  959.16,  1022.  ],
       [ 1559.31,  1701.  ],
       [  403.28,   544.  ],
       [ 1407.54,   986.  ],
       [12144.74, 16500.  ],
       [ 1243.46,  1733.  ],
       [ 1025.68,   999.  ],
       [  933.83,   935.  ],
       [  959.16,  1022.  ],
       [  192.29,   127.  ],
       [  728.94,   998.  ],
       [  843.26,   902.  ],
       [  403.21,   894.  ],
       [  284.4 ,   257.  ],
       [ 1019.6 ,  1841.  ],
       [ 1156.53,  1099.  ],
       [  403.21,   903.  ],
       [ 1020.94,  1700.  ],
       [10489.17,  8000.  ],
       [ 1051.46,   999.  ],
       [12187.62, 15500.  ],
       [12210.97, 17890.  ],
       [10437.17,  8300.  ],
       [10421.17, 16380.  ],
       [10639.17, 16695.  ],
       [11370.96, 10655.  ],
       [12144.74, 16500.  ],
       [  416.12,   916.  ],
       [  667.07,   998.  ],
       [  410.98,   596.  ],
       [12247.57, 14055.  ],
       [  403.41,   995.  ],
       [  662.65,   732.  ],
       [ 1018.61,  1019.  ],
       [ 1351.53,  2037.  ],
       [ 1018.61,  1019.  ],
       [ 1078.49,  2061.  ],
       [12210.97, 15000.  ],
       [ 1195.3 ,   999.  ],
       [ 1051.46,  1799.  ],
       [  403.21,   704.  ],
       [  783.81,  1022.  ],
       [  697.13,   917.  ],
       [  403.21,   603.  ],
       [  933.83,  1022.  ],
       [  204.54,   165.  ],
       [  204.54,   165.  ],
       [12195.08, 15000.  ],
       [  738.68,   998.  ],
       [ 1133.2 ,  1712.  ],
       [ 1022.51,  1023.  ],
       [  410.98,   602.  ],
       [  403.28,   594.  ],
       [  956.17,   967.  ],
       [ 1151.59,   999.  ],
       [  738.68,   998.  ],
       [12144.74, 16500.  ],
       [ 1379.  ,  1650.  ],
       [ 1192.1 ,  1741.  ],
       [ 1022.51,  1036.  ],
       [ 1035.69,  1887.  ],
       [ 1062.2 ,  1813.  ],
       [11334.36, 16695.  ],
       [10675.77, 15000.  ],
       [  272.71,   232.  ],
       [  759.48,  1255.  ],
       [  721.72,  1092.  ],
       [  758.48,  1022.  ],
       [10922.08, 15000.  ],
       [  281.82,   256.  ],
       [ 1195.3 ,  1645.  ],
       [ 1173.91,  1996.  ],
       [  565.19,   541.  ],
       [10482.17, 12720.  ]])
pre = model.predict(X_train)
y_pre = scaler.inverse_transform(pre)
bp_cost,bp_price = y_pre[:,0],y_pre[:1]

lgb

X = train[train.columns[:34]].values
y = train[['线路总成本', '线路价格(不含税)']].values
X_train,X_test,y_train,y_test= train_test_split(X,y,test_size=0.1,random_state=2020)
成本
import lightgbm as lgb
pa_cost = dict( boosting_type='gbdt', class_weight=None,colsample_bytree=1.0, importance_type='split', lambda_l1=0.1,
    lambda_l2=0.7, learning_rate=0.1, max_depth=8, min_child_samples=12,min_child_weight=0.001, min_split_gain=0.0, n_estimators=138,
    n_jobs=-1, num_leaves=23, objective='regression', random_state=None,reg_alpha=0.0, reg_lambda=0.0, silent=True, subsample=1.0,
     subsample_for_bin=200000, subsample_freq=0)
gbm_C = lgb.LGBMRegressor(**pa_cost)

gbm_C.fit(X_train,y_train[:,0])

lgb_cost= gbm_C.predict(X_test)
metric(lgb_cost,y_test[:,0])
lgb_cost,y_test[:,0]
(array([ 1336.7367348 ,  1205.01886514,  1158.59693144,   398.50064806,
         1019.53135012, 11486.02914477,   295.09027858,  1010.90913263,
         1195.07007816,   437.21554971,   913.18290132,  1077.71872023,
        11134.53600982,   208.80590423,  1136.65839201,  1428.40775178,
        11360.30548702, 11325.41091263, 12293.95692894,   692.24956525,
         1357.53378681,  1328.39142045,   989.50925442,  1212.45287116,
          928.19056292,  1362.39615631,  1098.12249353, 11494.2569339 ,
         1305.60770558, 12709.38646157,  1411.86558407,   394.61542724,
          736.22554229, 12642.83000254,  1467.13462084,   804.72682991,
          817.79449777,   206.50378336,   446.8005589 ,   395.38125158,
        10989.39798235,   817.09824155,  1045.6527113 ,   407.74949128,
        10758.14127786,  1087.85104846, 11390.92737044,   732.82020867,
        11427.3250634 , 12162.6307659 ,   396.99754199,   279.6225437 ,
          703.76189297,   403.76293473,   401.6489462 ,  1010.90913263,
         1216.04819109, 11595.52956309,   398.50064806,   402.25982866,
          396.03458416,  1132.618276  ,   857.31244502,  1026.1917888 ,
          779.77921854,  1331.09665016,   200.96262324,   842.24650675,
         1127.69464839,   778.37332493,   685.69068321, 10993.58743916,
         1010.90913263,   402.43692652,   277.22049673,   207.63355143,
          396.45519348,   212.03201108,   651.23461765,  1117.24154057,
        10710.89004843,   160.81902844, 11360.30548702,   630.57622203,
        11551.59637353,   396.57693268,  1094.28706708,   259.74999714,
          398.50064806, 11429.31230831,  1353.90017076, 11427.3250634 ,
        12021.9641796 ,  1094.28706708,   934.57299766,   736.22554229,
        11540.40624398,   956.34601954,  1379.23038628,   405.14424315,
         1364.97811248, 12121.08335157,  1078.07225674,  1071.9300919 ,
          935.1603461 ,   956.34601954,   189.28216467,   697.30206539,
          843.65240036,   402.35171511,   280.04852842,  1044.61651585,
         1136.65839201,   401.28078448,  1073.57696216, 11592.36667515,
         1103.56632182, 11390.92737044, 11390.92737044, 11134.53600982,
        10919.65703971, 11168.64898932, 11265.43559821, 12145.64474858,
          403.50981664,   695.57329373,   437.21554971, 11616.30874192,
          435.29183432,   677.10241847,  1019.53135012,  1350.54663615,
         1019.53135012,  1132.37866764, 12006.03681906,  1213.4501359 ,
         1078.07225674,   393.80655956,   778.37332493,   689.09862171,
          395.11720145,   935.1603461 ,   223.20669827,   207.29441618,
        12201.57996762,   813.80536316,  1171.41890809,  1010.90913263,
          420.84313132,   403.76293473,  1018.31660039,  1156.32951312,
          727.12427074, 12411.08387213,  1372.39666027,  1163.3875832 ,
          990.17366628,  1139.80824078,  1133.51079256, 11168.64898932,
        10760.57014033,   279.21263808,   757.00874914,   732.27786016,
          757.00874914, 10885.64437008,   271.46495977,  1189.01746867,
         1180.48453291,   508.34055772, 10706.04133637]),
 array([ 1517.47,  1165.07,  1073.76,   403.28,  1018.61, 12154.16,
          272.71,  1022.51,  1213.12,   462.33,   934.83,  1051.46,
        11334.36,   204.54,  1133.76,  1398.31, 12187.62, 11234.96,
        10811.97,   669.11,  1407.54,  1351.53,   953.72,  1230.71,
         1070.39,  1347.54,  1076.4 , 10988.58,  1470.67, 12720.98,
         1407.54,   403.21,   955.53, 11110.67,  1398.31,   849.74,
          838.62,   208.62,   449.63,   403.21, 10572.17,   836.58,
         1042.  ,   403.23, 10989.08,  1016.21, 11121.36,   721.72,
        11128.36, 12187.62,   403.28,   284.4 ,   667.07,   403.28,
          403.21,  1022.51,  1308.  , 11123.36,   403.32,   403.28,
          403.26,  1144.01,   843.26,   996.32,   784.81,  1351.53,
          192.29,   843.26,  1122.23,   783.81,   697.13, 10922.08,
         1022.51,   403.22,   286.26,   204.54,   404.68,   204.54,
          643.89,  1060.3 , 12210.97,   192.29, 11121.36,   584.08,
        12210.97,   404.68,  1076.79,   272.71,   404.53, 11371.96,
         1390.46, 11198.36, 12117.56,  1071.66,   934.83,   955.53,
        11806.17,   959.16,  1559.31,   403.28,  1407.54, 12144.74,
         1243.46,  1025.68,   933.83,   959.16,   192.29,   728.94,
          843.26,   403.21,   284.4 ,  1019.6 ,  1156.53,   403.21,
         1020.94, 10489.17,  1051.46, 12187.62, 12210.97, 10437.17,
        10421.17, 10639.17, 11370.96, 12144.74,   416.12,   667.07,
          410.98, 12247.57,   403.41,   662.65,  1018.61,  1351.53,
         1018.61,  1078.49, 12210.97,  1195.3 ,  1051.46,   403.21,
          783.81,   697.13,   403.21,   933.83,   204.54,   204.54,
        12195.08,   738.68,  1133.2 ,  1022.51,   410.98,   403.28,
          956.17,  1151.59,   738.68, 12144.74,  1379.  ,  1192.1 ,
         1022.51,  1035.69,  1062.2 , 11334.36, 10675.77,   272.71,
          759.48,   721.72,   758.48, 10922.08,   281.82,  1195.3 ,
         1173.91,   565.19, 10482.17]))
pre_cost_lgb_train = gbm_C.predict(X_train)

(171,)
线路指导价
pa_price = dict( min_child_weight=0.0, boosting_type='gbdt', class_weight=None,
       colsample_bytree=1.0, importance_type='split', learning_rate=0.1,
       max_depth=-1, min_child_samples=10,
       min_split_gain=0.0, n_estimators=57, n_jobs=-1, num_leaves=31,
       objective='regression', random_state=None, reg_alpha=0.0,
       reg_lambda=0.0, silent=True, subsample=1.0,
       subsample_for_bin=200000, subsample_freq=0)
gbm_P = lgb.LGBMRegressor(**pa_price) 

gbm_P.fit(X_train,y_train[:,1])
lgb_price = gbm_P.predict(X_test)
metric(lgb_price,y_test[:,1])
lgb_price,y_test[:,1]
(array([ 1201.70103279,  1406.64809669,  1782.63628775,   599.65940608,
         1046.38234841, 16282.55523129,   263.63530256,  1063.02504542,
         1808.695056  ,   612.6639388 ,  1013.20218562,  1552.27465217,
        13079.79043257,   194.99562723,  1103.79020382,  1446.83397412,
        13037.15062028, 11259.00892911, 14430.58653229,   953.29048158,
         1094.36799243,  1509.90938107,  1752.66111256,  1826.1026242 ,
         1009.52204282,  1601.22434475,  1742.26264587, 15306.19925105,
         1201.70103279, 14587.5950772 ,  1735.18129396,   634.86515226,
          951.74363164, 14956.90559903,  1437.11850709,  1013.88813315,
         1020.13906128,   290.40960251,   612.6639388 ,   634.86515226,
        16458.91942109,   995.86504373,  1521.50505002,   597.74244106,
        14972.93277324,  1445.57774623, 12250.63345355,  1030.07330024,
        12394.18286045, 14827.93833129,   599.65940608,   263.63530256,
         1011.24924301,   599.65940608,   599.65940608,  1063.02504542,
         1743.87444909, 14831.92669505,   599.65940608,   634.86515226,
          613.13920531,  1309.22706683,  1016.23431666,  1739.44939289,
         1015.7781514 ,  1102.22171871,   165.43177432,  1015.7781514 ,
         1810.91575861,  1014.89355494,   938.18409724, 14900.02133472,
         1063.02504542,   597.74244106,   265.43838235,   188.34706585,
          592.15814173,   188.34706585,   990.15831727,  1803.89344661,
        13634.38451893,   168.66531064, 13037.15062028,   730.27808661,
        15390.40869279,   634.86515226,  1798.90918169,   293.59074551,
          599.65940608, 11087.16940049,  1944.08660094, 12394.18286045,
        15467.73499682,  1796.19875094,  1015.91261638,   951.74363164,
        12892.07368131,  1023.23239974,  1676.40026223,   613.13920531,
         1104.77535659, 16682.62648373,  1739.44939289,  1415.49472744,
         1029.18327888,  1023.23239974,   165.43177432,   990.76150577,
         1014.89355494,   757.12311875,   263.63530256,  1747.05737697,
         1103.94177581,   680.89551886,  1739.44939289, 14174.61205782,
         1008.10783634, 12250.63345355, 12250.63345355, 13079.79043257,
        10058.70970361, 16251.24099279,  9511.06495235, 16818.3073124 ,
          672.38140205,  1004.98329366,   612.6639388 , 13788.26377648,
          711.28678539,  1034.47154707,  1024.26409367,  1840.10212138,
         1024.26409367,  1742.26264587, 15088.79553804,  1409.35852744,
         1691.60278878,   673.04942096,  1015.7781514 ,   939.06869369,
          613.13920531,  1029.18327888,   159.72709096,   188.34706585,
        14369.51048219,  1015.91261638,  1417.46847845,  1063.02504542,
          605.16267445,   599.65940608,  1030.70418486,  1214.07758821,
         1001.9629587 , 16653.21358247,  1739.53768403,  1846.71671107,
         1024.43596928,  1734.80839753,  1734.80839753, 16251.24099279,
        16472.46367379,   263.63530256,  1022.5366351 ,  1029.18870378,
         1022.5366351 , 14919.93459553,   264.03308151,  1742.26264587,
         1810.91575861,   582.13315948, 10879.87222072]),
 array([  999.,  1712.,  1810.,   594.,  1019., 15000.,   232.,  1023.,
         1733.,   603.,  1036.,   999., 11553.,   165.,  1055.,  1635.,
        15500., 11819., 13800.,   917.,   986.,  1635.,  1927.,  1682.,
         1036.,  1651.,  1827., 15000.,   999., 14342.,  1575.,   903.,
          917., 15000.,  1635.,   998.,   998.,   277.,   590.,   553.,
        16695.,   998.,  1575.,   603., 15000.,  1575., 14205.,   992.,
         8900., 15000.,   594.,   257.,   998.,   594.,   603.,  1023.,
         1555., 14502.,   594.,   794.,   553.,  1712.,  1100.,  1651.,
          843.,   986.,   127.,   843.,  1622.,  1022.,   917., 15000.,
         1023.,   603.,   259.,   165.,   605.,   165.,   980.,  1911.,
        17056.,   127., 12000.,   574., 14055.,   595.,  1627.,   257.,
          595.,  8500.,  1911., 11618., 15000.,  1653.,   998.,   917.,
         9433.,  1022.,  1701.,   544.,   986., 16500.,  1733.,   999.,
          935.,  1022.,   127.,   998.,   902.,   894.,   257.,  1841.,
         1099.,   903.,  1700.,  8000.,   999., 15500., 17890.,  8300.,
        16380., 16695., 10655., 16500.,   916.,   998.,   596., 14055.,
          995.,   732.,  1019.,  2037.,  1019.,  2061., 15000.,   999.,
         1799.,   704.,  1022.,   917.,   603.,  1022.,   165.,   165.,
        15000.,   998.,  1712.,  1023.,   602.,   594.,   967.,   999.,
          998., 16500.,  1650.,  1741.,  1036.,  1887.,  1813., 16695.,
        15000.,   232.,  1255.,  1092.,  1022., 15000.,   256.,  1645.,
         1996.,   541., 12720.]))
lgb_price = gbm_P.predict(X_train)
lgb_price.shape
(1532,)
y_test.shape
np.zeros((171,)) 
array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
       0.])

stacking

融合验证
for train_index,test_index in kf.split(X_train):
    X_train_1, X_test_1 = X_train[train_index], X_train[test_index]
    y_train_1, y_test_1 = y_train[train_index], y_train[test_index]

def stacking_pre(model,X_train,y_train,X_test):
    kf =KFold(n_splits=5,shuffle=False)
    y_pre_list= []
    y_test_pre = np.zeros((X_test.shape[0],))
    for train_index,test_index in kf.split(X_train):
        X_train_1, X_test_1 = X_train[train_index], X_train[test_index]
        y_train_1, y_test_1 = y_train[train_index], y_train[test_index]
        model.fit(X_train_1,y_train_1)
        pre_y = model.predict(X_test_1)
        a = pre_y.tolist()
        y_pre_list = y_pre_list + a
        y_test_pre += model.predict(X_test)
    return np.array(y_pre_list),y_test_pre/5

def stacking_pre_bp(X_train,y_train,X_test):
    kf =KFold(n_splits=5,shuffle=False)
    c_list = []
    p_list = []
    y_test_pre = np.zeros((X_test.shape[0],2))
    for train_index, test_index in kf.split(X_train):
        X_train_1, X_test_1 = X_train[train_index], X_train[test_index]
        y_train_1, y_test_1 = y_train[train_index], y_train[test_index]
        model = build_model()
        model.fit(X_train_1,y_train_1,epochs=250)
        pre_y = model.predict(X_test_1)
        pre_y = scaler.inverse_transform(pre_y)
        a = pre_y[:,0].tolist()
        b = pre_y[:,1].tolist()
        c_list = c_list + a
        p_list = p_list + b
        pre_test_y = model.predict(X_test)
        pre_test_ye = scaler.inverse_transform(pre_test_y)
        y_test_pre += pre_test_ye
    return np.array(c_list),np.array(p_list),y_test_pre/5

X = train[train.columns[:34]].values
y = train[['线路总成本', '线路价格(不含税)']].values
scaler = MinMaxScaler()
y = scaler.fit_transform(y)
X_train,X_test,y_train,y_test= train_test_split(X,y,test_size=0.1,random_state=2020)

new_train_c_2,new_train_p_2,new_test_cp = stacking_pre_bp(X_train,y_train,X_test)

X = train[train.columns[:34]].values
y = train[['线路总成本', '线路价格(不含税)']].values
X_train,X_test,y_train,y_test= train_test_split(X,y,test_size=0.1,random_state=2020)

new_train_c_1,new_test_c_1 = stacking_pre(gbm_C,X_train,y_train[:,0],X_test)
new_train_p_1,new_test_p_1 = stacking_pre(gbm_P,X_train,y_train[:,1],X_test)

from sklearn.linear_model import LinearRegression

lr = LinearRegression()
lr.fit(np.column_stack((new_train_c_1,new_train_c_2)),y_train[:,0])

lr.predict(np.column_stack((new_test_c_1 ,new_test_cp[:,0])))

metric(lr.predict(np.column_stack((new_test_c_1 ,new_test_cp[:,0]))),y_test[:,0]) # 0.0311

lr = LinearRegression()
lr.fit(np.column_stack((new_train_p_1,new_train_p_2)),y_train[:,1])
lr.predict(np.column_stack((new_test_p_1 ,new_test_cp[:,1])))

metric(lr.predict(np.column_stack((new_test_p_1 ,new_test_cp[:,1]))),y_test[:,1]) # 0.0977
融合结果
X = train[train.columns[:34]].values
y = train[['线路总成本', '线路价格(不含税)']].values
scaler = MinMaxScaler()
y = scaler.fit_transform(y)
X_train,X_test,y_train,y_test= train_test_split(X,y,test_size=0.1,random_state=2020)

new_train_c_2,new_train_p_2,new_test_cp = stacking_pre_bp(X_train,y_train,X_test=test.values)

X = train[train.columns[:34]].values
y = train[['线路总成本', '线路价格(不含税)']].values
X_train,X_test,y_train,y_test= train_test_split(X,y,test_size=0.1,random_state=2020)

new_train_c_1,new_test_c_1 = stacking_pre(gbm_C,X_train,y_train[:,0],test.values)
new_train_p_1,new_test_p_1 = stacking_pre(gbm_P,X_train,y_train[:,1],test.values)

lr = LinearRegression()
lr.fit(np.column_stack((new_train_c_1,new_train_c_2)),y_train[:,0])
pre_cost_stacking = lr.predict(np.column_stack((new_test_c_1 ,new_test_cp[:,0])))

lr = LinearRegression()
lr.fit(np.column_stack((new_train_p_1,new_train_p_2)),y_train[:,1])
pre_pre_stacking = lr.predict(np.column_stack((new_test_p_1 ,new_test_cp[:,1])))

pre_cost_stacking

pre_pre_stacking 

result_stacking = pd.DataFrame({'线路价格':pre_pre_stacking,'成本':pre_cost_stacking})
result_stacking.index = test.index

result_stacking.to_csv('result_stackinge.csv',encoding='utf-8-sig')
Epoch 1/250
1225/1225 [==============================] - 1s 679us/step - loss: 0.1895 - mae: 0.3338
Epoch 2/250
1225/1225 [==============================] - 0s 182us/step - loss: 0.0772 - mae: 0.2119
Epoch 3/250
1225/1225 [==============================] - 0s 169us/step - loss: 0.0124 - mae: 0.0815
Epoch 4/250
1225/1225 [==============================] - 0s 229us/step - loss: 0.0046 - mae: 0.0470
Epoch 5/250
1225/1225 [==============================] - 0s 178us/step - loss: 0.0031 - mae: 0.0366
Epoch 6/250
1225/1225 [==============================] - 0s 201us/step - loss: 0.0027 - mae: 0.0322
Epoch 7/250
1225/1225 [==============================] - 0s 196us/step - loss: 0.0026 - mae: 0.0297
Epoch 8/250
1225/1225 [==============================] - 0s 196us/step - loss: 0.0022 - mae: 0.0273
Epoch 9/250
1225/1225 [==============================] - 0s 193us/step - loss: 0.0021 - mae: 0.0250
Epoch 10/250
1225/1225 [==============================] - 0s 169us/step - loss: 0.0021 - mae: 0.0254
Epoch 11/250
1225/1225 [==============================] - 0s 167us/step - loss: 0.0021 - mae: 0.0247
Epoch 12/250
1225/1225 [==============================] - 0s 204us/step - loss: 0.0020 - mae: 0.0240
Epoch 13/250
1225/1225 [==============================] - 0s 353us/step - loss: 0.0018 - mae: 0.0226
Epoch 14/250
1225/1225 [==============================] - 0s 224us/step - loss: 0.0018 - mae: 0.0215
Epoch 15/250
1225/1225 [==============================] - 0s 288us/step - loss: 0.0018 - mae: 0.0212
Epoch 16/250
1225/1225 [==============================] - 0s 282us/step - loss: 0.0018 - mae: 0.0217
Epoch 17/250
1225/1225 [==============================] - 0s 199us/step - loss: 0.0018 - mae: 0.0215
Epoch 18/250
1225/1225 [==============================] - 1s 697us/step - loss: 0.0018 - mae: 0.0210
Epoch 19/250
1225/1225 [==============================] - 0s 212us/step - loss: 0.0016 - mae: 0.0197
Epoch 20/250
1225/1225 [==============================] - 0s 209us/step - loss: 0.0016 - mae: 0.0195
Epoch 21/250
1225/1225 [==============================] - 0s 158us/step - loss: 0.0015 - mae: 0.0186
Epoch 22/250
1225/1225 [==============================] - 0s 312us/step - loss: 0.0018 - mae: 0.0205
Epoch 23/250
1225/1225 [==============================] - 0s 180us/step - loss: 0.0017 - mae: 0.0196

26/1226 [] - 0s 263us/step - loss: 0.0011 - mae: 0.0131
Epoch 245/250
1226/1226 [
] - 0s 194us/step - loss: 0.0011 - mae: 0.0127
Epoch 246/250
1226/1226 [] - 0s 194us/step - loss: 0.0012 - mae: 0.0137
Epoch 247/250
1226/1226 [
] - 0s 182us/step - loss: 0.0011 - mae: 0.0126
Epoch 248/250
1226/1226 [] - 0s 215us/step - loss: 0.0011 - mae: 0.0129
Epoch 249/250
1226/1226 [
] - 0s 204us/step - loss: 0.0011 - mae: 0.0131
Epoch 250/250
1226/1226 [==============================] - 0s 221us/step - loss: 0.0011 - mae: 0.0129


  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值