版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第十一章
深度學習與數(shù)據(jù)分析
學習目標
熟悉不同類型的神經網絡模型的特點與區(qū)別掌握神經網絡模型搭建原理并能將其應用于金融市場分析中
本章導讀
深度學習是機器學習的一個分支,其主要采用的模型是神經網絡模型,因此,本章節(jié)將主要介紹有關人工神經網絡和深度學習的基本概念、相關模型以及優(yōu)化策略。人工神經網絡(artificialneuralnetworks,ANN),簡稱神經網絡(neuralnetwork,NN),是一種模擬人腦神經元網絡處理信息的數(shù)學模型。從機器學習的角度來看,神經網絡模型本質上是由具有非線性激活函數(shù)的神經元組成的模型。通過大量神經元之間的連接,神經網絡成為一種高度非線性的模型,神經元之間的連接權重就是需要學習的參數(shù)。11.1神經元11.2BP神經網絡11.3卷積神經網絡11.4循環(huán)神經網絡11.5深度學習模型優(yōu)化策略11.6
專題11基于深度學習的上市公司財務風險預警研究目錄CONTENTS神經元11.1
11.1神經元一個典型的神經元學習訓練模型可抽象為如下過程
11.2BP神經網絡1.前饋神經網絡
前饋神經網絡至少有三層,第一層為輸入層,最后一層為輸出層,其他中間層為隱藏層。
11.2BP神經網絡
11.2BP神經網絡通??捎商荻认陆捣ㄇ蠼馍鲜鰞?yōu)化問題。即首先初始化參數(shù),然后根據(jù)式(11.4)和式(11.5)迭代更新,逐漸縮小誤差:其中α為學習率,決定著目標函數(shù)能否收斂到局部最小值以及何時收斂到最小值。
11.2BP神經網絡2.BP算法
11.2BP神經網絡
11.2BP神經網絡圖11-3BP神經網絡預測效果例11.1
BP神經網絡應用實例以滬深300股指為例,建立BP神經網絡模型。預測步長設為15天,即用前15天的數(shù)據(jù)通過滑動窗口不斷預測下一天的收盤價及漲跌情況。特征變量包括開盤價、收盤價、最高價、最低價、交易量和交易額。為消除異常值和量綱影響,對數(shù)據(jù)進行歸一化處理。在Python中可利用tensorflow庫調用KerasAPI構建BP神經網絡。模型預測效果如圖11-3所示,可以看到股票漲跌在訓練集與測試集上的誤差,模型在測試集上的MAE、MSE較訓練集高,MAPE較訓練集低,測試集的整體預測準確率為67%,模型預測效果較好。
11.2BP神經網絡Python代碼演示#讀取數(shù)據(jù)df1=pd.read_excel(r'E//jrj1/Chapter10/hs300.xlsx',0)#df1=df1.iloc[3600:-10,1:]df1=df1.iloc[:,1:]df1.tail()##進行數(shù)據(jù)歸一化fromsklearnimportpreprocessingmin_max_scaler=preprocessing.MinMaxScaler()df0=min_max_scaler.fit_transform(df1)df=pd.DataFrame(df0,columns=df1.columns)#構造訓練集測試集y=pd.DataFrame(y.values,columns=['goal'])x=Xcut=10#取最后cut=10天為測試集X_train,X_test=x.iloc[:-cut],x.iloc[-cut:]y_train,y_test=y.iloc[:-cut],y.iloc[-cut:]X_train,X_test,y_train,y_test=X_train.values,X_test.values,y_train.values,y_test.valuesX=df.drop('close',axis=1)y=df['close']
11.2BP神經網絡#建立BP模型訓練:fromtensorflow.keras.modelsimportSequentialfromtensorflow.keras.layersimportDense,Activationfromtensorflow.keras.optimizersimportAdammodel=Sequential()#層次模型model.add(Dense(16,input_dim=5))#輸入層model.add(Activation('relu'))#添加激活函數(shù)model.add(Dense(4))#中間層model.add(Activation('sigmoid'))#添加激活函數(shù)model.add(Dense(1))#輸出層pile(loss='mean_squared_error',optimizer='Adam')#編譯模型model.fit(X_train,y_train,epochs=50,batch_size=256) #模型擬合:#在訓練集上的擬合結果y_train_predict=model.predict(X_train)y_train_predict=y_train_predict[:,0]y_train=y_train#在測試集上的擬合結果y_test_predict=model.predict(X_test)y_test_predict=y_test_predict[:,0]fromsklearn.metricsimportmean_absolute_errorfromsklearn.metricsimportmean_squared_errorimportmathdefmape(y_true,y_pred): returnnp.mean(np.abs((y_pred-y_true)/y_true))*100print('訓練集上的MAE/MSE/MAPE')print(mean_absolute_error(y_train_predict,y_train))print(mean_squared_error(y_train_predict,y_train))print(mape(y_train_predict,y_train))print('測試集上的MAE/MSE/MAPE')print(mean_absolute_error(y_test_predict,y_test))print(mean_squared_error(y_test_predict,y_test))print(mape(y_test_predict,y_test))#預測漲跌y_var_test=y_test[1:]-y_test[:len(y_test)-1]y_var_predict=y_test_predict[1:]-y_test_predict[:len(y_test_predict)-1]txt=np.zeros(len(y_var_test))foriinrange(len(y_var_test-1)): txt[i]=np.sign(y_var_test[i])==np.sign(y_var_predict[i])result=sum(txt)/len(txt)print('預測漲跌正確:',result)
11.3卷積神經網絡卷積神經網絡一般由卷積層、池化層和全連通層組成,如圖11-4所示圖11-4
CNN網絡流程圖
11.3卷積神經網絡
卷積神經網絡中卷積層(Convolutionallayer)由若干卷積核(即可學習的權重向量)組成,每個卷積單元的參數(shù)都經由反向傳播算法優(yōu)化得到。
卷積層的特點在于局部連接性與權值共享。如圖11-5所示,卷積層中的每一個神經元都只和前一層中某個局部窗口內的神經元相連,構成一個局部連接網絡,可以大幅減少訓練的參數(shù)。圖11-5全連通神經網絡與卷積神經網絡對比
11.3卷積神經網絡2.池化層
池化層(PoolingLayer),也叫匯聚層、子采樣層(SubsamplingLayer),其作用主要就是壓縮數(shù)據(jù)和參數(shù)的量,或者說是保留最顯著的特征,通過特征映射去除其中不重要的樣本,進一步減少參數(shù)數(shù)量。
由于卷積層可以減少網絡中連接的數(shù)量,但特征映射組中的神經元個數(shù)并沒有顯著減少,如果后面接一個分類器,分類器的輸入維數(shù)依然很高,很容易出現(xiàn)過擬合。為了解決這個問題,可以在卷積層之后加上一個池化層,從而降低特征維數(shù),避免過擬合。目前,池化的方法有很多,常用的池化方法有最大池化和平均池化兩種。
11.3卷積神經網絡3.全連通層
全連通層(fullyconnectedlayer,F(xiàn)C),即前面一層的每個神經元都與后面一層的相連接,在整個卷積神經網絡中起到“分類器”的作用。卷積層與池化層的作用在于提取分布式特征,而全連通層則將學到的“分布式特征表示”映射到樣本標記空間,對多次卷積后高度抽象化的特征進行整合。在CNN中,它可以直接把圖像降維成一堆序列。全連通層主要通過總層數(shù)、單個全連通層的神經元數(shù)和激活函數(shù)三個參數(shù)影響模型。
11.3卷積神經網絡例11.2CNN模型實例
卷積神經網絡(CNN)模型被廣泛應用于圖片識別技術,本例將采用內置手寫數(shù)字集作為示例數(shù)據(jù),通過keras模塊搭建CNN模型來進行手寫數(shù)字體識別。內置數(shù)據(jù)集已劃分出訓練集與測試集,訓練集中的輸入信息x為手寫數(shù)字的圖片,輸出信息y為圖片的標簽。如圖11-6所示,訓練集的第一張圖片為數(shù)字“5”的手寫體,其對應的y標簽也是類別數(shù)字“5”。圖11-6手寫數(shù)據(jù)集示例
11.3卷積神經網絡Python代碼演示importnumpyasnp;importpandasaspd;importmatplotlib.pyplotaspltfromkeras.datasetsimportmnistfromkeras.modelsimportSequentialfromkeras.layersimportDense,Dropout,Activation,Flattenfromkeras.optimizersimportadam_v2fromkeras.layers.normalization.batch_normalization_v1importBatchNormalizationfromkeras.utilsimportnp_utilsfromkeras.layersimportConv2D,MaxPooling2D,ZeroPadding2D,GlobalAveragePooling2Dfromkeras.layers.advanced_activationsimportLeakyReLUfromkeras.preprocessing.imageimportImageDataGenerator#圖像基本變換(X_train,y_train),(X_test,y_test)=mnist.load_data()#劃分訓練集和測試集plt.imshow(X_train[0],cmap='gray')plt.title('Class'+str(y_train[0]))#尺寸轉換X_train=X_train.reshape(X_train.shape[0],28,28,1)#尺寸變換X_test=X_test.reshape(X_test.shape[0],28,28,1)X_train=X_train.astype('float32')#類型轉換X_test=X_test.astype('float32')X_train/=255;X_test/=255;X_train.shape;number_of_classes=10Y_train=np_utils.to_categorical(y_train,number_of_classes)#類別變換Y_test=np_utils.to_categorical(y_test,number_of_classes)
11.3卷積神經網絡model.summary()#模型匯總pile(loss='categorical_crossentropy',optimizer=adam_v2.Adam(),metrics=['accuracy'])gen=ImageDataGenerator(rotation_range=8,width_shift_range=0.08,shear_range=0.3,height_shift_range=0.08,zoom_range=0.08)#圖像變換test_gen=ImageDataGenerator()#圖像處理train_generator=gen.flow(X_train,Y_train,batch_size=64)test_generator=test_gen.flow(X_test,Y_test,batch_size=64)#模型訓練model.fit_generator(train_generator,steps_per_epoch=60000//64,epochs=5,validation_data=test_generator,validation_steps=10000//64)score=model.evaluate(X_test,Y_test)#模型評估print('Testaccuracy:',score[1])#準確率得分predictions=model.predict(X_test)#模型預測classes=np.argmax(predictions,axis=1)predictions=list(predictions)actuals=list(y_test)#輸出預測值與實際值sub=pd.DataFrame({'Actual':actuals,'Predictions':predictions})sub.to_csv('./output_cnn.csv',index=False)
11.4循環(huán)神經網絡1.RNN單隱藏層的簡單循環(huán)網絡在時刻t的更新公式為h(t)=f(Whh(t-1)+Wxx(t)+bh)(11.9)其中,Wh為狀態(tài)-狀態(tài)權重矩陣,Wx為狀態(tài)-輸入權重矩陣,bh為偏置向量,f(·)為激活函數(shù)。將最終時刻輸出的隱藏層狀態(tài)h(T)看作整個序列的最終表示,輸入到分類器g(·)進行分類,即y(t)=g(h(T))(11.10)
11.4循環(huán)神經網絡2.LSTM
11.4循環(huán)神經網絡三個門it、ft、ot的取值均在0到1之間,表示以一定的比例允許信息通過。計算公式分別如下:it=σ(Wxi·xt+Whi·ht-1+bi)ft=σ(Wxf·xt+Whf·ht-1+bf)ot=σ(Wxo·xt+Who·ht-1+bo)其中σ(·)為Logistic函數(shù),其輸出區(qū)間為(0,1),W為對應的權重矩陣,bi為偏置矩陣。
11.4循環(huán)神經網絡圖9-15LSTM原理圖
11.4循環(huán)神經網絡3.GRU模型
11.4循環(huán)神經網絡圖9-16GRU原理圖
深度學習模型優(yōu)化策略11.511.5深度學習模型優(yōu)化策略在應用深度學習模型時通常面臨網絡優(yōu)化與網絡正則化兩大難題。一方面,神經網絡模型的優(yōu)化目標是能找到一個全局最優(yōu)解或較好的局部最優(yōu)解;另一方面模型優(yōu)化達到最優(yōu)解時可能帶來過擬合問題。11.5深度學習模型優(yōu)化策略網絡優(yōu)化:改善神經網絡優(yōu)化的目標是找到更好的局部最小值和提高優(yōu)化效率。目前比較有效的優(yōu)化思路有如下幾種:使用更有效的優(yōu)化算法來提高梯度下降優(yōu)化方法的效率和穩(wěn)定性。通過參數(shù)初始化和數(shù)據(jù)預處理來提高優(yōu)化效率。通過逐層歸一化來提高優(yōu)化效率。使用更好的超參數(shù)優(yōu)化方法。11.5深度學習模型優(yōu)化策略網絡正則化,即通過限制神經網絡模型復雜度,避免模型過擬合并提高模型泛化能力。在傳統(tǒng)的機器學習中,提高泛化能力的方法主要是限制模型復雜度,比如可通過約束參數(shù)的L1和L2范數(shù)來減小模型在訓練數(shù)據(jù)集上的過擬合現(xiàn)象。在訓練深度學習模型時,除L1和L2正則化外還會使用其他正則化方法:數(shù)據(jù)增強。主要應用于圖像數(shù)據(jù),通過算法對圖像進行旋轉、翻轉、縮放、平移等轉變,或引入噪聲等方法來增加數(shù)據(jù)多樣性。提前停止。其基本思想是設置一個和訓練集獨立的樣本集合,即驗證集(ValidationSet),并用驗證集上的錯誤來代替期望錯誤,當驗證集上的錯誤率不再下降或滿足停止條件時,停止迭代。丟棄法(Dropout)。在訓練時,隨機丟棄一部分神經元及其對應的連接邊,以避免過擬合。專題11基于深度學習的上市公司財務風險預警研究
11.6基于深度學習的上市公司財務風險預警研究我國“十四五”規(guī)劃將“健全金融風險預防、預警、處置、問責制度體系”列為實施金融安全戰(zhàn)略的重要舉措之一,2021年中央經濟工作會議同樣指出要“正確認識和把握防范化解重大風險”,并“完善金融風險處置機制”。近年來黑天鵝事件時有發(fā)生,全球系統(tǒng)性風險隱患不斷凸顯,進一步加劇企業(yè)的財務風險。在此背景下,結合系統(tǒng)性風險指標與前沿的深度學習算法,優(yōu)化我國企業(yè)財務危機的預測模型,提升企業(yè)財務風險預警效力,對優(yōu)化投資決策、強化企業(yè)風險管理、健全風險監(jiān)測預警機制、完善金融風險處置機制均有重要顯示意義。
11.6基于深度學習的上市公司財務風險預警研究傳統(tǒng)的財務風險預警方法通?;诮y(tǒng)計分析和規(guī)則模型,這些方法往往依賴于研究者對財務指標之間關系的猜測和經驗判斷。然而,隨著大數(shù)據(jù)技術的迅速發(fā)展和深度學習在各個領域的成功應用,越來越多的研究者和從業(yè)者開始關注和探索利用深度學習技術改進財務風險預警的方法和模型。深度學習是一種以人工神經網絡為基礎的機器學習方法,通過多層次的抽象和表示學習,能夠從大規(guī)模、非結構化、高維度的數(shù)據(jù)中提取有用的特征和模式。這使得深度學習在圖像識別、自然語言處理等領域取得了顯著的成就?;诖耍緦n}將結合深度學習構建上市公司財務風險預警模型,對我國上市公司的財務風險水平進行監(jiān)測與評估。
11.6基于深度學習的上市公司財務風險預警研究1.數(shù)據(jù)來源及預處理(1)數(shù)據(jù)來源及樣本選取本專題選取2020年到2022年A股上市公司為初始樣本,剔除金融行業(yè)公司后,“財務狀況異常”而首次被ST的上市公司總計115家。為正確預警公司財務困境,要通過比較ST公司與正常公司相關指標的異同,并且利用模型將兩類公司準確識別并且區(qū)分出來。本專題將以ST公司:非ST公司=1:2的比例選取正常公司作為配對樣本進行研究,配對時采用資產規(guī)模相當(總資產上下相差不超過20%)、所屬行業(yè)相同、會計年度一致的原則。最終樣本包含了115家ST公司和與之配對的230家正常公司,即總體的樣本公司數(shù)量為345家,三年樣本數(shù)據(jù)共1035個數(shù)據(jù)行。本專題中使用的公司財務數(shù)據(jù)來源于Wind數(shù)據(jù)庫。
11.6基于深度學習的上市公司財務風險預警研究(2)
變量構建本專題將采用公司是否被實施ST作為公司財務風險的衡量標準。根據(jù)證監(jiān)會規(guī)定,若上市公司連續(xù)兩個會計年度凈利潤為負或者最近一個年度的每股凈資產低于股票面值,公司將被執(zhí)行ST處理?;诖耍P椭械妮斎霐?shù)據(jù)和預測變量數(shù)據(jù)間隔設為兩年,即使用T年的財務數(shù)據(jù)和財報文本數(shù)據(jù),來預測T+2年公司是否會被實行ST。參考國內學者的研究成果,從反映上市公司盈利能力、成長能力、營運能力、償債能力、現(xiàn)金流量五個方面選取了35個財務指標作為特征變量。2.神經網絡模型設計(1)BPNN模型:基于反向傳播算法來訓練模型,并采用梯度下降法來調整網絡中的參數(shù),以最小化損失函數(shù)。(2)CNN模型:卷積層-池化層-卷積層-池化層-Flatten層-Dense層--Dropout層-全連接層-全連接層,第一層卷積層的神經元個數(shù)為256,卷積核大小為3,第二層卷積層的神經元個數(shù)為128,卷積核大小為3。池化層使用MaxPooling1D處理。最后一層Dense層的神經元個數(shù)為1。(3)RNN模型:RNN層-Dropout層-RNN層-Dropout層-Flatten層-Dense層,其中第一層RNN神經元個數(shù)設置為128個,第二層RNN神經元個數(shù)設置為100個,第一層Dropout層丟棄0.2。第二層Dropout層丟棄0.3,最后搭建Flatten層和全連接層。
11.6基于深度學習的上市公司財務風險預警研究2.神經網絡模型設計(4)GRU模型:GRU層-Dropout層-Dense層--Dropout層-Dense層-Dropout層-Dense層,其中第一層GRU神經元個數(shù)設置為256個,第一層Dropout層丟棄0.2,第二層Dropout層丟棄0.2,最后添加Dense層。(5)LSTM模型:LSTM層-Dense層-Dropout層-LSTM層-Dense層-Dropout層-Dense層-Dense層,其中第一層神經元個數(shù)設置128個,添加全連接層,激活函數(shù)選擇relu,第一層Dropout層丟棄0.2,第二層Dropout層丟棄0.2,最后使用一個具有1個神經元和使用sigmoid激活函數(shù)的全連接層,用于進行二分類任務。所有模型使用develop_pile編譯模型,其中l(wèi)oss參數(shù)設置為binary_crossentropy表示二元交叉熵損失函數(shù),optimizer參數(shù)設置為adam表示使用Adam優(yōu)化器進行參數(shù)更新,metrics參數(shù)設置為accuracy表示評估指標為準確率。
11.6基于深度學習的上市公司財務風險預警研究3.模型比較與結果分析本專題研究基于Python3.0框架,使用Tensorflow搭建神經網絡模型。
首先以7:3的比例將數(shù)據(jù)集劃分為訓練集與測試集,基于訓練集訓練模型,然后基于搭建設計好的深度學習模型,對測試集進行預測。
預測窗口長度設為7,即用前7天的股票交易數(shù)據(jù)預測未來一天的股票收盤價。
為考察不同模型對財務風險的預測效果,選擇Accuracy、precision、recall、f1-score、roc值作為評價指標,對比不同模型在訓練集與測試集上的預測效果。
11.6基于深度學習的上市公司財務風險預警研究如表11-1所示,在本專題中,CNN模型在測試集上準確率最高,達到了81%,對財務危機的預警較為準確;其次是GRU模型,準確率為79%,且AUC值較高,達到了86%,預警也較為準確。除LSTM模型外,基于神經網絡的深度學習模型預測準確率均在75%以上,而邏輯回歸模型準確率最低,預測準確率為73%,不如多層迭代訓練的深度學習模型。
11.6基于深度學習的上市公司財務風險預警研
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球車展品牌形象合作合同協(xié)議4篇
- 2025年冷鏈物流產品運輸全程監(jiān)控合同3篇
- 2025年度生態(tài)修復工程承包山林合同書2篇
- 2024版香港高管聘用合同
- 2025年度智能倉儲承建與自動化裝修服務合同4篇
- 2024版化妝品供應合同協(xié)議書范本
- 檢查檢驗結果互認知識培訓考核試題
- 2024版技術開發(fā)合同:甲方與乙方共同研發(fā)新技術的具體內容
- 2025年度五星級酒店廚師員工勞動合同范本4篇
- 2025年度智能豬舍承包服務合同3篇
- 2025年度版權授權協(xié)議:游戲角色形象設計與授權使用3篇
- 2024年08月云南省農村信用社秋季校園招考750名工作人員筆試歷年參考題庫附帶答案詳解
- 防詐騙安全知識培訓課件
- 心肺復蘇課件2024
- 2024年股東股權繼承轉讓協(xié)議3篇
- 2024-2025學年江蘇省南京市高二上冊期末數(shù)學檢測試卷(含解析)
- 四川省名校2025屆高三第二次模擬考試英語試卷含解析
- 《城鎮(zhèn)燃氣領域重大隱患判定指導手冊》專題培訓
- 湖南財政經濟學院專升本管理學真題
- 考研有機化學重點
- 全國身份證前六位、區(qū)號、郵編-編碼大全
評論
0/150
提交評論