tensorflow2实现多层感知机

用到的数据集是 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次训练,已经可以得到不错的预测结果。

发布了23 篇原创文章 · 获赞 1 · 访问量 3349

猜你喜欢

转载自blog.csdn.net/ABCDABCD321123/article/details/104731108