前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sas神经网络:构建人工神经网络模型来识别垃圾邮件

sas神经网络:构建人工神经网络模型来识别垃圾邮件

作者头像
拓端
发布2020-10-23 09:56:57
3620
发布2020-10-23 09:56:57
举报
文章被收录于专栏:拓端tecdat

原文链接http://tecdat.cn/?p=14033

神经网络是一种非常通用的灵活预测模型,可用于解决各种问题,包括分类,降维和回归。

现实世界中的一些业务应用示例包括图像处理,医疗诊断,金融服务和欺诈检测。此样本说明如何使用SAS®In-Memory Statistics中的NEURAL语句来构建人工神经网络模型来识别垃圾邮件。该示例中使用的数据集是机器学习存储库中的经典Spambase数据集。请注意,SAS®内存中统计信息具有直接将数据直接从URL加载到内存中的功能,而无需保存到磁盘,如示例所示。该示例还演示了如何执行以下任务:

1.对从不同点开始的几个“浅”神经网络进行预训练,以避免创建由于初始权重差而无效的神经网络。 2.从预训练的神经网络中选择最佳的神经网络,然后继续分析以训练更深的神经网络作为最终模型。 3.使用最终的神经网络模型对验证数据集评分。 4.使用评分结果和ASSESS语句执行模型评估。 5.根据ASSESS语句的结果绘制升力和ROC曲线。

代码语言:javascript
复制


data mylasr.spambase;
infile "&base/spambase/spambase.data" device=url dsd dlm=',';
input Make Address All _3d Our Over Remove Internet Order Mail Receive
Will People Report Addresses Free Business Email You Credit Your Font
_000 Money Hp Hpl George _650 Lab Labs Telnet _857 Data _415 _85
Technology _1999 Parts Pm Direct Cs Meeting Original Project Re Edu
Table Conference Semicol Paren Bracket Bang Dollar Pound Cap_Avg
Cap_Long Cap_Total Class;
run;


proc imstat;

1.从不同点到预训练几个“浅”神经网络,避免创建因初始值不佳而无效的神经网络。

代码语言:javascript
复制


/*input */ input=(make--cap_total) std=std
/*target*/ targetact=softmax targetcomb=linear error=entropy nominal=class
/*hidden*/ hiddens=(10) act=(logistic) combine=(linear)
/*prelim*/ numtries=5 maxiter=10 tech=congra
/*NLOP  */ maxfunc=1000000 linesearch=2 fconv=1e-4 lower=-20 upper=20;

2.从预训练的神经网络中选择最佳的神经网络,然后继续分析以训练更深层的神经网络作为最终模型。

代码语言:javascript
复制


/*NLOP  */ maxfunc=1000000 linesearch=2 fconv=1e-4 lower=-20 upper=20;

3.使用经过训练的神经网络模型对分数进行验证。ASSESS选项指定为所有级别的得分数据添加预测概率标称目标变量。在此示例中,创建了两个级别,因为名为class的变量具有两个值0或1。计分的数据为存储在临时表中。

代码语言:javascript
复制


input = (make--cap_total) nominal=class temptable assess vars = (class);

4.使用评分结果执行模型评估。所有级别的概率都在输出中,但是我们仅需要事件级别的概率。WHERE子句仅用于选择具有事件级别的行。剥离功能适用于删除字符变量_NN_Level_中的空格。

5.根据ASSESS语句的结果绘制升力和ROC曲线。

代码语言:javascript
复制


proc sgplot data=rocdata;
series x = one_minus_Specificity y = Sensitivity / lineattrs=(color=blue);
series x = one_minus_Specificity y = one_minus_Specificity / lineattrs=(color=black);
yaxis grid;
run;
quit;

模型信息表

分数信息表

提升曲线

ROC 曲线

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓端数据部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原文链接http://tecdat.cn/?p=14033
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档