最简单深度学习Python实现(回归问题)

回归问题它预测的是一个连续值而不是离散的标签。
本次要预测的是波士顿郊区房屋价格的中位数。
首先,我们通过keras加载数据集

from keras.datasets import boston_housing
(train_data,train_targets),(test_data,test_targets) = boston_housing.load_data()

我们有404个训练样本和102个测试样本。每个样本都有13个特征值。

print(train_data.shape,'\n',test_data.shape)

在这里插入图片描述
目标是房屋价格的中位数

print(train_targets)

在这里插入图片描述

一 准备数据

将取值范围差异很大的数据输入到神经网络中,会使学习变得困难。所以我们要对每个特征做标准化:减去特征平均值,再除以标准差。
这样的到的特征平均值为0,标准差为1

#数据标准化
mean =train_data.mean(axis=0)
train_data -= mean
std = train_data.std(axis=0)
train_data /= std
#我们不能使用测试数据的任何计算结果。所以用训练集的标准差和均值来计算
test_data -= mean
test_data /= std

二 构建网络

网络的最后一层只有一个单元,没有激活。因为激活函数会限制输出范围。

from keras import models
from keras import layers
def build_model():
    model = models.Sequential()
    model.add(layers.Dense(64,activation='relu',
                           input_shape=(test_data.shape[1],)))
    model.add(layers.Dense(64,activation='relu'))
    model.add(layers.Dense(1))
    model.compile(optimizer='rmsprop',loss='mse',metrics=['mae'])
    #平均绝对误差(mae)是预测值与目标值之差的绝对值
    return model

因为这个数据集数据点很少,验证集也会很小,所以验证结果很不稳定。
这里我们采用K折交叉验证:将数据划分为k个分区,实例化k个相同的模型,将每个模型在k-1分区上训练,并在剩下的一个分区上进行评估。模型的验证分数等于k个验证分数的平均值。

#k折验证
import numpy as np
k = 4#将数据分为四份
num_val_samples = len(train_data) // k
num_epochs = 100
all_scores = []

for i 
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在实践中,逻辑回归通常用于解决二分类问题,而深度学习模型可以用于解决更复杂的问题,例如图像分类和自然语言处理等。在一些情况下,可以将逻辑回归作为深度学习模型的一部分,例如使用神经网络中的逻辑回归层来实现二分类任务。 以下是一个使用Keras库实现逻辑回归层的示例代码: ```python from keras.models import Sequential from keras.layers import Dense # 准备数据 X_train = ... y_train = ... X_test = ... y_test = ... # 创建模型 model = Sequential() model.add(Dense(1, input_dim=X_train.shape[1], activation='sigmoid')) # 编译模型 model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # 训练模型 model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_test, y_test)) # 预测测试数据 y_pred = model.predict_classes(X_test) # 输出预测结果 print(y_pred) ``` 在这个示例中,我们使用Keras库中的Sequential模型和Dense层来创建一个逻辑回归模型。我们首先准备数据,然后创建模型,并使用binary_crossentropy损失函数和adam优化器来编译模型。接下来,我们使用训练集对模型进行训练,并使用测试集进行验证。最后,我们使用predict_classes方法对测试集进行预测,并输出预测结果。 请注意,这只是一个简单的示例,实际的数据集可能更大和更复杂,需要进行更多的预处理和特征工程。此外,还需要进行模型选择和参数调整等步骤来获得更好的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值