如何用r语言做一个简单的深度学习例子
时间: 2024-09-25 12:14:30 浏览: 22
在R语言中,我们可以使用`keras`包来构建和训练深度学习模型,它是一个基于`tensorflow`或`theano`的高级API。这里我将展示如何使用`keras`快速创建一个简单的神经网络模型来对 iris 数据集进行分类。
首先,你需要安装必要的库,如果还没有安装,可以运行:
```R
install.packages("keras")
install.packages("reticulate")
```
然后导入所需的库并加载数据:
```R
library(keras)
data(iris) # 加载内置的鸢尾花数据集
```
接着,我们需要预处理数据:
```R
# 分割数据集
x_train <- iris[, -5] / 255 # 归一化特征
y_train <- as.numeric(iris$Species) - 1 # 将标签转换为整数,并减1便于处理
x_test <- y_train[50:150]
# 准备输入和输出
input_shape <- c(4, 1) # 因为 iris 数据有4个特征,1个样本维度
x_train <- array_reshape(x_train, c(nrow(x_train), input_shape))
x_test <- array_reshape(x_test, c(nrow(x_test), input_shape))
```
现在我们构建模型,选择一个简单的全连接层网络:
```R
model <- keras_model_sequential() %>%
layer_dense(units = 16, activation = 'relu', input_shape = input_shape) %>%
layer.Dense(units = 3, activation = 'softmax') # 三个输出节点对应三种类别
# 编译模型
model %>% compile(
loss = 'sparse_categorical_crossentropy', # 对于多类分类任务
optimizer = 'adam',
metrics = 'accuracy'
)
```
最后,训练模型并评估性能:
```R
history <- model %>% fit(
x_train, y_train,
epochs = 10, # 可以调整训练轮数
batch_size = 10,
validation_data = list(x_test, y_test)
)
# 评估模型
loss_and_metrics <- model %>% evaluate(x_test, y_test)
cat(paste("Test accuracy:", round(loss_and_metrics[['accuracy']], 2)))
```