摘要: 為了應用專業數據軟件Matlab,提高供電企業網站對用戶信用分析的處理能力,在應用MatLab提供的MCR,實現Web網站對數據分析處理的功能同時,通過源碼分析和進程跟蹤對MCR與Java的結合與應用的過程進行仔細的對比分析。在不同的部署環境中,設置好應用MCR所需的相同環境變量后,對Web網站運行情況的結果進行對比,整理出各種由于MCR本身與Java版本造成的沖突,導致Java網站無法正常應用MCR處理數據的解決方案。該方案為相關業務領域開發提供了有效的技術支持,創造了很好的社會效益和經濟效益。
關鍵字: Web應用; MatLab; Java; MCR
中圖分類號: TN964?34 文獻標識碼: A 文章編號: 1004?373X(2013)06?0056?03
0 引 言
利用MatLab(MATrix LABoratory)專業軟件對數據處理的能力,可以充分利用各種數學理論,提高Web網站的數據挖掘、分析、處理能力。然而,目前已知的相關內容都是簡單的應用方法描述,并無對相應問題的處理方案。本文在描述Web網站中應用MCR進行開發的流程同時,進一步解決了各種可能遇到的問題,為類似開發提供了完善的解決方案。
1 Java Web網站應用Matlab流程
1.1 Web應用MCR(Matlab Compiler Runtime)過程說明
(3)在Setting中設置General,在Generate Verbose Output前打勾,Object Instances Share MCR則不打勾。
(4)設置完成后,將編譯好的Logistic.m文件拖動到項目默認的Logisticclass文件夾下,再點擊編譯按鈕,生成對應jar包Logistic.jar[2]。
1.1.2 設置Web網站服務器環境變量
Web網站是以一個平臺設置的,簡單以tomcat部署的網站為例,使用的是jdk1.5.0_08。
(1)確認服務器上已經安裝jdk1.5.0_08和tomcat,且網站已經部署[3]。
(2)將Matlab安裝路徑\R2008a\toolbox\compiler\deploy\win32下的MCRInstaller.exe復制到服務器上,并安裝Matlab Compiler Runtime到默認的C盤。
(3)修改環境變量,配置JAVA_HOME,CLSSPATH和PATH后,檢查jdk,javabuilder等路徑。需要注意的是,jdk版本需要與Matlab生成jar包的jdk版本最好一致[4]。
1.2 JAVA_HOME路徑
1.4 Path路徑
1.6 網站定時任務
1.7 各種問題的解決方案
MCR一直掛起的問題解決方案:
在Matlab編譯的時候,有些人點選了 Object Instances Share MCR,實際上會造成啟動Logisticclass后,就會始終啟動MCR,而不會結束,形成掛起,這個在Main的靜態方法中,大家可以試驗得到。
就是為了事先定義Logisticclass傳遞給DAO進行數據處理
1.8 MCR環境變量無法找到的解決方案注意事項
(1)首先檢查系統環境變量path,java_home,classpath是否有遺漏。
(2)如果是使用Weblogic服務時,注意需要保證jdk一致。需要專門設置Matlab_JAVA的變量,具體應當指向Weblogic安裝時安裝的目錄下,如D:\bea\jdk150_04\jre。
(3)如果都確定沒有遺漏,依舊有路徑問題“Failed to find the runtime libraries, required by Matlab Builder JA, on system path“這樣的錯誤。則要在系統調用前,指定“java.library.path”屬性, System.setProperty(\"java.library.path\", \"C:\\Program Files\\Matlab\\Matlab Compiler Runtime\\v78\\runtime\\win32\");此路徑,由服務器安裝的路徑進行相關設置。
2 相關技術介紹
2.1 Matlab
Matlab是美國MathWorks公司出品的商業數學軟件,用于算法開發、數據可視化、數據分析以及數值計算的高級技術計算語言和交互式環境,主要包括Matlab和Simulink兩大部分。它提供的Matlab Compiler Runtime[6]與Matlab Builder JA[7]聯合工作可以為Java環境提供數據處理、分析、計算等功能[8]。
2.2 Logistic模型
Logistic模型是由Martin于1977年被提出,用以預測公司的破產和違約概率的模型。此模型根據銀行,投資者的風險偏好設定風險警戒線,以此進行風險定位。其預測能力優于Z?Score和ZETA模型[9]。1983年,Madalla采用Logistic模型區別違約與非違約貸款申請人,并計算出違約概率p≥0.551時是風險貸款,p<0.551時是非風險貸款[10]。David West于2000年研究表明,Logistic具有很高的判別準確率。高于神經網絡模型和統計分量模型[11]。目前為止,眾多研究表明,Logistic回歸模型不要求數據滿足正態分布。因此,在滿足正態分布的條件下,Logistic回歸模型與判別分析模型具有相同的判別準確率,而在不滿足正態分布的條件下,Logistic回歸模型具有更高的精度[9]。
3 應用分析
本解決方案特別適用于需要對數據深入分析,進行各種科學計算的應用網站系統,例如,客戶信用分析系統。電力營銷對客戶信用風險分析的場景中,需要通過對數據的進一步分析[12],通過層次信用模型對用戶的信用進行計算,再根據抽樣的信用數據,通過二元Logistic邏輯回歸模型進行分析,利用Matlab語言,對數據進行處理后,計算出用戶各項風險參數權重,最終可以分析出用戶在未來違約的可能概率,從而為電力公司提供客戶安全風險依據。
4 結 語
本文專門針對在Web中應用Matlab Compiler Runtime (MCR)時的各種問題,提供了對應的解決方案,在一定程度解決了由于Matlab提供的JavaBuilder(Matlab Builder for Java)暫未完善導致的網站部署問題,為類似開發提供了完善的解決方案。今后會在解決方案型的基礎上繼續完善,更深入地研究應用各種數學工具進行科學計算的優化、容錯策略。
參考文獻
[1] 王正盛. Matlab數學工具軟件簡明教程[D].南京:南京航空航天大學,2002.
[2] 楊曉霞,侯銳鋒. Visual C#.NET,Delphi,Java與Matlab接口技術的研究[J].云南大學學報:自然科學版,2008(z2):247?249.
[3] 陳宏希,鄒益民.用Matlabcontrol實現Java與Matlab的混合編程[J].工業儀表與自動化裝置,2012(3):27?30.
[4] 張崇明,汪春梅,朱品昌,等.使用Java擴展Matlab[J].計算機應用與軟件,2006(6):1563?1565.
[5] 馮文龍,雷景生.基于Web服務的存儲網格數據交換[J].計算機工程,2007,33(19):109?111.
[6] 向遙,李宏,謝政.運用Java編程擴展Matlab虛擬現實的交互功能研究與實現[J].計算技術與自動化,2006(1):83?85.
[7] 楊斌.Linux系統下Java與Matlab混合編程及應用[J].電腦編程技巧與維護,2010(8):29?31.
[8] 林美,呂新安,齊從謙.基于Matlab與Java的混合編程研究及實現[J].農業網絡信息,2006(12):31?34.
[9] MARTIN D. Early warning of bank failure:a logit regression approach [J]. Journal of Banking and Finance, 1977 (3):249?276.
[10] MADALLA S G. Limited?dependent and qualitative variables in econometrics [M]. Cambridge:Cambridge University Press, 1983.
[11] WEST D. Neural network credit scoring models [J]. Computer Operations Research, 2000, 27:1131?1152.
[12] 劉冰寒.信息系統風險評估及量化方法研究[D].濟南:山東建筑大學,2011.