AI人工智能 使用 ANN 构建线性回归器

2026-02-27 15:43 更新

在本节中,您将学习如何使用人工神经网络构建线性回归器。您可以使用KerasRegressor来实现这一点。在这个例子中,我们使用波士顿房价数据集,其中包含波士顿房产的 13 个数值属性。Python 代码如下所示:

导入所有所需的包,如下所示:

import numpy
import pandas
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasRegressor
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold

现在,加载保存在本地目录中的数据集。

dataframe = pandas.read_csv("/Users/admin/data.csv", delim_whitespace = True, header = None)
dataset = dataframe.values

现在,将数据分为输入和输出变量,即 X 和 Y:

X = dataset[:,0:13]
Y = dataset[:,13]

由于我们使用基线神经网络,定义模型:

def baseline_model():

现在,创建模型如下:

model_regressor = Sequential()
model_regressor.add(Dense(13, input_dim = 13, kernel_initializer = 'normal', activation = 'relu'))
model_regressor.add(Dense(1, kernel_initializer = 'normal'))

接下来,编译模型:

model_regressor.compile(loss='mean_squared_error', optimizer='adam')
return model_regressor

现在,为了重现结果,设置随机种子如下:

seed = 7
numpy.random.seed(seed)

在 scikit-learn 中用作回归估计器的 Keras 包装器对象称为KerasRegressor。在本节中,我们将使用标准化数据集评估这个模型。

estimator = KerasRegressor(build_fn = baseline_model, nb_epoch = 100, batch_size = 5, verbose = 0)
kfold = KFold(n_splits = 10, random_state = seed)
baseline_result = cross_val_score(estimator, X, Y, cv = kfold)
print("Baseline: %.2f (%.2f) MSE" % (baseline_result.mean(), baseline_result.std()))

上面代码的输出将是模型在未见过的数据上的性能估计。它将是均方误差,包括交叉验证评估的所有 10 个折的平均值和标准差。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号