林昌輝
(福建船政交通職業(yè)學(xué)院,福建福州 350001)
基于改進聚類算法在金融用戶投資推薦中的應(yīng)用研究
林昌輝
(福建船政交通職業(yè)學(xué)院,福建福州 350001)
在充分分析傳統(tǒng)K-means和BIRCH聚類算法優(yōu)缺點的基礎(chǔ)上,提出改進的基于核心樹的增量聚類算法,該算法可以很好地完成金融投資推薦任務(wù),在一定程度上降低了金融用戶投資風(fēng)險,具有較強的實踐意義。
金融時間序列數(shù)據(jù);聚類算法;K-means;BIRCH;核心樹
在經(jīng)濟全球化的支持下,金融行業(yè)產(chǎn)生的金融時間序列數(shù)據(jù)呈指數(shù)增長,積壓在金融行業(yè)中的數(shù)據(jù)越來越多,依靠人工或者簡單的計算模型往往很難得到精確計算結(jié)果。金融時間序列數(shù)據(jù)的挖掘和處理是金融信息化的趨勢,趨于成熟化的數(shù)據(jù)挖掘算法將會給擁有大量有意義數(shù)據(jù)的金融行業(yè)帶來越來越多的機遇[1]。
研究聚類算法在金融行業(yè)的用戶投資推薦中的應(yīng)用,通過聚類算法分析已知的金融股票或基金的時間序列數(shù)據(jù),給出股票或基金的走勢,為用戶投資提供推薦建議。由于股票與基金都是有較大風(fēng)險的投資,若在投資之前能夠通過數(shù)據(jù)分析出一些有意義的指導(dǎo)信息,可以從很大程度上為用戶規(guī)避投資的風(fēng)險,進一步提高用戶的投資收益。
金融行業(yè)中采集到的數(shù)據(jù)一般都是金融時間序列數(shù)據(jù),金融時間序列數(shù)據(jù)是一系列隨著時間變化的數(shù)據(jù),一般變化的時間間隔是等間隔的[2]。計算機只能處理離散變化的金融時間序列數(shù)據(jù),通常稱之為離散數(shù)字時間序列數(shù)據(jù)。
金融時間序列相關(guān)研究分析經(jīng)歷了較長時間的發(fā)展,早期的分析方法通過數(shù)學(xué)建模方法進行,從時間序列數(shù)據(jù)中提取出基本特征并建立數(shù)學(xué)模型,根據(jù)數(shù)學(xué)模型對時間序列數(shù)據(jù)進行數(shù)理統(tǒng)計分析。傳統(tǒng)方法在小規(guī)模金融時間序列數(shù)據(jù)分析中取得了不錯的研究進展。近年來,隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,呈指數(shù)增長的金融時間序列數(shù)據(jù)冗余量大,更新快,傳統(tǒng)處理方法越來越難以有效處理,研究者逐漸轉(zhuǎn)而研究機器學(xué)習(xí)的方法來應(yīng)對日益龐大的金融時間序列數(shù)據(jù)。
聚類是數(shù)據(jù)挖掘技術(shù)中一種十分重要的分析手段,在數(shù)據(jù)挖掘和模式識別等研究領(lǐng)域都有涉及[3]。數(shù)據(jù)聚類是把不同數(shù)據(jù)之間的“相似程度”作為參照物,然后把數(shù)據(jù)劃分成不同的類別,讓同類內(nèi)部的相似度大,而不同類之間的相異度大。常見的聚類算法包括基于層次的BIRCH聚類方法和基于分區(qū)的K-means聚類方法。
BIRCH(Balanced iterative reducing and clustering)即迭代的平衡約減和聚類算法[4]。該算法通過讀取每一個輸入的對象(可以是上文金融時間序列經(jīng)過約減以后的特征)建立起特征樹,通過特征樹的約減來完成聚類過程,該方法是一個增量的方法,通過不斷增加樣本完成聚類過程,由于可以控制特征樹的大小,所以可以控制內(nèi)存大小使得算法可以完成指定大小內(nèi)存的數(shù)據(jù)集的聚類。
BIRCH算法能夠靈活控制特征樹的結(jié)構(gòu)和大小,對于小規(guī)模數(shù)據(jù)量的聚類效果處理靈活、方便。但是對于冗余量較大的數(shù)據(jù)進行聚類,則需要為其建立起一棵龐大的核心樹,需要消耗大量的計算時間消耗。
K-means算法[5]通過給出的輸入聚類類別數(shù)k,隨機給出k個聚類簇中心,按照上述K近鄰算法的思想,將不同的數(shù)據(jù)通過計算相似度分配到k個聚類簇中。之后,重復(fù)計算各個簇的中心,通過平均的法則,計算出每個聚類的新的聚類簇中心。然后,重復(fù)上述步驟更新各個樣本到對應(yīng)的聚類簇中,通過不斷迭代得到最后的結(jié)果。
K-means算法面對冗余量較大的數(shù)據(jù)具有優(yōu)秀的聚類結(jié)果,但是其處理靈活性較差,不能針對樣本的分別形態(tài)合理的為所處理的樣本數(shù)據(jù)選擇合適的聚類過程。
鑒于BIRCH與K-means都有自己的優(yōu)點與缺點,而兩者之間的缺陷可以由對方進行彌補,本文將兩個算法相結(jié)合,構(gòu)建出基于核心樹的聚類算法,利用概算完成金融用戶投資推薦[6]。
基于核心樹的聚類算法包括以下步驟:
(1)利用BIRCH算法建立數(shù)據(jù)集對應(yīng)聚類特征樹;
(2)利用K-means算法處理聚類特征樹的每一個葉子節(jié)點,采用本文提出的改進策略對聚類特征數(shù)據(jù)實施保留核心數(shù)據(jù),去除冗余數(shù)據(jù)。
核心樹初始化規(guī)則如下:
(1)從特征庫中隨機等量抽取特征,采用歐式距離進行K-means初始化,劃分為K個類別;
(2)計算出相應(yīng)類別各樣本與中心距離,保存距離信息并壓縮作為核心數(shù)據(jù)。
(3)利用BIRCH算法構(gòu)造出核心樹的各個葉子節(jié)點,將K個類別的中心點作為核心樹的K個葉子節(jié)點,并構(gòu)造核心樹。
核心樹的構(gòu)造過程如下:
(1)讀入每個類別中心點數(shù)據(jù),并判斷第Ci個中心點是否符合初始化規(guī)則,若符合,則將該中心點插入到當(dāng)前節(jié)點中,否則轉(zhuǎn)到第2步。
(2)判斷當(dāng)前操作的第Ci個中心點是否為葉子節(jié)點,若是,則轉(zhuǎn)到第3步;不是,則轉(zhuǎn)到第4步。
(3)計算第Ci個節(jié)點到所有中心點的距離,排序后選擇最小中心點Di,對Di節(jié)點,繼續(xù)重復(fù)第1步進行搜索。
(4)當(dāng)節(jié)點Ci是葉子節(jié)點時,分裂該葉子節(jié)點,采用最遠距離算法計算分裂后的兩個葉子節(jié)點位置并更新相關(guān)距離。最后判斷分裂后的葉子節(jié)點中的中心點個數(shù)是否滿足小于閾值T,若小于,則完成構(gòu)建過程,否則,重復(fù)執(zhí)行第4步直到滿足為止。
構(gòu)建出初級核心樹之后,采用K-means算法對原始特征數(shù)據(jù)處理,并完善特征樹。完善核心樹過程如下:
(1)讀入特征Xi后,計算Xi與各個類別中心點之間的距離,排序后選擇距離最短的類別,并將該類別作為聚類路徑選擇,根據(jù)聚類路徑向下計算。
(2)若特征Xi通過聚類路徑到達葉子節(jié)點i時,計算特征Xi與葉子i對應(yīng)中心節(jié)點距離Di,若Di<=T,則可以將該特征歸類為i類。否則,計算特征Xi與其他葉子中心節(jié)點之間的距離。
(3)若特征Xi歸類為i類,將距離結(jié)果Di與中心半徑p相比較,若Di<=p,則該特征成為該類別的核心數(shù)據(jù)。否則Di>p,則該特征成為該類別的非核心數(shù)據(jù)。
(4)隨著每個葉子(類別)中的核心特征數(shù)據(jù)增加,需要重新計算每個類別的中心點,文中通過計算核心特征的比例作為是否更新聚類中心點。設(shè)核心特征數(shù)據(jù)的個數(shù)為core,總特征數(shù)據(jù)個數(shù)為num,核心特征數(shù)據(jù)比例由式(1)計算:
其中,參數(shù)p為聚類的類別發(fā)散度,p越小說明該聚類中心的數(shù)據(jù)越緊湊,聚類半徑越小,反之亦然。利用發(fā)散度p與閾值2進行判斷,若p>2說明該聚類出現(xiàn)松散,需要更新聚類中心。
每當(dāng)讀入金融時間序列特征,將該特征與核心樹的根節(jié)點所有孩子節(jié)點做比較,找出對應(yīng)的距離最近的聚類中心點,并將該特征加入到相應(yīng)子樹。若找不到聚類中心,則該特征屬于新到樣本,為其建立一個新的類別,該數(shù)據(jù)作為類別中心點,并在核心樹上增加一個新的葉子節(jié)點。
綜上所述,本文提出的完善核心樹算法流程如下:
(1)從內(nèi)存中依次讀取特征數(shù)據(jù),將特征數(shù)據(jù)與核心樹所有節(jié)點做歐式距離比較,找出距離最近分支作為搜索路徑,通過該路徑逐步向葉子節(jié)點發(fā)起搜索。
(2)當(dāng)該特征數(shù)搜索至葉子節(jié)點后,比較特征數(shù)據(jù)與中心節(jié)點的歐式距離,若該距離比閾值小,則該特征屬于該分支類別,并轉(zhuǎn)入第3步操作。若該距離比閾值大,則說明該特征不屬于任何類別,應(yīng)開辟新的類別。
(3)若特征屬于對應(yīng)類別,比較特征與聚類半徑的歐式距離,若小于聚類半徑,則該特征屬于該類別的核心特征,否則屬于非核心特征。分別存入對應(yīng)的鏈表中,轉(zhuǎn)入第4步。
(4)通過核心特征比例判斷是否更新聚類中心位置,若需要更新,則將核心特征鏈表中的數(shù)據(jù)取出,通過迭代的方式進行聚類中心位置的更新,更新聚類中心位置后,繼續(xù)讀取內(nèi)存中余下的特征數(shù)據(jù),轉(zhuǎn)到第1步。
(5)讀完所有特征后,完善后的核心樹中每個葉子節(jié)點分別表示一個聚類類別。通常情況下,有些聚類類別會擁有較大的特征數(shù)據(jù)空間,這時候采用上文提出的最遠距離分裂法,將該葉子節(jié)點分裂為兩個葉子節(jié)點,轉(zhuǎn)到第1步。
改進算法的基本時間復(fù)雜度滿足樹形結(jié)構(gòu)的O(nlogn),與傳統(tǒng)K-means算法相比,該算法的時間復(fù)雜度低,效率高。正常情況下重新計算某個類別的聚類中心需要使用所有的數(shù)據(jù),文中則僅僅通過保存的核心數(shù)據(jù),迭代的求解聚類的中心,大大減少了計算的時間復(fù)雜度,核心數(shù)據(jù)造成“離群點”的概率也會大大降低,計算過程相對簡單,迭代更新聚類中心效果更好。
本文針對上海證券交易所的數(shù)據(jù)進行金融用戶投資推薦研究,通過采集所有用戶的金融投資情況的歷史時間序列數(shù)據(jù)進行聚類,并為本文提出的核心樹算法構(gòu)建出一個完整的核心樹模型,該模型可以很好的進行用戶投資的預(yù)測和推薦。
在分析過程中,提取上海證券交易所的一些金融用戶的投資情況的金融時間序列數(shù)據(jù)作為訓(xùn)練樣本,這些樣本有多個金融用戶投資推薦的金融資產(chǎn)或者股票投資與對應(yīng)的投資收益情況,本文采取為期3個月的訓(xùn)練數(shù)據(jù),在該段時間內(nèi)對各個金融資產(chǎn)或者股票的收益做出判斷,由于金融時間序列的數(shù)據(jù)為離散化的數(shù)據(jù),所以本文先將對應(yīng)的收益結(jié)果分為幾個不同的等級,用集合D來表示金融資產(chǎn)或股票的收益情況D={‘無’、‘很少’、‘少’、‘較少’、‘一般’、‘較多’、‘很多’、‘特別多’、‘極多’}一共九個等級,在聚類結(jié)果中,將對應(yīng)的情況通過該九個類別展示給用戶,用戶通過相應(yīng)的投資收益比的情況即可確定出自己需要的投資類別。
在表1中,給出了在2013年4-6月的上海交易所的部分金融投資的收益情況,作為本文實驗的一些記錄片段[7]。
表1 金融用戶投資收益比的相關(guān)情況
根據(jù)上述數(shù)據(jù)構(gòu)造出本文的核心樹如圖1所示:
從核心樹的結(jié)果可以看出,按照聚類結(jié)果來分,個人用戶投資收益比高而且交易量較大的,可以推薦給金融用戶投資的編號分別為{1,2,3,4,6,7,9,15,19},這些金融資產(chǎn)的投資在將來會有更高的收益,更適合金融用戶在金融資產(chǎn)上的投資。
本文提出改進的基于核心樹的增量聚類方法,對上交所的股票信息作為實驗數(shù)據(jù)進行聚類挖掘。實驗結(jié)果表明,本文提出的改進的基于核心數(shù)的增量聚類算法能夠很好的完成為金融用戶投資推薦,從一定程度上降低了金融投資的風(fēng)險,增強了金融市場的穩(wěn)定性,具有較強的積極作用。
[1]劉濤.?dāng)?shù)據(jù)挖掘技術(shù)在金融領(lǐng)域的應(yīng)用[J].天津科技,2015,(2).
[2]陳孝全,劉波.基于支持向量機?;淖C券指數(shù)預(yù)測[J].計算機技術(shù)與發(fā)展,2015,(4).
[3]張成虎,李霖魁.基于信息融合的多層次多因素客戶洗錢風(fēng)險綜合評估研究[J].湖南社會科學(xué),2015,(1).
[4]仰孝富,齊建東,吉鵬飛,等.一種CF樹結(jié)合KNN圖劃分的文本聚類算法[J].計算機工程與應(yīng)用,2015,(6).
[5]朱燁行,李艷玲,崔夢天,等.一種改進K-means算法的聚類算法CARDBK[J].計算機科學(xué),2015,(3).
[6]侯榮濤,路郁,王琴,等.基于精細簇的K-Means文本聚類[J].計算機工程與設(shè)計,2015,(7).
[7]陳天怡.銀行業(yè)在大數(shù)據(jù)時代發(fā)展的機遇和挑戰(zhàn)[J].甘肅科技縱橫,2015,(7).
[編校:張芙蓉]
Application Research of Financial User Investment Recommendations Based on Im proved Clustering Algorithm
LIN Changhui
(Fujian Chuangzheng Communications College,F(xiàn)ujian Fuzhou 350001)
Based on fully analyzing themeritand demerit of traditional k-means and BIRCH clustering algorithm,this article proposes an improved incremental clustering algorithm based on coretree.Thismethod can completewell the task of financial investment recommendation,which can reduce the risk of financial user investment,and have a better practical significance.
financial time series data;clustering algorithm;k-means;BIRCH;core-tree
F224
A
1671-9654(2015)00-047-05
10.13829/j.cnki.issn.1671-9654.000141
2015-10-14
林昌輝(1981-),男,福建福州人,助教,經(jīng)濟學(xué)碩士,研究方向為西方經(jīng)濟學(xué)。