数据挖掘:基于R语言的实战 | 第7章:神经网络的基本方法

上一章我们简单介绍了有监督学习方法中最常用的线性模型和广义线性模型,第7章我们来认识一下神经网络的基本方法。本章先介绍了单个神经元和神经网络,然后介绍神经网络的训练方法,接着介绍提升模型泛化能力的一些方法,以及训练前的数据准备过程,最后给出了一个使用R语言建立神经网络模型的示例,供小伙伴们动手学起来!

7.1节首先介绍了单个神经元的结构,即信号、连接权、组合函数、激活函数及输出值,其中详细介绍了多种激活函数,包括Logistic函数、Tanh函数、Eliot函数、Arctan函数、指数函数、Softmax函数和恒等函数。随后这一节介绍了多层感知机的架构。多个神经元连接在一起就形成了神经网络,而多层感知机就是一种常用的结构较为简单的神经网络。各自变量通过输入层的神经元输入到网络中,输入层的神经元与第一层隐藏层的神经元连接在一起,各隐藏层之间也是如此连接,从而将输入的自变量层层转换,在输出层形成输出值。多层感知机可以形成非常复杂的非线性模型,但是缺点也是显而易见的,因为自变量与因变量之间的关系是复杂而非线性的,神经网络的可解释性比较差。

7.2节主要介绍神经网络模型的训练方法,首先讨论了不同因变量形式下神经网络的误差函数形式,包括因变量为二值变量或比例、多种取值的定类变量、定序变量、计数变量、取值可正可负的连续变量或非负连续变量的情形。然后介绍了神经网络经典的反向传播算法,包括算法的思想、相关概念、局限性及改进方法。

7.3节主要介绍提高神经网络模型泛化能力的方法。神经网络的复杂程度与隐藏单元的数目、参数值的大小有关。我们需要足够复杂的模型来拟合因变量与自变量之间的关系,但如果模型过于复杂,会将训练数据的噪声也学习进来,造成过度拟合,模型不易用于其他数据集。两种常用的方法可以提高神经网络的泛化能力,一种是穷尽搜索,设置不同数目的隐藏单元,从中选择最优,另一种方法是权衰减法,对权重施加惩罚,可以使得对模型预测精度没有什么影响的单元参数更接近0,以限制模型的复杂度。

7.4节主要介绍训练前的数据预处理过程。数据标准化和预处理可能会提升神经网络的性能,还可以降低训练的计算量。自变量之间的多重共线性会造成参数冗余,消除它的一种有效方法就是主成分分析。对于数据缺失的情况,可以预先进行插补。此外,对于自变量中的分类变量也需要进行一定的转换,才能输入到模型中。

7.5节给出了一个使用R语言建立神经网络模型的案例,然后介绍在移动运营商数据中如何应用神经网络模型。代码给出了非常详细的注释,大家快跟着学起来吧!

(0)

相关推荐

  • 中介效应是个什么作用?

    中介变量(mediator)是自变量X对因变量Y产生影响的中介,如果变量X通过影响变量M来影响因变量Y则称M为中介变量,也就是说自变量X对因变量Y的影响有一部分或者全部是通过中介变量M来发挥作用的.通 ...

  • 数据挖掘:基于R语言的实战 | 第5章:聚类分析

    第5章我们继续来学习一种无监督的数据挖掘方法--聚类分析.通过聚类分析我们可以观察到数据是怎么聚集在一起的,还可以用来描述数据的分布情况.聚类分析的应用十分广泛,例如通过对客户聚类来对其进行细分以便为 ...

  • 数据挖掘:基于R语言的实战 | 第6章:线性模型与广义线性模型

    第6章给大家介绍实际场景中最常用的两种统计模型,线性模型和广义线性模型.本章首先在6.1节中介绍线性模型,然后在6.2节中介绍广义线性模型,在6.3节再介绍线性模型和广义线性模型中的变量选择.本章最后 ...

  • 数据挖掘:基于R语言的实战 | 第9章:基于决策树的模型组合

      上一章我们学习了决策树模型,这一章我们继续学习几种基于决策树的模型组合,包括袋装决策树.梯度提升决策树.随机森林和贝叶斯可加回归树.本章的最后提供了在R语言中建立以上几种模型的案例.   9.1节 ...

  • 基于R语言实现LASSO回归分析

    原文链接:http://tecdat.cn/?p=10997 模拟假数据集  set.seed(0820) n         <- 50  p         <- 25  beta   ...

  • 每周一本书 |《R语言预测实战》:预测很有趣,算法却未必枯燥

    <数据猿导读> 预测是数据挖掘的主要作用之一,也是大数据时代的核心价值所在.本周给大家分享的书是<R语言预测实战>,基于R语言来做预测,兼具效率和价值的双重属性,R语言具有上手 ...

  • 一文掌握SVM用法(基于R语言)

    这是生信技能树 一文 系列推文,前面的目录: 一文学会WGCNA分析 一文看懂主成分分析 SVM 背景知识 支持向量机,因其英文名为support vector machine,故一般简称SVM,就是 ...

  • 芯片的探针ID找到基因名-基于R语言-一文就够

    使用bioconductor注释包 如果该芯片平台有对应的bioconductor注释包,只有约90个常用的芯片有! 比如: library(hgu133a.db) ids=toTable(hgu13 ...

  • 基于R语言的shiny网页工具开发基础系列-07

    任何使用R的人都可运行你的shiny app,他们需要你的app.R的一个副本,还有其他支持材料(比如www文件夹或者帮助脚本) 发送你的文件到另一个用户,email或者github等 用户将你的文件 ...

  • 基于R语言的shiny网页工具开发基础系列-06

    L6-反应表达式 用反应表达式,快速构建,模块化app ⚠️此篇的线上数据可能有时无法顺利抓取,要多试几次 使用反应表达式 用户会赞叹快速的app,但是你的app有大量运算影响速度了该怎么办呢? 此篇 ...