溫騰灝,鄭亮,朱婧雯,曾昭平
(上海立信會計金融學院,上海 201209)
當前,各家銀行都推出了各種各樣的理財產品,供人們去選擇購買。但是,面對如此多的理財產品,許多用戶在購買時無從下手。同時這些理財產品之間實際上的差異不大。一個能夠提供對理財產品信息進行篩選并整合,最后能供用戶進行挑選、購買理財產品的系統(tǒng)這時就變得非常重要[1]。
信息聚合技術常用來同質信息的管理及整合。最常見的應用之處在管理圖書方面,為了能夠快速便捷的找到需要的數據,圖書館采用信息聚合技術[2-4]。但是在理財產品方面,國內的信息聚合技術的應用就比較缺乏。通過瀏覽商業(yè)銀行的關于理財產品的網頁發(fā)現(xiàn)網站只是將理財產品根據收益率、期限等指標進行簡單排序呈現(xiàn),并沒有做到聚合成類的。其他的理財平臺,如京東金融、支付寶理財和360理財,前兩者同樣是和商業(yè)銀行的網站一樣簡單的根據一項指標排序,將全部的數據直接呈現(xiàn)給用戶,而360理財主要提供理財網頁的導航,根據理財產品種類的不同,提供方不同,分別提供導航。
本文設計了一個銀行理財產品管理系統(tǒng),用來解決當下理財產品信息太過繁雜,用戶很難精確找到自己所需要的產品的問題。本系統(tǒng)通過采集不同商業(yè)銀行的理財產品信息,提取產品特征進行信息聚合展示,同時構建一個理財產品的評價體系,并且通過收集分析用戶行為對理財產品進行綜合評價排序。
系統(tǒng)將管理員和用戶的登錄分開操作。管理員能夠直接管理用戶信息,還可以對爬取數據的管理,對信息進行聚合及其評價從而進行聚合效果管理、聚合結果管理、查看理財產品信息聚合,還可進行點擊量管理和產品或產品組收藏管理。
用戶登錄系統(tǒng)可查詢到個人信息、理財產品資料和自己的交易記錄,更改個人信息,還可以購買理財產品。用戶可對理財產品進行評論、點贊與分享。管理員主要負責對理財產品進行爬取和管理,并管理用戶權限。
本系統(tǒng)采用三層設計,主要根據其實現(xiàn)層次劃分為數據層、業(yè)務層和界面層。
●數據層:本系統(tǒng)數據層是設計系統(tǒng)底層基礎環(huán)境的搭建,選擇要采用的操作系統(tǒng)和數據庫,其中數據庫采用MySQL為數據庫服務器支撐軟件,為數據存儲和管理的核心部分,也是決定整個系統(tǒng)總體性能的關鍵所在。提供用戶和管理員進行增刪改查。
●業(yè)務層:該層是根據系統(tǒng)的需求,把各個模塊細分到各自的服務上,整體將系統(tǒng)分成日常管理、系統(tǒng)管理、查詢管理、報表管理、產品信息管理、數據緩存、日常交易監(jiān)控、日終報表八個模塊。主要提供用戶登錄注冊、購買產品的業(yè)務邏輯以及系統(tǒng)通用日志服務、權限管理控制。將使用Spring Boot集成。
●界面層:該層提供用戶接口,使用HTML+Java Script組件完成系統(tǒng)界面的開發(fā),使用Spring MVC完成系統(tǒng)API接口的實現(xiàn)。
系統(tǒng)管理員是針對理財產品管理系統(tǒng)本身進行管理的模塊,主要實現(xiàn)各類理財產品的爬取、清洗、存儲功能,用戶信息權限的設置管理功能以及理財產品的設置、修改、查詢功能。
管理員是系統(tǒng)的核心管理人員,要求在網上各大銀行或外企爬取理財產品,并進行清洗整合后保存到本地數據庫。主要爬取的對象有招商銀行、中國銀行、美國的Lending Club、Prosper和英國的Zopa。還要求提供管理員對用戶和產品進行相應的管理功能,例如用戶賬號管理、用戶購買權限管理設置等。
用戶是本系統(tǒng)的主要使用者。用戶可以在本系統(tǒng)進行登錄注冊,查詢自己的個人信息、理財產品的信息,購買理財產品后可以進行點評與分享,在個人界面能查詢到具體的交易記錄。
該功能最終實現(xiàn)的是通過使用爬蟲采集商業(yè)銀行的理財產品的信息,經過數據預處理以及聚合算法,對理財產品進行聚合分析顯示。功能的具體實現(xiàn)通過四個步驟:數據采集、數據預處理、聚類分析及結果顯示。
(1)數據采集
本系統(tǒng)使用爬蟲完成數據的采集,爬蟲的實現(xiàn)通過使用Scrapy框架。第一步:搭建爬蟲項目框架。第二步:框架配置文件編寫。第三步:數據存儲文件編寫。第四步:管道文件的編寫。第五步:蜘蛛文件的編寫。第六步:Scrapy項目與Django項目的API連接。
(2)數據預處理
第一步:讀取原始數據:本系統(tǒng)通過引入pandas包來讀取并且操作數據。
第二步:變量編碼。數據千奇百怪,有中文表示的,有英文表示的,還有數字表示的,為了方便計算機處理,統(tǒng)一處理成數字格式的。
第三步:缺失值處理。根據觀察爬取的原始數據得出預期年化收益率這一特征的缺失率較為嚴重,必須經過缺失值處理。
(3)無監(jiān)督學習-聚類分析
本系統(tǒng)選擇的聚類分析算法為K-means算法[5],該算法對于給定的樣本集,選定k個初識質心,迭代計算每個樣本點距離最近的質心并且標記自己的所屬的簇,直到質心不再發(fā)生變化。本系統(tǒng)將經過預處理的數據進行訓練,按照想要聚成的簇數,將具有相似性的理財產品聚合在一起,在算法的實現(xiàn)方面,直接調用sklearn庫所提供的方法即可實現(xiàn)聚類分析,代碼如下所示:
km=KMeans(n_clusters=10).fit(X_scaled)
(4)信息聚合展示
理財產品聚合結果前臺展示頁面,該功能主要上將訓練好的數據顯示在前臺,提供給用戶。由于剛訓練好的數據在數值上是經過預處理的,不能直接呈現(xiàn)給用戶,所以需要定義一個類,完成前臺和后臺數據之間的轉換匹配,使得用戶能夠得到所需要的、有意義的數據。
該功能通過系統(tǒng)自動評價以及用戶行為來綜合評價聚合結果。
(1)系統(tǒng)自動評價
該功能通過輪廓系數來評價聚合結果。輪廓系數是用來評估K-means聚類算法好壞的,輪廓系數計算公式(1):
其中,a(i)為樣本i到同簇其他樣本的平均距離,b(i)為樣本i到其他簇的所有樣本的平均距離。s(i)越接近1,說明樣本i聚類越合理。
本系統(tǒng)通過用戶在信息聚合展示頁面的頁面點擊操作來分析用戶的行為。通過用戶評價功能模塊獲取點擊事件以此觸發(fā)本功能模塊。在此功能中,通過公式(2)計算每一個收藏組的總點擊量,并且根據此數據進行收藏組與組之間的排序。在每個收藏組中,單個理財產品是根據單個理財產品的點擊量的大小進行簡單排序,計算公式(2):
其中,c(i)為每一個收藏組的總點擊量,n為每個收藏組中理財產品的總個數,a(x)為單個理財產品點擊量,b(x)為單個理財產品收藏量,d(i)為用戶點擊第 i個“收藏組”按鈕的總次數,w的取值為0.25,v的取值為0.3。將a(x)和b(x)的權重縮小的原因是存在某種情況,一個收藏組中的產品個數遠遠大于另一個收藏組中的產品個數,對于后一個收藏組是不公平的。所以為了排序的公平性,對于數值要加上適合的權重,將a(x)和 b(x)的重要度減少。w 取值為 0.25,v取值為0.3的原因是點擊量和收藏量相比收藏量更能說明該理財產品的對用戶的吸引程度。
(2)用戶行為評價
該功能完成的是通過頁面點擊事件收集用戶行為,傳送給后端進一步分析。本系統(tǒng)對于以下具體事件進行記錄分析:
第一,用戶點擊“了解更多”按鈕,說明用戶對于該產品抱有一定的興趣,想去了解關于該理財產品的更多信息,甚至是想要去購買該理財產品。
第二,用戶點擊“收藏組”按鈕,說明了兩點。其一,說明了用戶對于這一組的理財產品都有興趣,這一組理財產品的種類對于用戶更具有吸引力。其二,說明了這一組的理財產品聚合的效果比較好,同類相聚的較多,令用戶比較滿意。
第三,用戶點擊“收藏”按鈕,說明了用戶已經了解過或者想要去了解該理財產品,他將之收藏于個人收藏處,處于觀望、比較、選擇狀態(tài)。展現(xiàn)出了對于該理財產品的興趣,極有可能產生下一步的購買操作。
本系統(tǒng)運用了機器學習算法實現(xiàn)聚合的效果,將理財產品信息聚合展示給用戶,提供用戶挑選,總的來說給用戶帶來了便捷。但是本系統(tǒng)還有很大的擴展空間,后期可以完成更多銀行理財產品信息的爬取,并且可以根據用戶行為個性化推薦相應的理財產品,這將更加靠近國外理財公司提供的智能投顧服務。