2.5多层感知器(神经网络)的代码实现
需要文件的链接:https://pan.baidu.com/s/1qw30xhWnezLfDZln2_CbBg
提取码:guzz
点击查看代码
import pandas as pd
data = pd.read_csv("./dataset/Advertising.csv") #将上面下载下来的文件放在代码目录下的dataset目录
print(data.head())
图2-12
这次的数据如图2-12所示,分别表示再TV,radio,newspaper上投入广告的费用以及最后产生的销量sales
直接上可运行代码
点击查看代码
import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv("./dataset/Advertising.csv")
# print(data.head())
x = data.iloc[:,1:-1] #所有的行以及除了第一列和最后一列
y = data.iloc[:,-1] #所有的行以及最后一列
model = tf.keras.Sequential(
#添加激活函数,增加非线性拟合效果
[tf.keras.layers.Dense(10,input_shape=(3,),activation='relu'), #第一层是10个神经元,也就是第一层的输出是10个,输入是(3,),因为每组数据都是由三个输入数据构成
tf.keras.layers.Dense(1)] #第二层,一个神经元,输出为1个,也即是最后的销量结果
)
print(model.summary())
model.compile(optimizer='adam',loss='mse')
model.fit(x,y,epochs=100)
#预测前10个训练集中的数据
print(model.predict(data.iloc[:10,1:-1]))
print(data.iloc[:10,-1]) #输出真实结果
图2-13
上面代码产生的模型结构如图2-13所示,第一层中间是10个神经元,参数是40,40=10*(3+1) 其中3表示是对输入的三个量的权重,1是每个神经元的bias偏置。