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 个折的平均值和标准差。
以上内容是否对您有帮助:

免费 AI IDE


更多建议: