根据文件中‘商品GPS纬度’‘商品GPS经度’‘任务标价’如何通过三者之间关系根据‘商品GPS纬度’‘商品GPS经度’预测‘任务标价’。通过神经网络预测‘任务标价’训练集在DpythonProject3商品信息附件一:已结束项目任务数据 - 副本xlsx测试集在DpythonProject3商品信息任务xlsx并将预测的任务标价输出到测试集所在文件写出完整代码。将模拟过程可视化
以下是根据给定的文件路径,使用神经网络预测任务标价的完整代码:
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import matplotlib.pyplot as plt
# 读取训练集数据
train_data = pd.read_excel("D:\pythonProject3\商品信息\附件一:已结束项目任务数据 - 副本.xlsx")
# 提取特征和目标变量
X = train_data[['商品GPS纬度', '商品GPS经度']].values
y = train_data['任务标价'].values
# 数据归一化
scaler = MinMaxScaler()
X = scaler.fit_transform(X)
# 划分训练集和验证集
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)
# 构建神经网络模型
model = Sequential()
model.add(Dense(32, activation='relu', input_shape=(2,)))
model.add(Dense(32, activation='relu'))
model.add(Dense(1))
# 编译模型
model.compile(optimizer='adam', loss='mse')
# 训练模型
history = model.fit(X_train, y_train, validation_data=(X_val, y_val), epochs=100, batch_size=32)
# 可视化训练过程
plt.plot(history.history['loss'], label='train_loss')
plt.plot(history.history['val_loss'], label='val_loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
plt.show()
# 读取测试集数据
test_data = pd.read_excel("D:\pythonProject3\商品信息\任务.xlsx")
# 提取特征并进行归一化
X_test = test_data[['商品GPS纬度', '商品GPS经度']].values
X_test = scaler.transform(X_test)
# 预测任务标价
y_pred = model.predict(X_test)
# 将预测结果输出到测试集所在文件
test_data['预测任务标价'] = y_pred
test_data.to_excel("D:\pythonProject3\商品信息\任务.xlsx", index=False)
上述代码首先读取训练集数据,并提取特征(商品GPS纬度和商品GPS经度)和目标变量(任务标价)。然后使用MinMaxScaler对特征进行归一化处理。接着,将数据划分为训练集和验证集,并构建一个包含两个隐藏层的神经网络模型。模型使用均方误差(MSE)作为损失函数,并使用Adam优化器进行训练。训练过程中记录了训练集和验证集的损失,并进行可视化展示。
接下来,代码读取测试集数据,并对特征进行归一化处理。然后使用训练好的模型对测试集的任务标价进行预测,并将预测结果添加到测试集中。最后,将带有预测结果的测试集保存到原文件中。
注意:在运行代码之前,请确保安装了必要的库(pandas、numpy、scikit-learn、tensorflow、matplotlib)。
原文地址: https://www.cveoy.top/t/topic/ixZn 著作权归作者所有。请勿转载和采集!