王 博
(西北大學 現代學院,陜西 西安 710130)
隨著互聯網的發展,人們的生活和工作已經離不開數據的支持。因此,我國的信息產業在飛速發展的同時,帶動了大數據時代信息的海量增加。人們已經被各種各樣的數據包圍。隨著深度學習、大數據等新技術的興起,移動電子產業快速發展。依托數學建模系統,人們可以在一定程度上提高工作效率,加強創新意識,開拓創新思維,培養創新精神,提高實踐能力。數學建模為工作實踐提供了一個平臺[1]。
為了開發基于機器學習的可視化系統,人們必須堅持系統設計完整性的原則,這是軟件開發最重要的特征??梢暬到y的完整性在于系統各個子模塊之間的交互與協作,要想在負載的環境下運行可視化系統并實現系統所具有的功能,不僅是子模塊功能的簡單添加,而且是子模塊之間的協作,使機器學習背景下的可視化系統中的各個子模塊之間可以相互協作、相互補充。
可視化的基本功能是讓用戶在短時間內獲得界面數據所表達的信息。因此,在開發和設計可視化系統時,設計者應考慮用戶交互性操作。該系統的開發側重于過程,而不是機器學習可視化的結果。因此,為了讓用戶充分理解機器學習算法的上下文,為機器學習算法的每個階段提供視覺支持。用戶可以輕松地用鼠標與界面交互,當用戶想知道界面上的按鈕是什么意思時,可以將鼠標放在這個位置,然后鼠標會自動顯示操作的相關信息[2]。該系統的主要目的是使用戶能夠更方便、簡單地處理數據,從而有效地利用機器學習算法解決實際問題。
基于機器學習的可視化數學建模系統設計,本系統是采用Web界面的框架可視化技術。站在軟件和硬件的角度對該技術的可行性進行分析,在系統的硬件中,絕大多數計算機都可以滿足系統的發展;而在系統軟件方面,用戶隨時隨地都可以在網絡和計算機設備的支持下,登錄瀏覽器進行訪問,使分析數據的顯示方便靈活。根據具體需求和數據量,純Web界面的可視化框架具有顯著效果。在Web前端使用可視化框架可以大大縮短系統的開發周期。系統支持d3.js,JavaScript,jQuery,bootstrap等Web界面技術。此外,由于以下3個主要原因,Web前端應用程序變得越來越流行。
(1)使用方便,在網絡環境下可以隨時隨地使用,且維護更便捷。
(2)輕量級代碼量,簡潔大方,具有較高的可拓展性,且學習成本較低。
(3)移動端的更新速度快,使應用程序的更新頻率也更快。
該系統采用分層結構。分層架構設計方案旨在使開發人員能夠實現每一層的功能,使邏輯更加清晰,降低系統耦合度,并最小化一層與相鄰層之間的關系。同時,它也有助于未來的維護和修改。顯示系統的結構如圖1所示。系統架構自上而下分為5層,即可視化表示層、用戶交互層、數據層、核心算法層以及基礎平臺層。除了專注于實現這一層結構外,每一層都應該調用下一層來提供自己的服務,而不知道實現過程,同時也應該為上級服務。分層設計可以使系統開發更加標準化,并促進層間的邏輯重用[3]。
(1)基礎平臺層:平臺層主要包括主機、網絡、編輯器等,系統主要為機器學習可視化系統提供軟件環境與硬件基礎設施。基礎平臺層是保障系統正常開發的關鍵所在。
(2)數據層:對于可視化系統來說,數據顯示是非常重要的一個部分。數據顯示首先需要實現數據采集,系統數據集有兩個來源。用戶可以點擊可視畫布區域,從而自動生成一些分散的數據;另一種方法則是在本地導入文本文件,用戶通過數據導入模塊來加載數據,然后采用編譯功能對數據格式進行轉換,從而生成可供顯示系統使用的數據格式,如CSV,JSON等文本數據。
(3)核心算法層:系統的核心算法主要采用SVM機器學習算法來實現數據可視化。為了實現系統支持的顯示功能,還可以自定義顯示功能和算法,設計顯示并完成數據操作。例如,使用各種數學函數(高斯核、線性核、矩陣乘法等),并構建一套可視化二維網格、導入、導出、提取和清空等。創建函數的可視化庫,以實現程序執行期間直接調用的所有可視化函數。算法層可以通過系統的邏輯結構與下一層交互。
(4)可視化呈現層:根據相應的算法和顏色、大小、形狀等不同的視覺元素,在畫布上直觀地顯示網格中數據集的每個一維特征的詳細信息,通過將分布式地圖和熱圖結合進行可視化顯示,可以直觀地調整模型訓練精度等評估參數,便于與數據交互[4]。
(5)用戶交互層:這一層也被稱為用戶界面層,在機器學習可視化數學建模系統中位于最頂層。用戶交互層的功能是負責實現系統和用戶之間的交互,并且可以為用戶提供友好、直觀的視覺界面。用戶可以在畫布上單擊生成數據,以直觀地表示數據。此外,用戶可以選擇在本地加載數據源,然后在導航欄上設置一系列按鈕,以交互方式處理數據以查看和分析數據,最后導出顯示結果。
3.1.1 數據生成
數據是可視化數學建模系統中最關鍵,也是最基礎的組成部分。數學建模系統的數據源包括數據的自動生成以及數據的導入,而用戶可以在本地導入數據文件,從而顯示機器學習數據,同時還可以在D3.js顯示技術背景下,在畫布上自動生成數據[5]。
3.1.2 數據導入
在可視化數據之前,在系統中導入外部數據文件。傳統的可視化系統主要是通過內置代碼在數據庫內檢索數據。這種獨特的數據采集方法限制了數據流,降低了可視化系統的通用性。
3.1.3 數據導出
在可視化機器學習算法數據后,系統支持導出JSON或CSV文件格式的數據。對于JSON文件,首先對導出按鈕關聯監聽事件,然后運行exportjson()函數,并調用ExportDataToJson()方法導出JSON字符串。最初的數據顯示為數組形式,因此選擇JSON.stringify vel方法來對JavaScript值(數組或對象)進行轉換,使其成為JSON字符串,方便導出。
基于Web前端開發可視化系統的界面,可視化數據通過CSS、HTML和JavaScript文件動態生成。經典CSS文件配置為界面顯示,實現界面渲染,數據通過JavaScript加載到HTML頁面。當用戶點擊界面中相應的按鈕時,系統會通過HTML中相應的字符自動調用相應的JavaScript函數,實現相應的功能[6]。
3.2.1 圖表類型
系統采用D3.js來實現可視化系統,D3.js可以提供多種圖形和圖表,使用D3.js繪制圖形是免費的。用戶可以根據自己的需要設置所需視覺圖形。因此,系統建議使用兩種可視化圖形的組合來可視化數據。
(1)散點圖顯示系統繪制800~600 px范圍內的散點圖數據,生成的數據點位置完全隨機。二維散點圖可以有效地將兩組多維屬性值映射到一個坐標軸。在由二維軸確定的網格中,其他維度的屬性值可以通過圖形標簽的不同視覺元素顯示。例如,使用不同顏色、形狀來表示離散或連續屬性值。通過散點圖的可視化,人們可以看到二維數據之間的清晰性、聚集性、正相關和負相關,并通過數據聚類得到一定的數據聚集密度。
(2)熱力圖可視化。利用不同矩形區域的顏色表示不同數據的可視化。熱力圖與分布圖相結合,以顯示給定區域內不同數據量之間的顏色差異,這具有一致的變化過程。為了創建熱圖,通常需要分析點以創建顯示數據密度的插值曲面。整個圖層采用樣條梯度繪制,最終數據分析的視覺效果顯著[7]。
3.2.2 工具欄
由于數學建模系統對可視化的需求,可通過設置按鈕的方式來實現可視化界面功能。導航欄的活動、點擊類型和模型分別設置在SVM算法數據可視化界面的右側。在操作導航欄中,設置導入、導出、重置、撤銷等按鈕,分別表示數據導入、數據導出、畫布清空、數據點刪除等。在模型導航欄中,系統開發了相應的訓練功能、評估和訓練曲線,實現了數據訓練過程、機器學習算法評估等。當用戶在系統中點擊按鈕時,其功能會自動響應,系統會調用相應功能來滿足用戶的需求[8]。
3.2.3 D3.js繪圖模塊設計
采用D3.js前端可視化技術繪制圖形的可視化方案流程,如圖1所示。

圖1 D3.js可視化方案流程
本系統是基于機器學習的可視化數學建模系統,本系統的軟件開發環境基于D3.js、JavaScript、jQuery等相關函數庫。為了驗證支持向量機的可視化算法,采用虹膜數據集。對于IRIS數據集,則通過保留法將數據分為測試數據和訓練數據,分別占訓練數據的70%和測試數據的30%。因為虹膜數據集有4個維度,所以數學建模系統利用虹膜的長度和寬度進行實驗,將虹膜數據集的兩個屬性輸入支持向量機的可視化界面。通過線性核函數、多項式核函數、高斯徑向基函數對數據進行分類和可視化,并對不同的核函數進行比較。
對于SVM的可視化算法,系統支持多種參數調整。這些參數可以直接在模型工具欄上進行調整,然后在核選擇表中選擇不同的核函數,并將其作為分類操作的變量。首先,采用虹膜的線性核來訓練Iris數據集。線性核的SVM的決策邊界為直線邊界,通過對A類和B類樣本的分類,預測區域可以覆蓋大部分數據,或者某些類別的數據點存在預測誤差。非線性函數支持向量機(多項式核和徑向高斯核)的邊界確定是基于非線性邊界曲線的。這些支持向量機的決策邊界主要取決于不同的核函數和相應的核函數參數。此外,高斯核支持向量機的精度要比多項式核支持向量機更高,能夠正確地對大多數數據點進行分類。
根據上述算法的結果,前端可視化參數的調整主要包括兩個方面:(1)選擇適合的核函數,如特征較多時,采用高斯核;但是高斯核需要不斷調試才能獲得完美的結果。(2)不斷調整每個核函數的參數,并嘗試通過多次調整找到最佳參數。
綜上所述,隨著人工智能的飛速發展,通過機器學習平臺可以獲得合理的數學模型,從而更好地解決問題。機器學習平臺通過創建和運行用于訓練實驗的數學模型來改進和驗證數學模型,甚至多次重復這個過程,直到獲得滿意的模型項目,從而獲得最終的數學項目。