
R语言提供了另外一个能够处理人工神经网络的算法包nnet,该算法提供了传统的前馈反向传播神经网络算法的实现。
操作
安装包与数据分类:
library(nnet)
data("iris")
set.seed(2)
ind = sample(2,nrow(iris),replace = TRUE,prob = c(0.7,0.3))
trainset = iris[ind == 1,]
testset = iris[ind == 2,]
使用nnet包训练神经网络:
iris.nn = nnet(Species ~ .,data = trainset,size = 2,rang = 0.1,decay = 5e-4,maxit = 200)
# weights: 19
initial value 114.539765
iter 10 value 52.100312
iter 20 value 50.231442
iter 30 value 49.526599
iter 40 value 49.402229
iter 50 value 44.680338
iter 60 value 5.254389
iter 70 value 2.836695
iter 80 value 2.744315
iter 90 value 2.687069
iter 100 value 2.621556
iter 110 value 2.589096
iter 120 value 2.410539
iter 130 value 2.096461
iter 140 value 1.938717
iter 150 value 1.857105
iter 160 value 1.825393
iter 170 value 1.817409
iter 180 value 1.815591
iter 190 value 1.815030
iter 200 value 1.814746
final value 1.814746
stoppedafter 200 iterations
调用summary( )输出训练好的神经网络:
summary(iris.nn)
a 4-2-3 network with 19 weights
options were - softmax modelling decay=5e-04
b->h1 i1->h1 i2->h1 i3->h1 i4->h1
-20.60 0.31 -3.84 3.36 7.72
b->h2 i1->h2 i2->h2 i3->h2 i4->h2
-7.15 1.50 2.49 -4.14 5.59
b->o1 h1->o1 h2->o1
-7.28 -3.67 13.16
b->o2 h1->o2 h2->o2
15.90 -16.64 -19.40
b->o3 h1->o3 h2->o3
-8.62 20.31 6.24
在应用函数时可以实现分类观测,数据源,隐蔽单元个数(size参数),初始随机数权值(rang参数),权值衰减参数(decay参数),最大迭代次数(maxit),整个过程会一直重复直至拟合准则值与衰减项收敛。
使用模型iris.nn模型完成对测试数据集的预测
iris.predict = predict(iris.nn,testset,type = "class")
nn.table = table(testset$Species,iris.predict)
nn.table
iris.predict
setosa versicolor virginica
setosa 17 0 0
versicolor 0 13 1
virginica 0 2 13
基于分类表得到混淆矩阵
confusionMatrix(nn.table)
Confusion Matrix and Statistics
iris.predict
setosa versicolor virginica
setosa 17 0 0
versicolor 0 13 1
virginica 0 2 13
Overall Statistics
Accuracy : 0.9348
95% CI : (0.821, 0.9863)
No Information Rate : 0.3696
P-Value [Acc > NIR] : 1.019e-15
Kappa : 0.9019
Mcnemar's Test P-Value : NA
Statistics by Class:
Class: setosa Class: versicolor Class: virginica
Sensitivity 1.0000 0.8667 0.9286
Specificity 1.0000 0.9677 0.9375
Pos Pred Value 1.0000 0.9286 0.8667
Neg Pred Value 1.0000 0.9375 0.9677
Prevalence 0.3696 0.3261 0.3043
Detection Rate 0.3696 0.2826 0.2826
Detection Prevalence 0.3696 0.3043 0.3261
Balanced Accuracy 1.0000 0.9172 0.9330
在调用predict函数时,我们明确了type参数为class,因此输出的是预测的类标号而非概率矩阵。接下来调用table函数根据预测结果和testset的实际类标号生成分类表,最后利用建立的分类表使用table函数根据caret中的confusionMatrix方法对训练好的神经网络预测性能评估。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
PyTorch 核心机制:损失函数与反向传播如何驱动模型进化 在深度学习的世界里,模型从 “一无所知” 到 “精准预测” 的蜕变,离 ...
2025-07-252025 年 CDA 数据分析师考纲焕新,引领行业人才新标准 在数字化浪潮奔涌向前的当下,数据已成为驱动各行业发展的核心要素。作为 ...
2025-07-25从数据到决策:CDA 数据分析师如何重塑职场竞争力与行业价值 在数字经济席卷全球的今天,数据已从 “辅助工具” 升级为 “核心资 ...
2025-07-25用 Power BI 制作地图热力图:基于经纬度数据的实践指南 在数据可视化领域,地图热力图凭借直观呈现地理数据分布密度的优势,成 ...
2025-07-24解析 insert into select 是否会锁表:原理、场景与应对策略 在数据库操作中,insert into select 是一种常用的批量数据插入语句 ...
2025-07-24CDA 数据分析师的工作范围解析 在数字化时代的浪潮下,数据已成为企业发展的核心资产之一。CDA(Certified Data Analyst)数据分 ...
2025-07-24从 CDA LEVEL II 考试题型看 Python 数据分析要点 在数据科学领域蓬勃发展的当下,CDA(Certified Data Analyst)认证成为众多从 ...
2025-07-23用 Python 开启数据分析之旅:从基础到实践的完整指南 在数据驱动决策的时代,数据分析已成为各行业不可或缺的核心能力。而 Pyt ...
2025-07-23鸢尾花判别分析:机器学习中的经典实践案例 在机器学习的世界里,有一个经典的数据集如同引路明灯,为无数初学者打开了模式识别 ...
2025-07-23解析 response.text 与 response.content 的核心区别 在网络数据请求与处理的场景中,开发者经常需要从服务器返回的响应中提取数 ...
2025-07-22解析神经网络中 Softmax 函数的核心作用 在神经网络的发展历程中,激活函数扮演着至关重要的角色,它们为网络赋予了非线性能力, ...
2025-07-22CDA数据分析师证书考取全攻略 一、了解 CDA 数据分析师认证 CDA 数据分析师认证是一套科学化、专业化、国际化的人才考核标准, ...
2025-07-22左偏态分布转正态分布:方法、原理与实践 左偏态分布转正态分布:方法、原理与实践 在统计分析、数据建模和科学研究中,正态分 ...
2025-07-22你是不是也经常刷到别人涨粉百万、带货千万,心里痒痒的,想着“我也试试”,结果三个月过去,粉丝不到1000,播放量惨不忍睹? ...
2025-07-21我是陈辉,一个创业十多年的企业主,前半段人生和“文字”紧紧绑在一起。从广告公司文案到品牌策划,再到自己开策划机构,我靠 ...
2025-07-21CDA 数据分析师的职业生涯规划:从入门到卓越的成长之路 在数字经济蓬勃发展的当下,数据已成为企业核心竞争力的重要来源,而 CD ...
2025-07-21MySQL执行计划中rows的计算逻辑:从原理到实践 MySQL 执行计划中 rows 的计算逻辑:从原理到实践 在 MySQL 数据库的查询优化中 ...
2025-07-21在AI渗透率超85%的2025年,企业生存之战就是数据之战,CDA认证已成为决定企业存续的生死线!据麦肯锡全球研究院数据显示,AI驱 ...
2025-07-2035岁焦虑像一把高悬的利刃,裁员潮、晋升无望、技能过时……当职场中年危机与数字化浪潮正面交锋,你是否发现: 简历投了10 ...
2025-07-20CDA 数据分析师报考条件详解与准备指南 在数据驱动决策的时代浪潮下,CDA 数据分析师认证愈发受到瞩目,成为众多有志投身数 ...
2025-07-18