根据企业财务进行风险分析——基于pytorch

0.引言

现手头有500个左右的企业财务数据,共有12个特征,如:净资产收益率(年度)、总资产报酬率(年度)、成本费用利润率(年度)等等。本文目标是通过深度学习的方式来自动预测某一企业是否具有风险。

首先通过人工鉴别的方式,给150个企业做出标签:0代表无风险,1代表有风险。这150个企业是训练集,剩下350个企业是测试集。(按照机器学习的通常原则,一般是60%的训练集,20%的验证集,20%的测试集,但是由于人工鉴别费时费力,暂时先给150个企业做出标签,如果效果不错,就多做一些标签,增加训练集。)

然后训练出模型,最后使用模型对剩下350个企业进行测试。

1 配置环境

1.1 安装anaconda

不要装太新的,conda3.6或者3.7兼容性比较好。相关链接:
https://blog.csdn.net/u012318074/article/details/77075209

1.2 安装pytorch

由于数据量并不大,建议安装cpu版本的,这样可以避免安装GPU的相关驱动等复杂步骤。
在这里插入图片描述
在命令行中敲入:

conda install pytorch torchvision torchaudio cpuonly -c pytorch

1.3 安装编译器pycharm

pycharm有社区版本和专业版本。社区版本免费,专业版本需要收费,运行此模型,社区版本的足够了。相关链接:
https://blog.csdn.net/ifubing/article/details/104137585

2 训练模型

2.1 文件组织结构

在这里插入图片描述
其中文件夹data下面是数据,model下面是模型。

2.2 新建项目

在这里插入图片描述

2.3 训练代码

import pandas as pd
import numpy as np
import torch
from torch.functional import F


class Net(torch.nn.Module):
    def __init__(self, n_feature, n_hidden, n_output):
        super(Net, self).__init__()
        self.hidden = torch.nn.Linear(n_feature, n_hidden)
        self.predict = torch.nn.Linear(n_hidden, n_output)

    def forward(self, x_input):
        x_hidden = F.relu(self.hidden(x_input))
        x_predict = self.predict(x_hidden)
        return x_predict
# 定义网络


if __name__ == '__main__':
    train = pd.read_csv('./data/train_data.csv', encoding="gb18030")
    data = train.values
    data = data[:, 3:16]
    # 选取标签和特征值

    data = data.astype(float)
    # 转化为浮点数
    data = torch.from_numpy(data)
    # 转化为张量
    x = data[:, (1, 2, 4, 5, 7, 8, 10, 11)].type(torch.FloatTensor)
    # print(x[0])
    # 此时的x代表每一个公司各方面的值,一共160个公司,现在只选择8个特征
    y = data[:, 0].type(torch.LongTensor)
    # 把标签也转化为张量
    # print(y)

    net = Net(8, 20, 2)
    opt = torch.optim.SGD(net.parameters(), lr=0.001, weight_decay=0.01)
    # 加了一个正则化 \lambda=0.01
    loss_func = torch.nn.CrossEntropyLoss()
    for step in range(200):
        # print("the step is: " + str(step))
        out = net(x)
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值