dnn模型 list index out of range_基于svm的财务预警模型

本文使用A股上市公司数据,通过财务指标建立SVM预警模型,解决dnn模型list index out of range问题。通过调整核函数、Gamma和C参数,优化模型性能,最终在特定阈值下获得0.683的精度和0.726的召回率。模型效果受特征选择和样本不平衡影响,未来可优化这两个方面。
摘要由CSDN通过智能技术生成

前言

       本文将我国A股上市公司作为研究对象,选取了A股 2015-2019 年度被 ST 或被 *ST上市公司,剔除了部分非财务原因导致ST或*ST的上市公司。财务指标选择了T-3期的资产负债率、流动比率、应收账款周转率等10个财务指标。

数据收集及预处理

        导入所需要库   

import tushare as tspro = ts.pro_api('*')  #tushre的tokenimport pandas as pdimport time

         通过tushare.pro取得上市公司信息列表 

data_Lcompany=pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol')data_Dcompany=pro.stock_basic(exchange='', list_status='D', fields='ts_code,symbol')data_Pcompany=pro.stock_basic(exchange='', list_status='P', fields='ts_code,symbol')data_company=pd.concat([data_Lcompany,data_Dcompany,data_Pcompany]

        读取CSMAR数据库导出的样本数据并做数据预处理

data_sample=pd.read_excel(r"C:\Users\hasee\Desktop\样本.xlsx")data_sample.columns=data_sample.iloc[0]data_sample.drop(index=0,inplace=True)data_sample.loc[:,"执行日期"]=pd.to_datetime(data_sample.loc[:,"执行日期"])data_sample["年份"]=pd.DatetimeIndex(data_sample.loc[:,"执行日期"]).yeardata_sample=data_sample[["证券代码","年份"]]data_sample.columns=["symbol","年份"]data_sample=pd.merge(data_sample,data_company,how='left',on="symbol"

        对样本数据进一步预处理,与正常公司数据合并,通过tushare.pro读取财务指标并写入csv

year=[2015,2016,2017,2018,2019]createVar = locals()for j in year:    createVar["data_sample_"+str(j)]=data_sample[data_sample["年份"]==j]    createVar["data_origin_"+str(j)]=pd.merge(data_Lcompany,createVar["data_sample_"+str(j)],how='outer')                                         createVar["data_origin_"+str(j)]["label"]=createVar["data_origin_"+str(j)]["年份"].map({j:0})                                            createVar["data_origin_"+str(j)].fillna(1,inplace=True)    print(j)                                              del createVar["data_origin_"+str(j)]["年份"]    for i in range(createVar["data_origin_"+str(j)].shape[0]):        print(i)        if i==0:            createVar["fina_indicator_"+str(j)]=pro.query('fina_indicator', ts_code=createVar["data_origin_"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值