ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
~~~ model = models.Sequential() model.add(layers.Dense(64, activation='relu',input_shape=(train_data.shape[1],))) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(1)) ~~~ 网络的**最后一层**只有一个单元,没有激活,是一个**线性层**(网络可以学会预测任意范围内的值)。 这是**标量回归**(标量回归是预测单一连续值的回归)的典型设置。 ~~如果向最后一层添加sigmoid激活函数,网络只能学会预测 0~1 范围内的值~~ ***** ~~~ model.compile(optimizer='rmsprop', loss='mse', metrics=['mae']) ~~~ **均方误差**(MSE,mean squared error):预测值与目标值之差的平方 **平均绝对误差**(MAE,mean absolute error):预测值与目标值之差的绝对值 ***** ## **小结** * 回归问题使用的损失函数与分类问题不同。**回归**常用的**损失函数**是**均方误差**(**MSE**)。 * 同样,回归问题使用的**评估指标**也与分类问题不同。显而易见,精度的概念不适用于回归问题。常见的回归指标是**平均绝对误差**(**MAE**)。 * 如果输入数据的**特征**具有**不同的取值范围**,应该先进行**预处理**,对每个特征**单独进行缩放**。 * 如果可用的数据很少,使用***K*折验证**可以可靠地评估模型。 * 如果可用的**训练数据很少**,最好使用**隐藏层较少**(通常只有一到两个)的小型网络,以**避免严重的过拟合**。