我正在尝试用Keras了解R的神经网络。我使用不同的来源类似https://tensorflow.rstudio.com/keras/articles/tutorial_basic_regression.html估算模型。不知道为什么我收到了NA结果。有人可以解释我做错了吗?
下面链接下方的数据可用 https://www.kaggle.com/c/boston-housing/data
谢谢。
library(keras)
install_keras()
library(dplyr)
library(caTools)
boston_housing <- read.csv(file = "C:/Users/Piotrek/Desktop/HousingData.csv")
boston_housing <- as.matrix(boston_housing)
dimnames(boston_housing) <- NULL
summary(boston_housing)
set.seed(123)
split = sample.split(boston_housing$LSTAT, SplitRatio = 0.75)
training_set = subset(boston_housing, split == TRUE)
test_set = subset(boston_housing, split == FALSE)
training_set_output <- as.matrix(training_set[,c(14)])
test_set_output <- training_set[,c(14)]
training_set <- scale(training_set[,1:13])
test_set <- test_set[,1:13]
model <- keras_model_sequential() %>%
layer_dense(units = 64, activation = "relu",
input_shape = dim(training_set)[2]) %>% #input_shape liczba inpur variables
layer_dense(units = 64, activation = "relu") %>%
layer_dense(units = 1)
model %>% compile(
loss = "mse",
optimizer = optimizer_rmsprop(),
metrics = list("mean_absolute_error")
)
model %>% summary()
print_dot_callback <- callback_lambda(
on_epoch_end = function(epoch, logs) {
if (epoch %% 80 == 0) cat("\n")
cat(".")
}
)
history <- model %>% fit(training_set,
training_set_output,
epochs = 100,
validation_split = 0.2,
callbacks = list(print_dot_callback))
library(ggplot2)
plot(history, metrics = "mean_absolute_error", smooth = FALSE) +
coord_cartesian(ylim = c(0, 5))