我正在尝试理解人工智能神经网络,并且是自学。我希望有人能帮助我理解如何解决这个问题
如果这个帖子应该发布在这里,请评论而不是贬低帖子。也感谢您的理解。
我有一个问题,我完全不知道如何解决。我在网上遇到了这个问题,但无法理解如何解决。我已经在下面添加了这个问题。希望您能提供一些帮助。
数据集包含4个观测值,涉及4个输入变量(温度、压力、流量和过程)以及一个输出变量(废品)。第一列“No”只是一个标识符。下表复制了前4个观测值:
No | Temp | Pres | Flow | Process | Rejects |
---|---|---|---|---|---|
1 | 53.39 | 10.52 | 4.82 | 0 | 1.88 |
2 | 46.23 | 15.13 | 5.31 | 0 | 2.13 |
3 | 42.85 | 18.79 | 3.59 | 0 | 2.66 |
4 | 53.09 | 18.33 | 3.67 | 0 | 2.03 |
使用随机选择的大约80%的观测值训练一个反向传播神经网络。使用剩余的20%观测值测试训练后的网络。
问题:
- 基于此,如何定义一个具有输出值的固定神经网络并反向传播预期的输出模式?这里,输出只有一个,即“废品”列
- 需要计算的误差值是什么?
- 这里是否需要定义隐藏层?我们如何定义隐藏层?
- 可以使用什么类型的“工具”来为上述输入创建报告并获得预期输出?您能帮助相关内容吗?我也对一件事感到不确定
- 如果没有工具,您能提供任何程序来理解这个吗?当然更喜欢工具。
- 创建一个图表,绘制训练和测试数据集的输出“废品”的实际值和预测值。
- 这是否意味着创建一个类似于我们为支持向量机创建的图表的图表?是否可以在我们用于上述问题的工具中创建?
- 如何解决 -> 训练和测试数据集的平方误差和。
我非常感谢您的帮助。
回答:
首先,数据集非常小。然而,这是您处理这种数据集的方式,假设有更多的数据。
import pandas as pdimport tensorflow as tffrom tensorflow.keras import Sequentialfrom tensorflow.keras.layers import Dropout, Dense, Flattendata = { 'No.': [1, 2, 3, 4], 'Temp': [53.39, 46.23, 42.85, 53.09], 'Pres': [10.52, 15.13, 18.79, 18.33], 'Process': [0, 0, 0, 0], 'Rejects': [1.88, 2.13, 2.66, 2.03]}df = pd.DataFrame(data)df = df.drop(['No.'], axis=1)features = df.drop(['Rejects'], axis=1)labels = df['Rejects']model = Sequential()model.add(Dense(1000, activation='relu', input_shape=(features.shape[1],1)))model.add(Dropout(0.2))model.add(Dense(250, activation='relu'))model.add(Dropout(0.2))model.add(Dense(50, activation='relu'))model.add(Dropout(0.2))model.add(Dense(1, activation='relu'))model.compile(optimizer='adam', loss='mean_squared_error', metrics=['mse','mae','mape'])model.fit(features, labels, epochs=10)model.evaluate(features,labels)
结果不好,但这只是因为数据量的原因。
1/1 [==============================] - 0s 316ms/step - loss: 2.4341 - mse: 2.4341 - mae: 1.4419 - mape: 67.6981