前言
现送上用多层感知器预测销量程序,权当是复习一点一点敲的,注释的很详细,可供参考
代码
# 多层感知器销量的预测
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)
退出登录?