多层感知器
计算输入特征得加权和,然后使用一个函数激活(或传递函数)计算输出。
单个神经元
多个神经元
单层神经元缺陷
多层感知器
多层感知器
激活函数
relu:曲线如下图,假如过来的函数是x当x小于0的时候直接屏蔽,大于0的时候就原样输出
sigmoid激活:假如输出的x值就会带入下面公式进行计算
tanh激活:-1到1之间
leak relu激活
# -*- coding: utf-8 -*-
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv("Advertising.csv")
print(data.head())
plt.scatter(data.TV,data.sales)
plt.show()
# -*- coding: utf-8 -*-
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv("Advertising.csv")
print(data.head())
plt.scatter(data.radio,data.sales)
plt.show()
# -*- coding: utf-8 -*-
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv("Advertising.csv")
print(data.head())
# plt.scatter(data.radio,data.sales)
# plt.show()
# 建立模型 当知道tv,广播,报纸投放广告后预测销量
x = data.iloc[:,1:-1] # x取值除去第一列和最后一列的值取出所有投放广告的值
y = data.iloc[:,-1] # y取值最后一列销量的值
model = tf.keras.Sequential([tf.keras.layers.Dense(10,input_shape=(3,),activation="relu"),
tf.keras.layers.Dense(1)])# 建立顺序模型【输入层:一个多层感知器(隐含层10层Dense(10),形状input_shape=(3,)3维,激活函数activation="relu"),输出层:因为输出是一个值所以维度1】
print(model.summary())
# -*- coding: utf-8 -*-
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 修改警告级别,不显示警告
import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv("Advertising.csv")
# print(data.head())
# plt.scatter(data.radio,data.sales)
# plt.show()
# 建立模型 当知道tv,广播,报纸投放广告后预测销量
x = data.iloc[:,1:-1] # x取值除去第一列和最后一列的值取出所有投放广告的值
y = data.iloc[:,-1] # y取值最后一列销量的值
model = tf.keras.Sequential([tf.keras.layers.Dense(10,input_shape=(3,),activation="relu"),
tf.keras.layers.Dense(1)])# 建立顺序模型【输入层:一个多层感知器(隐含层10层Dense(10),形状input_shape=(3,)3维,激活函数activation="relu"),输出层:因为输出是一个值所以维度1】
print(model.summary())
# 优化器
model.compile(optimizer="adam",loss="mse")
# 训练模型
model.fit(x,y,epochs=100)
# 使用该模型在现有数据上预测前10个的销量
test = data.iloc[:10,1:-1]
print(model.predict(test))
# 实际值
test = data.iloc[:10,-1]
print(test)
梯度下降
预测值
实际值