欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

多层感知器(神经网络)与**函数

程序员文章站 2024-03-14 11:41:58
...

这次学习就是有隐藏层的神经网络

用到的函数

pandas.iloc

这次用到了pandas中的iloc函数,他是用来取数据的,具体的就是从samples中取出features
多层感知器(神经网络)与**函数
如果数据如上图所示

x = data.iloc[:, :] #获得所有数据
x = data.iloc[:, 0:-1] # 获得第一列到倒数第二列数据,因为末尾值是取不到的
x = data.iloc[[0,1],[0,1]] #提取第0、1行,第0、1列中的数据
x = data.iloc[:, [0,2]] #获得第一列和第三列的数据
x = data.iloc[[2], :] #获得第二行的数据

可以看到**逗号,**以前的代表的是行,逗号以后的代表的是列

import tensorflow as tf
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('TV_sale.csv')
# print(data.head()) # 显示前五个数据

x = data.iloc[:, 0:-1] # 获得第一列到倒数第二列数据,因为末尾值是取不到的
# print(x)
y = data.iloc[:, [-1]]
# print(y)

model = tf.keras.Sequential([tf.keras.layers.Dense(10, input_shape=(3,), activation='relu'),
                             tf.keras.layers.Dense(1)]
                            )
model.summary()

tf.keras.Sequential()

model = tf.keras.Sequential([tf.keras.layers.Dense(加入的层的神经元数量, input_shape=(输入feature的数量,), activation=选择你的**函数,上面选的是relu),
                             tf.keras.layers.Dense(1)]
                            )

多层感知器(神经网络)与**函数
这是这个神经网络的结果,因为有10个神经元,每个神经元有3个feature加上一个bias所以总共的parameter有40个那一层
对于第二层,上一层的10个神经元加上一个bias所以是11个parameter

model.summary()

这个函数是用来看神经网络是什么样子的

各种**函数

多层感知器(神经网络)与**函数
多层感知器(神经网络)与**函数
多层感知器(神经网络)与**函数
多层感知器(神经网络)与**函数

完整代码

import tensorflow as tf
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('TV_sale.csv')
# print(data.head()) # 显示前五个数据

x = data.iloc[:, 0:-1] # 获得第一列到倒数第二列数据,因为末尾值是取不到的
# print(x)
y = data.iloc[:, [-1]]
# print(y)

model = tf.keras.Sequential([tf.keras.layers.Dense(10, input_shape=(3,), activation='relu'),
                             tf.keras.layers.Dense(1)]
                            )
# model.summary()
model.compile(optimizer='adam',
              loss='mse'
)
model.fit(x, y, epochs=1000)
test = data.iloc[:4, 0:-1]
print(model.predict(test))
print(data.iloc[:4, [-1]])

多层感知器(神经网络)与**函数
哈哈哈结果很不好,因为我只写了8个数据