当前位置:   article > 正文

【Keras】卷积神经网络数据回归预测实战_卷积神经网络回归预测

卷积神经网络回归预测

写这个主要是记录自己实习期间的工作。

参考的是本篇文章【keras】一维卷积神经网络做回归
被分配到完成一个工艺流程中各工艺参数对产品的一个功效的回归预测
这边先给出一部分数据,红框框出来的是我们想预测的一个label。
而其他的都是用于网络输入的特征值。

在这里插入图片描述
首先是数据集的导入,训练集和测试集的划分

df = pd.read_csv(r"Table_5_6_Output_Input_NoNAN.csv")
X = np.hstack((df.values[:, 1:6],df.values[:, 7:])).astype(float) 
# 增加一维轴
Y = df.values[:, 6]
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

接下来是定义网络模型
采用的是8层的一维卷积+最大池化+Dropout层,这样的好处是可以丢弃影响较小的特征,保留有效的特征,防止过拟合。
loss函数采用的是均方差公式

# 定义一个神经网络
model = Sequential()
model.add(Conv1D(16, 3, input_shape=(84, 1), activation='relu'))
model.add(Conv1D(16, 3, activation='relu'))
model.add(MaxPooling1D(3))
model.add(Dropout(rate=0.2))

model.add(Conv1D(64, 3, activation='relu', ))
model.add(Conv1D(64, 3, activation='relu'))
model.add(MaxPooling1D(3))
model.add(Dropout(rate=0.2))

model.add(Conv1D(128, 3, activation='relu'))
model.add(Conv1D(128, 3, activation='relu'))
model.add(MaxPooling1D(3))
model.add(Dropout(rate=0.2))

model.add(Conv1D(64, 3, activation='relu', padding='same'))
model.add(Conv1D(64, 3, activation='relu', padding='same'))
model.add(MaxPooling1D(3, padding="same"))
model.add(Dropout(rate=0.2))

model.add(Flatten())
model.add(Dense(1, activation='linear'))
plot_model(model, to_file='model_linear.png',
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/103859
推荐阅读
相关标签
  

闽ICP备14008679号