使用 Python 中的 Tensorflow 预测燃油效率

pythonserver side programmingprogrammingtensorflow

预测燃油效率对于优化车辆性能和减少碳排放至关重要,可以使用 Python 库 Tensorflow 轻松预测。在本文中,我们将探讨如何利用流行的机器学习库 Tensorflow 的强大功能使用 Python 预测燃油效率。通过基于 Auto MPG 数据集构建预测模型,我们可以准确估算车辆的燃油效率。让我们深入了解使用 Python 中的 Tensorflow 进行准确燃油效率预测的过程。

Auto MPG 数据集

要准确预测燃油效率,我们需要一个可靠的数据集。来自 UCI 机器学习存储库的 Auto MPG 数据集为我们的模型提供了必要的信息。它包含各种属性,例如气缸数、排量、重量、马力、加速度、原产地和车型年份。这些属性充当特征,而燃油效率(以英里/加仑或 MPG 为单位)充当标签。通过分析此数据集,我们可以训练模型识别模式并根据相似的车辆特征进行预测。

准备数据集

在构建预测模型之前,我们需要准备数据集。这涉及处理缺失值和规范化特征。缺失值会破坏训练过程,因此我们会将其从数据集中消除。规范化特征(例如马力和重量)可确保每个特征都处于相似的范围内。此步骤至关重要,因为具有较大数值范围的特征可能会主导模型的学习过程。对数据集进行规范化可确保在训练期间公平处理所有特征。

如何使用 TensorFlow 预测燃油效率?

以下是我们使用 Tensorflow 预测燃油效率将遵循的步骤 -

  • 导入必要的库 - 我们导入 tensorflow、Keras、layers 和 pandas。

  • 加载 Auto MPG 数据集。我们还指定列名称并处理任何缺失值。

  • 将数据集分为特征和标签 - 我们将数据集分为两部分 - 特征(输入变量)和标签(输出变量)。

  • 规范化特征 - 我们使用最小-最大缩放对特征进行规范化。

  • 将数据集拆分为训练集和测试集。

  • 定义模型架构 - 我们定义一个具有三个密集层的简单顺序模型,其中每层有 64 个神经元并使用 ReLU 激活函数。

  • 编译模型 - 我们使用均方误差 (MSE) 损失函数和 RMSprop 优化器编译模型。

  • 训练模型 - 在训练集上进行 1000 个时期的模型训练,并指定 0.2 的验证分割。

  • 评估模型 - 在测试集上进行模型评估并计算平均 MSE 以及燃油效率和绝对误差 (MAE)。

  • 计算新车的燃油效率 - 我们使用 pandas DataFrame 创建新车的功能。我们使用与原始数据集相同的缩放因子对新车的功能进行规范化。

  • 使用训练好的模型预测新车的燃油效率。

  • 打印预测的燃油效率 - 我们将新车的预测燃油效率打印到控制台

  • 打印测试指标 - 我们将测试 MAE 和 MSE 打印到控制台。

下面的程序使用 Tensorflow 构建一个神经网络模型,用于从 Auto MPG 数据集预测燃油效率。

示例

# 导入必要的库
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layer
import pandas as pd

# 加载 Auto MPG 数据集
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data"
column_names = ['MPG','Cylinders','Displacement','Horsepower','Weight',
   'Acceleration', 'Model Year', 'Origin']
raw_dataset = pd.read_csv(url, names=column_names,
   na_values='?', comment='\t', sep=' ', skipinitialspace=True)

# 删除缺失值
dataset = raw_dataset.dropna()

# 将数据集分为特征和标签
cfeatures = dataset.drop('MPG', axis=1)
labels = dataset['MPG']

# 使用最小-最大缩放对特征进行规范化
normalized_features = (cfeatures - cfeatures.min()) / (cfeatures.max() - cfeatures.min())

# 将数据集分为训练集和测试集
train_features = normalized_features[:300]
test_features = normalized_features[300:]
train_labels = labels[:300]
test_labels = labels[300:]

# 定义模型架构,为此我们将使用 keras 的顺序 API
model1 = keras.Sequential([
    layer.Dense(64,activation='relu',input_shape=[len(train_features.keys())]),
    layers.Dense(64,activation='relu'),
    layers.Dense(1)
])
#如果您想要模型架构的摘要,可以使用代码:model1.summary()

# 模型编译
optimizer = tf.keras.optimizers.RMSprop(0.001)
model1.compile(loss='mse',optimizer=optimizer,metrics=['mae','mse'])

# 训练模型
Mhistory = model1.fit(
    train_features,train_labels,
    epochs=1000,validation_split = 0.2,verbose=0)

# 在测试集
test_loss, test_mae, test_mse = model1.evaluate(test_features, test_labels)
# 训练模型
model1.fit(train_features, train_labels, epochs=1000, verbose=0)

# 计算新车的燃油效率
new_car_features = pd.DataFrame([[4, 121, 110, 2800, 15.4, 81, 3]], columns=column_names[1:])

normalized_new_car_features = (new_car_features - cfeatures.min()) / (cfeatures.max() - cfeatures.min())
fuel_efficiencyc = model1.predict(normalized_new_car_features)

# 打印测试指标
print("Test MAE:", test_mae)
print("Test MSE:", test_mse)
print("Predicted Fuel Efficiency:", fuel_efficiencyc[0][0])

输出

C:\Users\Tutorialspoint>python image.py
3/3 [==============================] - 0s 2ms/step - loss: 18.8091 - mae: 3.3231 - mse: 18.8091
1/1 [==============================] - 0s 90ms/step
Test MAE: 3.3230929374694824
Test MSE: 18.80905532836914
Predicted Fuel Efficiency: 24.55885

结论

总之,使用 Python 中的 Tensorflow 预测燃油效率是一种强大的工具,可以帮助制造商和消费者做出明智的决策。我们可以通过分析各种车辆特征并训练神经网络模型来准确预测燃油效率。

这些信息可以促进更省油的车辆的开发,减少对环境的影响并为消费者节省成本。Tensorflow 的多功能性和易用性使其成为汽车行业追求提高燃油效率的宝贵资产。


相关文章