目录
随着深度学习的广泛应用,TensorFlow 已成为最流行的开源机器学习框架之一。作为一个新手,学习如何在 TensorFlow 中实现基础的回归与分类任务是迈向深度学习的第一步。在本文中,我们将深入介绍如何使用 TensorFlow 和
tf.keras
实现回归和分类任务,通过清晰的代码示例、详细的解释以及对比,帮助你理解回归与分类的不同特点,并掌握其在实际项目中的应用。
一、回归任务实现
1.1 回归问题简介
回归任务是预测一个连续的数值。例如,我们可以预测房价、股票价格、气温等。回归问题的目标是最小化预测值与真实值之间的差异,通常使用均方误差(MSE)作为损失函数。
1.2 创建回归数据集
为了演示回归任务,我们使用一个简单的人工数据集。我们将生成一组包含单一特征(X)的数据,并通过某个线性方程生成目标值(Y)。
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
np.random.seed(42)
X = np.random.rand(100, 1) # 生成 100 个随机数
Y = 2 * X + 1 + 0.1 * np.random.randn(100, 1) # Y = 2 * X + 1 + 噪声
# 可视化数据
plt.scatter(X, Y, color='blue')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Generated Data for Regression')
plt.show()
1.3 构建回归模型
回归模型通常由一个输入层和一个输出层组成。在我们的例子中,输入层只有一个神经元,输出层也只有一个神经元。
# 创建回归模型
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,), activation=None) # 单个神经元,没有激活函数
])
# 编译模型
model.compile(optimizer='adam', loss='mse') # 使用 Adam 优化器和均方误差损失函数
# 查看模型结构
model.summary()
输出的模型结构:
层类型 | 输出形状 | 参数数量 |
---|---|---|
Dense | (None, 1) | 2 |
1.4 训练回归模型
训练模型时,我们使用之前生成的 X
和 Y
数据集,进行回归任务的训练。
# 训练模型
model.fit(X, Y, epochs=100, verbose=0)
# 可视化拟合效果
plt.scatter(X, Y, color='blue', label='真实数据')
plt.plot(X, model.predict(X), color='red', label='预测结果')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Regression Model Fitting')
plt.legend()
plt.show()