代码仅供参考,数据来源就不提供了
import numpy as np
import pandas as pd
from sklearn import preprocessing
import keras
from keras import layers
import warnings
warnings.filterwarnings('ignore')
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
df = pd.read_csv("Airlines.csv")
# 数据处理
df.drop(df.columns[[0]], axis=1, inplace=True)
df.drop_duplicates(keep='first',inplace=True)
df = df[df['Length'] != 0]
# 划分特征值和目标值
targets = np.array(df['Delay'])
features = df.drop('Delay',axis=1)
# 对特征值进行one-hot编码,将字符串类型转变成数值类型
features = pd.get_dummies(features)
features = np.array(features)
# 标准化处理
input_features = preprocessing.StandardScaler().fit_transform(features)
# 构建网络模型
# 构建层次
model = keras.Sequential()
# 隐含层1设置16层,权重初始化方法设置为随机高斯分布,加入正则化惩罚项
model.add(layers.Dense(16,kernel_initializer='random_normal',kernel_regularizer=keras.regularizers.l2(0.01)))
# 隐含层2设置32层
model.add(layers.Dense(32,kernel_initializer='random_normal',kernel_regularizer=keras.regularizers.l2(0.01)))
# 输出层设置为1,即输出一个预测结果
model.add(layers.Dense(1,kernel_initializer='random_normal',kernel_regularizer=keras.regularizers.l2(0.01)))
# 优化器和损失函数
model.compile(optimizer=keras.optimizers.SGD(0.001),loss='mean_squared_error')
# 网络训练
model.fit(input_features,targets,validation_split=0.25,epochs=100,batch_size=128)
# 预测模型结果
predict = model.predict(input_features)
print(predict)