大数跨境
0
0

R语言 | 神经网络

R语言 | 神经网络 谁说菜鸟不会数据分析
2024-07-03
0
导读:干货+1

小伙伴们好!在R语言中,构建神经网络模型可以通过多种R包来实现,但最常用的包之一是neuralnet。

关注+星标!不错过干货文章

此外,nnet和keras(TensorFlow的R接口)也是构建神经网络时常用的选择。今天我将分别介绍如何使用neuralnet和keras包来构建简单的神经网络模型。

neuralnet包构建神经网络

你需要安装并加载neuralnet包。如果还没有安装,可以通过install.packages("neuralnet")一行安装上。

我们还是用iris鸢尾花数据集作为示例。需要特别注意的是,neuralnet需要数值型输出,所以iris$Species需要转换成数值。

# 加载neuralnet包  library(neuralnet)    # 使用iris数据集作为示例  data(iris)  # 注意!将Species转换为数值型,因为neuralnet需要数值型输出  iris$Species <- as.numeric(iris$Species) - 1    # 构建模型,这里使用Petal.Length, Petal.Width作为输入,Species作为输出  nn <- neuralnet(Species ~ Petal.Length + Petal.Width, data = iris, hidden = c(5), linear.output = FALSE)    # 查看模型结果  print(nn)  

使用keras包构建神经网络

我使用了一个包含两个全连接层的神经网络(第一层有10个神经元,第二层有3个神经元,对应三个类别的输出),并使用了ReLU激活函数和softmax输出层来进行多分类。模型使用adam优化器和交叉熵损失函数进行编译和训练。

# 安装keras和tensorflow(如果尚未安装)  install.packages("keras")  keras::install_keras()    # 加载keras库  library(keras)    # 假设数据已经准备好,这里我们还是使用iris数据集  data(iris)  iris$Species <- as.integer(iris$Species) - 1  # 转换为0开始的索引    # 划分数据集  set.seed(123)  indices <- sample(1:nrow(iris), size = 0.7 * nrow(iris))  train_data <- iris[indices, -5]  train_labels <- to_categorical(iris$Species[indices], num_classes = 3)  test_data <- iris[-indices, -5]  test_labels <- to_categorical(iris$Species[-indices], num_classes = 3)    # 构建模型  model <- keras_model_sequential() %>%    layer_dense(units = 10, activation = 'relu', input_shape = c(2)) %>%    layer_dense(units = 3, activation = 'softmax')    # 编译模型  model %>% compile(    loss = 'categorical_crossentropy',    optimizer = 'adam',    metrics = c('accuracy')  )    # 训练模型  model %>% fit(    train_data,    train_labels,    epochs = 100,    batch_size = 10,    validation_split = 0.2  )    # 评估模型  loss_and_metrics <- model %>% evaluate(test_data, test_labels)  print(loss_and_metrics)

两种在R语言中构建神经网络模型的常用方法。小伙伴们可以根据自己的需求和数据集的特点,来选择适合的R包和模型结构。

想了解更加详细的代码及其他机器学习模型,别忘了关注+星标!欢迎分享给更多的同学,我们一起加油ヾ(◍°∇°◍)ノ゙

推荐阅读
Python | sklearn库聚类分析手把手教会!还有详细代码!
Python | sklearn库回归分析详解!内含代码
Python | sklearn库太强大了!
数据分析交流群请添加小助理VX:dataup1024

【声明】内容源于网络
0
0
谁说菜鸟不会数据分析
以大数据分析为驱动,spss/R/python/数据分析交流技术分享,实用教程干货,敬请期待,B站UP主:谁说菜鸟不会数据分析 有更多在线实操视频。
内容 498
粉丝 0
谁说菜鸟不会数据分析 以大数据分析为驱动,spss/R/python/数据分析交流技术分享,实用教程干货,敬请期待,B站UP主:谁说菜鸟不会数据分析 有更多在线实操视频。
总阅读2
粉丝0
内容498