《深度学习企业实战:基于R语言》配套资源

  • 更新时间:
  • 6952人关注
  • 点击下载

给大家带来的是《深度学习企业实战:基于R语言》配套资源,介绍了关于深度学习、R语言、深度学习方面的内容,本书是由人民邮电出版社出版,已被574人关注,由热心网友孔纯洁 提供,目前本书在深度学习类综合评分为:7.6分

资源详情相关推荐
《《深度学习企业实战:基于R语言》配套资源》封面
  • 出版社:人民邮电出版社
  • 作者:[英]尼格尔·刘易斯(N.D、Lewis
  • 大小:7.74 MB
  • 类别:深度学习
  • 热度:595
  • 深度学习之美:AI时代的数据处理与最佳实践
  • 深度学习之图像识别:核心技术与案例实战
  • 深度学习实践:计算机视觉
  • Keras深度学习实战
  • TensorFlow深度学习应用实践
  • 编辑推荐

    深度学习是机器学习的一个分支,旨在建立模拟人脑进行分析学习的神经网络。很多知名的科技公司已经部署了深度学习技术来帮助它们解决业务问题。本书侧重于R语言与深度学习的结合,语言通俗易懂,不涉及过多的数学知识,贯穿全书的重点是实践方法,旨在向读者讲解深度学习的企业化应用,并通过R编程来构建各种模型,帮助读者了解企业中应用深度学习的相关案例。本书非常注重实用性,不对读者做过多的技术要求,适合所有想通过R编程来了解深度学习,并对深度学习的商业化应用感兴趣的读者。

    内容简介

    深度学习是机器学习的一个分支,它能够使计算机通过层次概念来学习经验和理解世界。同时,深度学习也是非常贴近AI的一个技术分支,得到了越来越多人的关注。本书侧重于R语言与深度学习的结合,旨在通过通俗易懂的语言和实用技巧的介绍,帮助读者了解深度学习在商业领域的应用。本书包含12章,涉及基本的R编程技巧和深度学习原理,同时介绍了神经网络和深度学习在商业分析中的应用。除此之外,本书还介绍了神经网络的学习机制、激活函数等内容,并且给出了新闻分类、客户维系方法、消费预测、产品需求预测等实用策略。本书注重实用性,不对读者做过多的技术要求,适合所有想通过R编程来了解深度学习,并对其商业化应用感兴趣的读者。

    作者简介

    尼格尔·刘易斯(N.D.Lewis)是一位数据科学和预测领域的讲师、作者和研究者。他在华尔街和伦敦从事投资管理工作多年,编著了统计、数据科学和量化模型方面的数本图书,并且在大学里开设深度学、机器学和数据分析应用等方面的课程。

    目录

    第 1章 如何充分利用本书1

    1.1 软件包使用建议 2

    1.2 高效使用函数 3

    1.3 无需等待 3

    1.3.1 勤于动手 4

    1.3.2 深度学习的价值 4

    1.4 参考资料 5

    第 2章 商业分析与神经网络 6

    2.1 数据价值创造周期 8

    2.2 神经网络简介 9

    2.3 模式识别的本质 10

    2.3.1 时序模式 12

    2.3.2 复杂的商业模式 14

    2.4 属性、分类和回归 15

    2.4.1 属性 15

    2.4.2 回归 16

    2.4.3 分类 16

    2.5 参考资料 17

    第3章 商业中的深度学习 19

    3.1 古典游戏让深度学习大放异彩 20

    3.2 还有谁希望快速地了解深度学习的强大 21

    3.3 改进价值创造链 23

    3.4 如何进行智能化营销 24

    3.5 客户流失——以及如何增加利润的小技巧 25

    3.6 挖掘预测产品需求过程中隐藏的商机 25

    3.7 参考资料 27

    第4章 神经元和激活函数 29

    4.1 人工神经元简介 30

    4.2 激活函数 31

    4.3 简化数学计算 32

    4.4 S型激活函数简介 33

    4.5 参考资料 34

    第5章 神经网络的学习机制 36

    5.1 反向传播算法简介 37

    5.2 基本算法的工作原理 38

    5.3 关于渐变下降 39

    5.4 误差面简介 40

    5.4.1 均方根误差 40

    5.4.2 局部极小值 40

    5.5 关于随机梯度下降的注意事项 43

    5.6 参考资料 43

    第6章 深度神经网络简介 44

    6.1 关于精确预测的常识 45

    6.2 在没有知识储备的情况下为复杂的数学关系建模 51

    6.3 整合深度神经网络蓝图 53

    6.4 深度神经网络的完美剖析 53

    6.5 选择最佳层数 54

    6.6 参考资料 55

    第7章 在线热点新闻分类 57

    7.1 在线新闻的特点 58

    7.2 如何从网上下载在线新闻样本 59

    7.3 一种浏览数据样本的简单方法 61

    7.4 如何预处理新闻转发的频率 63

    7.5 标准化的重要性 64

    7.6 创建训练样本 66

    7.7 适合深度神经网络的证明方法 67

    7.8 分类预测 69

    7.9 需要包含多少个神经元的答案 70

    7.9.1 一个关键点 71

    7.9.2 核心思想 72

    7.10 构建一个更复杂的模型 72

    7.11 混淆矩阵 73

    7.11.1 table函数 74

    7.11.2 测试集上的性能 75

    7.12 实践出真知 76

    7.13 参考资料 76

    第8章 为客户流失建模以促进业务增长 78

    8.1 客户流失的原因 79

    8.2 电信行业的客户流失 81

    8.3 如何将客户流失样本下载到本地硬盘 83

    8.4 一种收集数据和查看特征的简单方法 83

    8.4.1 转换因子变量 84

    8.4.2 转换响应变量 85

    8.4.3 清理 86

    8.4.4 查看数据 86

    8.5 快速构建一个深度神经网络 87

    8.6 接收器操作特性曲线下的面积 88

    8.7 Tanh激活函数 91

    8.8 关于学习率 93

    8.9 动量的完整直观指南 95

    8.9.1 选择动量值 96

    8.9.2 R中的学习率和动量 97

    8.10 不平衡类的问题 98

    8.11 一种易用的不平衡类解决方案 100

    8.11.1 unbalanced软件包 101

    8.11.2 运行模型 102

    8.11.3 选择模型 103

    8.11.4 每种模型的测试集性能 104

    8.12 实践出真知 106

    8.13 参考资料 106

    第9章 产品需求预测 108

    9.1 自行车共享系统 109

    9.2 数据样本的分布和相关性 110

    9.2.1 目标变量 113

    9.2.2 预备属性 114

    9.2.3 属性规范化 116

    9.2.4 训练集 117

    9.3 自动化公式生成 117

    9.4 弹性反向传播解密 119

    9.5 奥卡姆剃刀法则的解释 119

    9.6 如何使用奥卡姆剃刀法则 120

    9.7 确定性能基准的简单方法 123

    9.8 重新训练一个替代模型 124

    9.9 如何选择重复的次数 125

    9.9.1 一个问题和一个答案 126

    9.9.2 查看多次重复的性能 127

    9.10 一个建模错误可以严重影响性能 128

    9.11 简单模型如何提供稳定的性能 130

    9.12 实践出真知 131

    9.13 参考资料 132

    第 10章 预测客户信用卡消费的艺术 133

    10.1 明确信贷的角色 134

    10.2 信用卡数据 135

    10.3 预处理样本数据 137

    10.3.1 处理因子属性 138

    10.3.2 处理数值变量 139

    10.3.3 创建核心数据帧 139

    10.4 一种设计深度神经网络的简单方法 140

    10.4.1 一种替代模型 141

    10.4.2 一种解释 142

    10.5 过度训练的挑战 144

    10.6 提早停止的简单策略 146

    10.7 实践出真知 147

    10.8 参考资料 148

    第 11章 客户品牌选择建模简介 151

    11.1 品牌选择的概念性框架 152

    11.1.1 效用的挑战 152

    11.1.2 实际情况 153

    11.2 检查样本数据 154

    11.3 S型激活函数的实际限制 156

    11.3.1 模型精度 157

    11.3.2 消失的梯度 158

    11.4 深度学习工具箱中必备的一个激活函数 159

    11.5 保持技术的秘密 160

    11.5.1 一个实际问题 161

    11.5.2 重要提示 163

    11.6 数据预处理的魔力 164

    11.6.1 继续研究消费者品牌选择模型 164

    11.6.2 测试集性能 166

    11.6.3 修改测试——训练集分割 167

    11.7 实践出真知 168

    11.8 参考资料 168

    第 12章 汽车价格预测 171

    12.1 二手车价格的关键因素 172

    12.2 下载二手车数据集 173

    12.3 评估二手车价格和其他属性的关系 174

    12.4 一个简单的数据预处理技巧 178

    12.5 快速建立训练集和测试集 180

    12.6 充分利用mini batching算法 180

    12.6.1 一个问题 181

    12.6.2 R中的批量大小 182

    12.7 测量和评估模型性能 182

    12.8 高效交叉验证的基本要领 183

    12.9 一个可以轻松模拟的实用示例 185

    12.9.1 一个简单的for循环 185

    12.9.2 测试集上的性能 187

    12.10 最后的思考 188

    12.11 参考资料 189

    展开阅读
    精选笔记1:PyTorch的深度学习入门教程之构建神经网络

    22小时47分钟前回答

    前言

    本文参考PyTorch官网的教程,分为五个基本模块来介绍PyTorch。为了避免文章过长,这五个模块分别在五篇博文中介绍。

    Part3:使用PyTorch构建一个神经网络

    神经网络可以使用touch.nn来构建。nn依赖于autograd来定义模型,并且对其求导。一个nn.Module包含网络的层(layers),同时forward(input)可以返回output。

    这是一个简单的前馈网络。它接受输入,然后一层一层向前传播,最后输出一个结果。

    训练神经网络的典型步骤如下:

    (1)  定义神经网络,该网络包含一些可以学习的参数(如权重)

    (2)  在输入数据集上进行迭代

    (3)  使用网络对输入数据进行处理

    (4)  计算loss(输出值距离正确值有多远)

    (5)  将梯度反向传播到网络参数中

    (6)  更新网络的权重,使用简单的更新法则:weight = weight - learning_rate* gradient,即:新的权重=旧的权重-学习率*梯度值。

    1 定义网络

    我们先定义一个网络:

    import torch
    from torch.autograd import Variable
    import torch.nn as nn
    import torch.nn.functional as F
    
    
    class Net(nn.Module):
    
      def __init__(self):
        super(Net, self).__init__()
        # 1 input image channel, 6 output channels, 5x5 square convolution
        # kernel
        self.conv1 = nn.Conv2d(1, 6, 5)
        self.conv2 = nn.Conv2d(6, 16, 5)
        # an affine operation: y = Wx + b
        self.fc1 = nn.Linear(16 * 5 * 5, 120)
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)
    
      def forward(self, x):
        # Max pooling over a (2, 2) window
        x = F.max_pool2d(F.relu(self.conv1(x)), (2, 2))
        # If the size is a square you can only specify a single number
        x = F.max_pool2d(F.relu(self.conv2(x)), 2)
        x = x.view(-1, self.num_flat_features(x))
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x
    
      def num_flat_features(self, x):
        size = x.size()[1:] # all dimensions except the batch dimension
        num_features = 1
        for s in size:
          num_features *= s
        return num_features
    
    
    net = Net()
    print(net)

    预期输出:

    Net (
    
     (conv1): Conv2d(1, 6, kernel_size=(5, 5), stride=(1, 1))
    
     (conv2): Conv2d(6, 16, kernel_size=(5, 5), stride=(1, 1))
    
     (fc1): Linear (400 ->120)
    
     (fc2): Linear (120 ->84)
    
     (fc3): Linear (84 ->10)
    
    )
    

    你只需要定义forward函数,那么backward函数(梯度在此函数中计算)就会利用autograd来自动定义。你可以在forward函数中使用Tensor的任何运算。

    学习到的参数可以被net.parameters()返回。

    params = list(net.parameters())
    print(len(params))
    print(params[0].size()) # conv1's .weight

    预期输出:

    10

    torch.Size([6, 1, 5, 5])

    前向计算的输入和输出都是autograd.Variable,注意,这个网络(LeNet)的输入尺寸是32*32。为了在MNIST数据集上使用这个网络,请把图像大小转变为32*32。

    input = Variable(torch.randn(1, 1, 32, 32))
    out = net(input)
    print(out)

    预期输出:

    Variable containing:
    -0.0796 0.0330 0.0103 0.0250 0.1153 -0.0136 0.0234 0.0881 0.0374 -0.0359
    [torch.FloatTensor of size 1x10]

    将梯度缓冲区归零,然后使用随机梯度值进行反向传播。

    net.zero_grad()
    out.backward(torch.randn(1, 10))

    注意:torch.nn只支持mini-batches. 完整的torch.nn package只支持mini-batch形式的样本作为输入,并且不能只包含一个样本。例如,nn.Conv2d会采用一个4D的Tensor(nSamples* nChannels * Height * Width)。如果你有一个单样本,可以使用input.unsqueeze(0)来添加一个虚假的批量维度。

    在继续之前,让我们回顾一下迄今为止所见过的所有类。

    概述:

    (1)  torch.Tensor——多维数组

    (2)  autograd.Variable——包装了一个Tensor,并且记录了应用于其上的运算。与Tensor具有相同的API,同时增加了一些新东西例如backward()。并且有相对于该tensor的梯度值。

    (3)  nn.Module——神经网络模块。封装参数的简便方式,对于参数向GPU移动,以及导出、加载等有帮助。

    (4)  nn.Parameter——这是一种变量(Variable),当作为一个属性(attribute)分配到一个模块(Module)时,可以自动注册为一个参数(parameter)。

    (5)  autograd.Function——执行自动求导运算的前向和反向定义。每一个Variable运算,创建至少一个单独的Function节点,该节点连接到创建了Variable并且编码了它的历史的函数身上。

    2 损失函数(Loss Function)

    损失函数采用输出值和目标值作为输入参数,来计算输出值距离目标值还有多大差距。在nn package中有很多种不同的损失函数,最简单的一个loss就是nn.MSELoss,它计算输出值和目标值之间的均方差。

    例如:

    output = net(input)
    target = Variable(torch.arange(1, 11)) # a dummy target, for example
    criterion = nn.MSELoss()
    
    loss = criterion(output, target)
    print(loss)

    现在,从反向看loss,使用.grad_fn属性,你会看到一个计算graph如下:

    input -> conv2d -> relu -> maxpool2d -> conv2d -> relu -> maxpool2d
       -> view -> linear -> relu -> linear -> relu -> linear
       -> MSELoss
       -> loss

    当我们调用loss.backward(),整个的graph关于loss求导,graph中的所有Variables都会有他们自己的.grad变量。

    为了理解,我们进行几个反向步骤。

    print(loss.grad_fn) # MSELoss
    print(loss.grad_fn.next_functions[0][0]) # Linear
    print(loss.grad_fn.next_functions[0][0].next_functions[0][0]) # ReLU

    预期输出:

    <torch.autograd.function.MSELossBackwardobjectat0x7fb3c0dcf4f8>
    
    <torch.autograd.function.AddmmBackwardobjectat0x7fb3c0dcf408>
    
    <AccumulateGradobjectat0x7fb3c0db79e8>
    

    3 反向传播(Backprop)

    可以使用loss.backward()进行误差反向传播。你需要清除已经存在的梯度值,否则梯度将会积累到现有的梯度上。

    现在,我们调用loss.backward(),看一看conv1的bias 梯度在backward之前和之后的值。

    net.zero_grad()   # zeroes the gradient buffers of all parameters
    
    print('conv1.bias.grad before backward')
    print(net.conv1.bias.grad)
    
    loss.backward()
    
    print('conv1.bias.grad after backward')
    print(net.conv1.bias.grad)

    4 更新权重

    实践当中最简单的更新法则就是随机梯度下降法( StochasticGradient Descent (SGD))

    weight = weight - learning_rate * gradient

    执行这个操作的python代码如下:

    learning_rate = 0.01
    for f in net.parameters():
      f.data.sub_(f.grad.data * learning_rate)
    

    但是当你使用神经网络的时候,你可能会想要尝试多种不同的更新法则,例如SGD,Nesterov-SGD, Adam, RMSProp等。为了实现此功能,有一个package叫做torch.optim已经实现了这些。使用它也很方便:

    import torch.optim as optim
    
    # create your optimizer
    optimizer = optim.SGD(net.parameters(), lr=0.01)
    
    # in your training loop:
    optimizer.zero_grad()  # zero the gradient buffers
    output = net(input)
    loss = criterion(output, target)
    loss.backward()
    optimizer.step()  # Does the update

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

    展开阅读

    深度学习相关资源

    • R语言实战:机器学习与数据分析

      R语言实战:机器学习与数据分析

      大小:76.2 MBR语言

      立即下载
    • 高级R语言编程指南

      高级R语言编程指南

      本书讲述R语言的基础知识,深入介绍R函数式编程、R语言的面向对象特性、程序的调试、代码优化和性能调优等内容,展示了许多必备的技巧

      大小:46 MBR语言

      立即下载
    • 网络数据的统计分析:R语言实践

      网络数据的统计分析:R语言实践

      本书用丰富的案例说明了如何利用多个R语言扩展包进行各类网络分析。R语言扩展包igraph提供了大量用于网络分析的功能,书中以其作为主要的工具

      大小:28.9 MBR语言应用

      立即下载
    • R语言:从数据思维到数据实战

      R语言:从数据思维到数据实战

      R语言:从数据思维到数据实战 R作者:朱雪宁 等 出版时间:2018 如何从数据中挖掘价值?一是要锻炼数据思维;二是需要选择一个便利快捷的工具。R语言在数据分析方面有着灵活、高效的优势。本书以R语言为基础,深度讲解从数据思维到实战的全过程。在章节组织上,本从R语言简介及优势入手,再到数据读取、清洗、描述、建模等数据分析的各个环节,由浅入深逐个讲解,是一本实务分析中的“R语言指南”。同时,本书采用大量实际案例辅以说明,既

      大小:125.55MBR语言

      立即下载
    • 深度学习精要(基于R语言)

      深度学习精要(基于R语言)

      大小:5.1 MB深度学习

      立即下载
    • R语言与大数据编程实战

      R语言与大数据编程实战

      全方位详细介绍了来源于数据分析、深度学习、人工智能技术等行业的多种多样数据统计分析优化算法,在解读与之有关的R编码时,还探讨了这种优化算法的基本原理、优点和缺点与可用背景

      大小:9.4 MBR语言

      立即下载
    • R语言与数据挖掘最佳实践和经典案例

      R语言与数据挖掘最佳实践和经典案例

      数据挖掘技术已经广泛用于政府机关、银行、保险、零售、电信、医药和研究领域。最近,越来越多的数据挖掘工作开始使用R工具来完成,R是一个用于统计计算和制图的免费软件。在最近的调

      大小:30.5 MBR语言

      立即下载

    学习笔记

    2小时44分钟前回答

    深度学习tensorflow基础mnist

    软件架构 mnist数据集的识别使用了两个非常小的网络来实现,第一个是最简单的全连接网络,第二个是卷积网络,mnist数据集是入门数据集,所以不需要进行图像增强,或者用生成器读入内存,直接使用简单的fit()命令就可以一次性训练 安装教程 使用到的主要第三方库有tensorflow1.x,基于TensorFlow的Keras,基础的库包括numpy,matplotlib 安装方式也很简答,例如:pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple 注意tensorflow版本不能是2.x 使用说明 首先,我们预览数据集,运行mnistplt.py,绘制了4张训练用到的图像 训练全连接网络则运行Densemnist.py,得到权重Dense.h5,加载模型并预测运行Denseload.py 训练卷积网络则运……

    20小时39分钟前回答

    Dlib+OpenCV深度学习人脸识别的方法示例

    前言 人脸识别在LWF(Labeled Faces in the Wild)数据集上人脸识别率现在已经99.7%以上,这个识别率确实非常高了,但是真实的环境中的准确率有多少呢?我没有这方面的数据,但是可以确信的是真实环境中的识别率并没有那么乐观。现在虽然有一些商业应用如员工人脸识别管理系统、海关身份验证系统、甚至是银行人脸识别功能,但是我们可以仔细想想员工人脸识别管理,海关身份证系统的应用场景对身份的验证功能其实并没有商家吹嘘的那么重要,打个比方说员工上班的时候刷脸如果失败了会怎样,是不是重新识别一下,如果还是误识别,或是识别不出,是不是就干脆刷卡或是其他方式登记上班,然后骂一……

    10小时38分钟前回答

    PyTorch的深度学习入门之PyTorch安装和配置

    前言 深度神经网络是一种目前被广泛使用的工具,可以用于图像识别、分类,物体检测,机器翻译等等。深度学习(DeepLearning)是一种学习神经网络各种参数的方法。因此,我们将要介绍的深度学习,指的是构建神经网络结构,并且运用各种深度学习算法训练网络参数,进而解决各种任务。本文从PyTorch环境配置开始。PyTorch是一种Python接口的深度学习框架,使用灵活,学习方便。还有其他主流的深度学习框架,例如Caffe,TensorFlow,CNTK等等,各有千秋。笔者认为,初期学习还是选择一种入门,不要期望全都学会。须知,发力集中才能深入挖掘。乱花渐欲迷人眼,选择适合自己的,从一而终,相信会对科……