# 安装包
if (!requireNamespace("data.table", quietly = TRUE)) {
install.packages("data.table")
}
if (!requireNamespace("jsonlite", quietly = TRUE)) {
install.packages("jsonlite")
}
if (!requireNamespace("NeuralNetTools", quietly = TRUE)) {
install.packages("NeuralNetTools")
}
if (!requireNamespace("nnet", quietly = TRUE)) {
install.packages("nnet")
}
# 加载包
library(data.table)
library(jsonlite)
library(NeuralNetTools)
library(nnet)神经网络
注记
Hiplot 网站
本页面为 Hiplot Neural Network 插件的源码版本教程,您也可以使用 Hiplot 网站实现无代码绘图,更多信息请查看以下链接:
环境配置
系统: Cross-platform (Linux/MacOS/Windows)
编程语言: R
依赖包:
data.table;jsonlite;NeuralNetTools;nnet
sessioninfo::session_info("attached")─ Session info ───────────────────────────────────────────────────────────────
setting value
version R version 4.5.3 (2026-03-11)
os Ubuntu 24.04.4 LTS
system x86_64, linux-gnu
ui X11
language (EN)
collate C.UTF-8
ctype C.UTF-8
tz UTC
date 2026-04-21
pandoc 3.1.3 @ /usr/bin/ (via rmarkdown)
quarto 1.9.37 @ /usr/local/bin/quarto
─ Packages ───────────────────────────────────────────────────────────────────
package * version date (UTC) lib source
data.table * 1.18.2.1 2026-01-27 [1] RSPM
jsonlite * 2.0.0 2025-03-27 [1] RSPM
NeuralNetTools * 1.5.3 2022-01-06 [1] RSPM
nnet * 7.3-20 2025-01-01 [3] CRAN (R 4.5.3)
[1] /home/runner/work/_temp/Library
[2] /opt/R/4.5.3/lib/R/site-library
[3] /opt/R/4.5.3/lib/R/library
* ── Packages attached to the search path.
──────────────────────────────────────────────────────────────────────────────
数据准备
# 加载数据
data <- data.table::fread(jsonlite::read_json("https://hiplot.cn/ui/basic/neural-network/data.json")$exampleData$textarea[[1]])
data <- as.data.frame(data)
# 查看数据
head(data) Y1 Y2 X1 X2 X3
1 0.7646258 0.5494452 -0.89691455 -1.8923489 0.6408445
2 0.2383994 0.4605024 0.18484918 1.2928042 -1.6013778
3 0.3800247 0.2527468 1.58784533 -0.6182543 -0.7778154
4 0.3545279 0.6319730 -1.13037567 1.0409383 -1.6473925
5 0.3667356 0.4684437 -0.08025176 1.1758795 0.1542662
6 0.5509560 0.4439474 0.13242028 -1.5018321 -1.1756313
可视化
# 神经网络
mod <- nnet(Y1 ~ X1 + X2 + X3, data = neuraldat, size = 10,
maxint = 100, decay = 0)# weights: 51
initial value 57.109907
iter 10 value 0.381450
iter 20 value 0.077735
iter 30 value 0.052872
iter 40 value 0.038199
iter 50 value 0.027784
iter 60 value 0.017599
iter 70 value 0.013435
iter 80 value 0.010025
iter 90 value 0.006170
iter 100 value 0.004559
final value 0.004559
stopped after 100 iterations
# plot
par(mar = numeric(4))
plotnet(mod)
