前言

现送上用多层感知器预测销量程序,权当是复习一点一点敲的,注释的很详细,可供参考

代码

# 多层感知器销量的预测
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
import sys
import tensorflow as tf
os.system('cls')
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
data = pd.read_csv('Advertising.csv')  # pandas读取CSV中的数据
data.head()  # 指定hand,其实无所谓
plt.scatter(data.newspaper,data.sales)  # 这个其实是用来用plt绘图,指定pandas对象
# plt.show()  # 展示对象

# 特定取出某行某列进行充当x轴和y轴,其中iloc函数是pandas中指定行列的函数,第一个参数是行,第二个是列
x = data.iloc[:,1:-1]
y = data.iloc[:,-1]
'''开始训练模型,其中这次用了两个Dence层,所以Sequential函数里面两个shape'''
model = tf.keras.models.Sequential([tf.keras.layers.Dense(10,input_shape = (3,),activation="relu"),tf.keras.layers.Dense(1)])
# print(model.summary())  # 这个是在训练模型之后打印模型的基本信息
model.compile(optimizer = 'adam',loss = 'mse')  # 配置优化器和损失函数,adam是最常用的优化器,mse是均方差,充当损失函数
# model.fit(x,y,epochs = 3000)  # 开始跑模型,epochs是重复次数,次数越大,loss越低
test = data.iloc[:10,1:-1]  # 取一部分csv数据作为测试数据集
data_array = model.predict(test)  # 用model进行预测,返回的是预测值数组
print('预测值:\n',data_array)  # 打印预测值
print(('真实值:',data.iloc[:10,-1]))  # 打印真实值,就是csv文件的0-9行的最后一列(y值)
sys.exit(0)