用到的数据集是 Advertising数据集,是关于广告收益与广告在不同的媒体上投放的相关数据,分别是在TV,Radio,Newspaper三种媒体上投放花费与,投放所产生的收益的数据,数据共有200条。
Advertising数据集下载地址:链接:https://pan.baidu.com/s/1CMVzkOGIdEB7vn03s0mLCA提取码:otex
1、用pandas读取数据集
import pandas as pd
data = pd.read_csv('dataset/Advertising.csv')
data
可以看到其格式如下
Unnamed: 0 | TV | radio | newspaper | sales | |
---|---|---|---|---|---|
0 | 1 | 230.1 | 37.8 | 69.2 | 22.1 |
1 | 2 | 44.5 | 39.3 | 45.1 | 10.4 |
2 | 3 | 17.2 | 45.9 | 69.3 | 9.3 |
3 | 4 | 151.5 | 41.3 | 58.5 | 18.5 |
4 | 5 | 180.8 | 10.8 | 58.4 | 12.9 |
... | ... | ... | ... | ... | ... |
195 | 196 | 38.2 | 3.7 | 13.8 | 7.6 |
196 | 197 | 94.2 | 4.9 | 8.1 | 9.7 |
197 | 198 | 177.0 | 9.3 | 6.4 | 12.8 |
198 | 199 | 283.6 | 42.0 | 66.2 | 25.5 |
199 | 200 | 232.1 | 8.6 | 8.7 | 13.4 |
200 rows × 5 columns
2、构建多层感知机对其进行回归
import tensorflow as tf
x = data.iloc[:,1:-1]
y = data.iloc[:,-1]
model = tf.keras.Sequential([
tf.keras.layers.Dense(10,input_shape=(3,),activation='relu'),
tf.keras.layers.Dense(1)
])
model.compile(optimizer = 'adam',
loss = 'mse'
)
model.summary()
构建模型详情为:
Model: "sequential_2" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= dense_3 (Dense) (None, 10) 40 _________________________________________________________________ dense_4 (Dense) (None, 1) 11 ================================================================= Total params: 51 Trainable params: 51 Non-trainable params: 0 _________________________________________________________________
3、对模型进行训练
model.fit(x,y,epochs=200)
Train on 200 samples Epoch 1/200 200/200 [==============================] - 0s 590us/sample - loss: 273.4520 Epoch 2/200 200/200 [==============================] - 0s 0s/sample - loss: 194.7319 Epoch 3/200 200/200 [==============================] - 0s 0s/sample - loss: 140.4856 Epoch 4/200 200/200 [==============================] - 0s 50us/sample - loss: 115.1562 Epoch 5/200 200/200 [==============================] - 0s 50us/sample - loss: 103.4288 Epoch 6/200 200/200 [==============================] - 0s 34us/sample - loss: 100.3007 Epoch 7/200 200/200 [==============================] - 0s 60us/sample - loss: 96.4272 Epoch 8/200 200/200 [==============================] - 0s 40us/sample - loss: 92.4249 Epoch 9/200 200/200 [==============================] - 0s 60us/sample - loss: 87.2561 Epoch 10/200 200/200 [==============================] - 0s 40us/sample - loss: 82.9215 Epoch 11/200 200/200 [==============================] - 0s 60us/sample - loss: 79.0016 Epoch 12/200 200/200 [==============================] - 0s 20us/sample - loss: 75.0967 Epoch 13/200 200/200 [==============================] - 0s 20us/sample - loss: 71.2564 Epoch 14/200 200/200 [==============================] - 0s 20us/sample - loss: 67.9018 Epoch 15/200 200/200 [==============================] - 0s 40us/sample - loss: 64.3448 Epoch 16/200 200/200 [==============================] - 0s 40us/sample - loss: 61.1640 Epoch 17/200 200/200 [==============================] - 0s 40us/sample - loss: 57.8046 Epoch 18/200 200/200 [==============================] - 0s 40us/sample - loss: 54.6231 Epoch 19/200 200/200 [==============================] - 0s 40us/sample - loss: 51.2900 Epoch 20/200 200/200 [==============================] - 0s 40us/sample - loss: 48.3863 Epoch 21/200 200/200 [==============================] - 0s 40us/sample - loss: 45.3102 Epoch 22/200 200/200 [==============================] - 0s 20us/sample - loss: 42.2983 Epoch 23/200 200/200 [==============================] - 0s 20us/sample - loss: 39.1970 Epoch 24/200 200/200 [==============================] - 0s 40us/sample - loss: 36.4386 Epoch 25/200 200/200 [==============================] - 0s 40us/sample - loss: 33.7846 Epoch 26/200 200/200 [==============================] - 0s 40us/sample - loss: 31.2897 Epoch 27/200 200/200 [==============================] - 0s 20us/sample - loss: 28.7051 Epoch 28/200 200/200 [==============================] - 0s 40us/sample - loss: 26.1368 Epoch 29/200 200/200 [==============================] - 0s 40us/sample - loss: 23.5193 Epoch 30/200 200/200 [==============================] - 0s 40us/sample - loss: 21.2189 Epoch 31/200 200/200 [==============================] - 0s 20us/sample - loss: 19.3517 Epoch 32/200 200/200 [==============================] - 0s 20us/sample - loss: 17.5733 Epoch 33/200 200/200 [==============================] - 0s 20us/sample - loss: 16.0759 Epoch 34/200 200/200 [==============================] - 0s 40us/sample - loss: 14.8730 Epoch 35/200 200/200 [==============================] - 0s 40us/sample - loss: 13.8378 Epoch 36/200 200/200 [==============================] - 0s 60us/sample - loss: 12.9185 Epoch 37/200 200/200 [==============================] - 0s 60us/sample - loss: 12.2530 Epoch 38/200 200/200 [==============================] - 0s 60us/sample - loss: 11.5455 Epoch 39/200 200/200 [==============================] - 0s 40us/sample - loss: 10.9511 Epoch 40/200 200/200 [==============================] - 0s 40us/sample - loss: 10.5460 Epoch 41/200 200/200 [==============================] - 0s 40us/sample - loss: 10.1069 Epoch 42/200 200/200 [==============================] - 0s 40us/sample - loss: 9.7535 Epoch 43/200 200/200 [==============================] - 0s 20us/sample - loss: 9.4201 Epoch 44/200 200/200 [==============================] - 0s 20us/sample - loss: 9.0841 Epoch 45/200 200/200 [==============================] - 0s 40us/sample - loss: 8.8426 Epoch 46/200 200/200 [==============================] - 0s 40us/sample - loss: 8.6157 Epoch 47/200 200/200 [==============================] - 0s 40us/sample - loss: 8.3555 Epoch 48/200 200/200 [==============================] - 0s 40us/sample - loss: 8.2362 Epoch 49/200 200/200 [==============================] - 0s 20us/sample - loss: 7.9889 Epoch 50/200 200/200 [==============================] - 0s 20us/sample - loss: 7.7945 Epoch 51/200 200/200 [==============================] - 0s 40us/sample - loss: 7.6098 Epoch 52/200 200/200 [==============================] - 0s 40us/sample - loss: 7.4422 Epoch 53/200 200/200 [==============================] - 0s 40us/sample - loss: 7.3042 Epoch 54/200 200/200 [==============================] - 0s 40us/sample - loss: 7.1000 Epoch 55/200 200/200 [==============================] - 0s 20us/sample - loss: 7.0053 Epoch 56/200 200/200 [==============================] - 0s 20us/sample - loss: 6.9254 Epoch 57/200 200/200 [==============================] - 0s 20us/sample - loss: 6.7701 Epoch 58/200 200/200 [==============================] - 0s 20us/sample - loss: 6.6465 Epoch 59/200 200/200 [==============================] - 0s 40us/sample - loss: 6.5616 Epoch 60/200 200/200 [==============================] - 0s 40us/sample - loss: 6.4437 Epoch 61/200 200/200 [==============================] - 0s 40us/sample - loss: 6.3310 Epoch 62/200 200/200 [==============================] - 0s 45us/sample - loss: 6.2673 Epoch 63/200 200/200 [==============================] - 0s 20us/sample - loss: 6.1871 Epoch 64/200 200/200 [==============================] - 0s 60us/sample - loss: 6.1090 Epoch 65/200 200/200 [==============================] - 0s 60us/sample - loss: 6.0285 Epoch 66/200 200/200 [==============================] - 0s 60us/sample - loss: 5.9562 Epoch 67/200 200/200 [==============================] - 0s 60us/sample - loss: 5.8917 Epoch 68/200 200/200 [==============================] - 0s 40us/sample - loss: 5.8315 Epoch 69/200 200/200 [==============================] - 0s 40us/sample - loss: 5.7629 Epoch 70/200 200/200 [==============================] - 0s 40us/sample - loss: 5.7448 Epoch 71/200 200/200 [==============================] - 0s 40us/sample - loss: 5.6482 Epoch 72/200 200/200 [==============================] - 0s 40us/sample - loss: 5.6029 Epoch 73/200 200/200 [==============================] - 0s 40us/sample - loss: 5.5018 Epoch 74/200 200/200 [==============================] - 0s 20us/sample - loss: 5.4211 Epoch 75/200 200/200 [==============================] - 0s 20us/sample - loss: 5.3095 Epoch 76/200 200/200 [==============================] - 0s 40us/sample - loss: 5.2413 Epoch 77/200 200/200 [==============================] - 0s 40us/sample - loss: 5.1914 Epoch 78/200 200/200 [==============================] - 0s 40us/sample - loss: 5.1271 Epoch 79/200 200/200 [==============================] - 0s 40us/sample - loss: 5.0880 Epoch 80/200 200/200 [==============================] - 0s 20us/sample - loss: 5.0708 Epoch 81/200 200/200 [==============================] - 0s 20us/sample - loss: 4.9938 Epoch 82/200 200/200 [==============================] - 0s 40us/sample - loss: 4.9652 Epoch 83/200 200/200 [==============================] - 0s 40us/sample - loss: 4.9094 Epoch 84/200 200/200 [==============================] - 0s 40us/sample - loss: 4.8671 Epoch 85/200 200/200 [==============================] - 0s 40us/sample - loss: 4.8637 Epoch 86/200 200/200 [==============================] - 0s 40us/sample - loss: 4.7988 Epoch 87/200 200/200 [==============================] - 0s 20us/sample - loss: 4.7624 Epoch 88/200 200/200 [==============================] - 0s 20us/sample - loss: 4.7319 Epoch 89/200 200/200 [==============================] - 0s 40us/sample - loss: 4.6933 Epoch 90/200 200/200 [==============================] - 0s 41us/sample - loss: 4.6635 Epoch 91/200 200/200 [==============================] - 0s 39us/sample - loss: 4.6124 Epoch 92/200 200/200 [==============================] - 0s 40us/sample - loss: 4.5914 Epoch 93/200 200/200 [==============================] - 0s 40us/sample - loss: 4.5552 Epoch 94/200 200/200 [==============================] - 0s 40us/sample - loss: 4.5350 Epoch 95/200
200/200 [==============================] - 0s 60us/sample - loss: 4.4939 Epoch 96/200 200/200 [==============================] - 0s 40us/sample - loss: 4.4543 Epoch 97/200 200/200 [==============================] - 0s 40us/sample - loss: 4.4177 Epoch 98/200 200/200 [==============================] - 0s 40us/sample - loss: 4.3806 Epoch 99/200 200/200 [==============================] - 0s 40us/sample - loss: 4.3575 Epoch 100/200 200/200 [==============================] - 0s 40us/sample - loss: 4.3133 Epoch 101/200 200/200 [==============================] - 0s 20us/sample - loss: 4.2764 Epoch 102/200 200/200 [==============================] - 0s 20us/sample - loss: 4.2563 Epoch 103/200 200/200 [==============================] - 0s 34us/sample - loss: 4.2289 Epoch 104/200 200/200 [==============================] - 0s 33us/sample - loss: 4.1848 Epoch 105/200 200/200 [==============================] - 0s 40us/sample - loss: 4.1530 Epoch 106/200 200/200 [==============================] - 0s 40us/sample - loss: 4.1117 Epoch 107/200 200/200 [==============================] - 0s 40us/sample - loss: 4.0816 Epoch 108/200 200/200 [==============================] - 0s 20us/sample - loss: 4.0604 Epoch 109/200 200/200 [==============================] - 0s 40us/sample - loss: 4.0225 Epoch 110/200 200/200 [==============================] - 0s 40us/sample - loss: 3.9971 Epoch 111/200 200/200 [==============================] - 0s 40us/sample - loss: 3.9679 Epoch 112/200 200/200 [==============================] - 0s 40us/sample - loss: 3.9324 Epoch 113/200 200/200 [==============================] - 0s 20us/sample - loss: 3.9040 Epoch 114/200 200/200 [==============================] - 0s 40us/sample - loss: 3.9016 Epoch 115/200 200/200 [==============================] - 0s 40us/sample - loss: 3.8728 Epoch 116/200 200/200 [==============================] - 0s 40us/sample - loss: 3.8315 Epoch 117/200 200/200 [==============================] - 0s 40us/sample - loss: 3.8463 Epoch 118/200 200/200 [==============================] - 0s 20us/sample - loss: 3.7967 Epoch 119/200 200/200 [==============================] - 0s 40us/sample - loss: 3.7828 Epoch 120/200 200/200 [==============================] - 0s 40us/sample - loss: 3.7274 Epoch 121/200 200/200 [==============================] - 0s 40us/sample - loss: 3.7071 Epoch 122/200 200/200 [==============================] - 0s 40us/sample - loss: 3.6692 Epoch 123/200 200/200 [==============================] - 0s 20us/sample - loss: 3.6441 Epoch 124/200 200/200 [==============================] - 0s 40us/sample - loss: 3.6144 Epoch 125/200 200/200 [==============================] - 0s 60us/sample - loss: 3.6078 Epoch 126/200 200/200 [==============================] - 0s 40us/sample - loss: 3.5719 Epoch 127/200 200/200 [==============================] - 0s 60us/sample - loss: 3.5604 Epoch 128/200 200/200 [==============================] - 0s 40us/sample - loss: 3.5566 Epoch 129/200 200/200 [==============================] - 0s 60us/sample - loss: 3.5296 Epoch 130/200 200/200 [==============================] - 0s 30us/sample - loss: 3.4946 Epoch 131/200 200/200 [==============================] - 0s 40us/sample - loss: 3.4596 Epoch 132/200 200/200 [==============================] - 0s 40us/sample - loss: 3.4514 Epoch 133/200 200/200 [==============================] - 0s 40us/sample - loss: 3.4280 Epoch 134/200 200/200 [==============================] - 0s 40us/sample - loss: 3.4444 Epoch 135/200 200/200 [==============================] - 0s 60us/sample - loss: 3.3980 Epoch 136/200 200/200 [==============================] - 0s 40us/sample - loss: 3.3698 Epoch 137/200 200/200 [==============================] - 0s 40us/sample - loss: 3.3435 Epoch 138/200 200/200 [==============================] - 0s 40us/sample - loss: 3.3274 Epoch 139/200 200/200 [==============================] - 0s 40us/sample - loss: 3.3135 Epoch 140/200 200/200 [==============================] - 0s 60us/sample - loss: 3.2917 Epoch 141/200 200/200 [==============================] - 0s 40us/sample - loss: 3.2718 Epoch 142/200 200/200 [==============================] - 0s 40us/sample - loss: 3.2680 Epoch 143/200 200/200 [==============================] - 0s 40us/sample - loss: 3.2369 Epoch 144/200 200/200 [==============================] - 0s 60us/sample - loss: 3.2319 Epoch 145/200 200/200 [==============================] - 0s 60us/sample - loss: 3.2209 Epoch 146/200 200/200 [==============================] - 0s 40us/sample - loss: 3.1857 Epoch 147/200 200/200 [==============================] - 0s 40us/sample - loss: 3.1719 Epoch 148/200 200/200 [==============================] - 0s 40us/sample - loss: 3.1502 Epoch 149/200 200/200 [==============================] - 0s 40us/sample - loss: 3.1393 Epoch 150/200 200/200 [==============================] - 0s 40us/sample - loss: 3.1189 Epoch 151/200 200/200 [==============================] - 0s 40us/sample - loss: 3.1065 Epoch 152/200 200/200 [==============================] - 0s 40us/sample - loss: 3.0819 Epoch 153/200 200/200 [==============================] - 0s 40us/sample - loss: 3.1031 Epoch 154/200 200/200 [==============================] - 0s 20us/sample - loss: 3.0498 Epoch 155/200 200/200 [==============================] - 0s 40us/sample - loss: 3.0464 Epoch 156/200 200/200 [==============================] - 0s 40us/sample - loss: 3.0475 Epoch 157/200 200/200 [==============================] - 0s 40us/sample - loss: 3.0367 Epoch 158/200 200/200 [==============================] - 0s 60us/sample - loss: 2.9995 Epoch 159/200 200/200 [==============================] - 0s 60us/sample - loss: 3.0171 Epoch 160/200 200/200 [==============================] - 0s 20us/sample - loss: 2.9641 Epoch 161/200 200/200 [==============================] - 0s 40us/sample - loss: 2.9609 Epoch 162/200 200/200 [==============================] - 0s 40us/sample - loss: 2.9428 Epoch 163/200 200/200 [==============================] - 0s 40us/sample - loss: 2.9411 Epoch 164/200 200/200 [==============================] - 0s 40us/sample - loss: 2.9122 Epoch 165/200 200/200 [==============================] - 0s 40us/sample - loss: 2.8913 Epoch 166/200 200/200 [==============================] - 0s 40us/sample - loss: 2.8840 Epoch 167/200 200/200 [==============================] - 0s 40us/sample - loss: 2.8792 Epoch 168/200 200/200 [==============================] - 0s 40us/sample - loss: 2.8523 Epoch 169/200 200/200 [==============================] - 0s 40us/sample - loss: 2.8524 Epoch 170/200 200/200 [==============================] - 0s 40us/sample - loss: 2.8669 Epoch 171/200 200/200 [==============================] - 0s 20us/sample - loss: 2.8282 Epoch 172/200 200/200 [==============================] - 0s 40us/sample - loss: 2.8027 Epoch 173/200 200/200 [==============================] - 0s 40us/sample - loss: 2.7990 Epoch 174/200 200/200 [==============================] - 0s 40us/sample - loss: 2.7742 Epoch 175/200 200/200 [==============================] - 0s 40us/sample - loss: 2.7783 Epoch 176/200 200/200 [==============================] - 0s 40us/sample - loss: 2.7646 Epoch 177/200 200/200 [==============================] - 0s 40us/sample - loss: 2.7342 Epoch 178/200 200/200 [==============================] - 0s 40us/sample - loss: 2.7215 Epoch 179/200 200/200 [==============================] - 0s 40us/sample - loss: 2.7451 Epoch 180/200 200/200 [==============================] - 0s 40us/sample - loss: 2.7061 Epoch 181/200 200/200 [==============================] - 0s 40us/sample - loss: 2.6843 Epoch 182/200 200/200 [==============================] - 0s 40us/sample - loss: 2.6763 Epoch 183/200 200/200 [==============================] - 0s 40us/sample - loss: 2.6611 Epoch 184/200 200/200 [==============================] - 0s 40us/sample - loss: 2.6457 Epoch 185/200 200/200 [==============================] - 0s 60us/sample - loss: 2.6237 Epoch 186/200 200/200 [==============================] - 0s 40us/sample - loss: 2.6346 Epoch 187/200 200/200 [==============================] - 0s 40us/sample - loss: 2.6131 Epoch 188/200 200/200 [==============================] - 0s 40us/sample - loss: 2.5974 Epoch 189/200
200/200 [==============================] - 0s 20us/sample - loss: 2.5923 Epoch 190/200 200/200 [==============================] - 0s 20us/sample - loss: 2.5751 Epoch 191/200 200/200 [==============================] - 0s 20us/sample - loss: 2.5681 Epoch 192/200 200/200 [==============================] - 0s 40us/sample - loss: 2.5648 Epoch 193/200 200/200 [==============================] - 0s 40us/sample - loss: 2.5290 Epoch 194/200 200/200 [==============================] - 0s 40us/sample - loss: 2.5353 Epoch 195/200 200/200 [==============================] - 0s 40us/sample - loss: 2.5050 Epoch 196/200 200/200 [==============================] - 0s 40us/sample - loss: 2.4963 Epoch 197/200 200/200 [==============================] - 0s 40us/sample - loss: 2.4881 Epoch 198/200 200/200 [==============================] - 0s 40us/sample - loss: 2.4690 Epoch 199/200 200/200 [==============================] - 0s 40us/sample - loss: 2.4662 Epoch 200/200 200/200 [==============================] - 0s 54us/sample - loss: 2.4516
4、用模型进行预测
model.predict(data.iloc[:10,1:-1])
输出:
array([[22.099964], [13.971273], [10.534756], [18.888977], [12.738388], [ 6.276293], [10.054529], [11.692871], [ 1.894486], [10.830784]], dtype=float32)
查看原数据集中对应的销量
data.iloc[:10,-1]
输出:
0 22.1 1 10.4 2 9.3 3 18.5 4 12.9 5 7.2 6 11.8 7 13.2 8 4.8 9 10.6 Name: sales, dtype: float64
对比不难发现,经过200次训练,已经可以得到不错的预测结果。