






摘要:實驗數據是實驗教學和科研創新的關鍵要素。商業數據分析領域的科研實驗和教學實驗長期受限于數據的隱私性和敏感性而無法獲取足量的真實數據。將機器學習技術應用于合成實驗數據,基于Python編程語言生態,使用機器學習算法庫SDV,文章設計了一種為商業數據分析實驗提供合成數據的軟件系統SD4BA,分析真實數據樣本模式,訓練數據生成器,產生任意數量的合成數據。通過對合成數據的主要特征進行評估,其與真實數據樣本具有相似模式并實現了數據脫敏,可為商業數據分析實驗提供較高保真度的足量數據。
關鍵詞:商業數據分析;機器學習;合成數據;數據脫敏
中圖分類號:G482 文獻標志碼:A
0 引言
在數字經濟時代背景下,數據是形成新質生產力的優質生產要素[1]。產業數字化促進了企業的數字化轉型,商業數據分析(Business Analytics, BA)已成為數字化企業發展新質生產力、打造核心競爭力的重要因素。BA實驗是BA人才培養和科學研究的重要基礎[2],隨著大數據和AI技術的發展,BA實驗手段和數據分析方法愈發先進,但高質量的業務數據集仍是影響BA實驗質量的核心要素。因此,獲取足量的高質量業務數據集是提升BA實驗效果的關鍵因素,有利于提高實驗教學質量,激發科研創新潛力。
1 BA實驗數據獲取面臨的問題
在BA實驗教學和科研活動過程中,實驗數據的獲取往往受限于隱私性、機密性、版權、成本、數據集規模等多方面因素的制約,面臨諸多問題。
1.1 生成隨機數據導致實驗真實性不足
為了以較低成本獲取足量實驗數據,實驗人員往往使用計算機編程語言提供的隨機函數或模擬數據生成模塊(如Python語言的random庫和Faker庫等)生成隨機數據集。這樣獲取的實驗數據完整性好、成本低、數據量無限制,但與真實數據的數據特征相差較大,數據集內部缺乏關聯性和業務事實,導致實驗的真實性不足,實驗效果不佳,不能為業務分析和數據挖掘類實驗提供有意義的實驗數據集。
1.2 獲取高質量業務數據的成本較高
高質量業務數據是指經過脫敏、時效性好、足量的真實數據集[3],它比開放數據集有更好的及時性,比真實數據樣本有更大的數據量,同時還具有較低的法律風險和較高的保真性,對于實驗教學質量和科研探索有很大的促進作用。但高質量業務數據由于受到稀缺性、技術成本、市場壟斷等因素影響,往往須付費才能獲取,且價格較高,這提高了學習者和研究人員開展BA實驗的門檻。
1.3 自行獲取數據的法律風險較高
利用網絡爬蟲技術從互聯網自行獲取數據受到了Robots協議限制[4],隨著反爬蟲技術的不斷提高和數據版權保護的不斷加強,網絡爬蟲的技術門檻和法律風險不斷提高,即便是開放數據集也在授權范圍、使用期限、應用領域、具體條款等諸多方面有較大的不確定性,侵權風險較高。利用黑客技術非法獲取數據更是違規違法行為,這使得自行獲取實驗數據存在較高的法律風險。
為解決上述問題,將機器學習技術應用于合成BA實驗數據集,可以低成本地合成任意數量的高保真實驗數據集,同時還大大降低了法律風險。
2 實驗數據合成的原理
數據合成是指利用計算機程序生成與真實數據樣本具有相同數據特征的虛擬數據[5-6],多用于AI大模型訓練,應用數據合成技術可以高效地獲取面向BA實驗的數據集。商業數據以結構化程度較高的表格結構數據為主,以表格結構的少量真實業務數據為輸入樣本,分析其元數據模式,借助機器學習算法,訓練數據合成模型,再基于該模型生成具有相似數據特征的表格結構數據集。如圖1所示為數據合成原理,通過對輸入的真實數據樣本進行元數據分析,得到各字段類型、字段取值的基本統計量和各項約束條件,將其與樣本數據同時作為參數傳遞給機器學習算法,從Python語言實現的SDV算法庫中選擇Gaussian Copula算法、CTGAN算法[7]等,對默認的數據合成模型進行指定次數的迭代訓練,形成最終的數據合成器并生成指定規模的合成數據集。
圖1中的元數據參數包括與業務邏輯相關的其他約束條件,如字段取值范圍和相互數量關系等,可將真實商業環境中提取出來的業務邏輯參數加入合成模型參與迭代訓練。模型訓練須要耗費大量計算資源,為提高數據合成效率,將訓練好的數據合成器對象序列化存儲在文件中,以便反復調用直接進行數據合成。
3 合成數據評估
得到合成數據集后,要對其有效性和數據質量進行評估并將評估結果可視化,以判斷合成數據集是否達到BA實驗數據集的要求。
3.1 有效性檢驗
有效性檢驗是對合成數據集的數據格式和有效性進行基本檢查,以確保創建了有效的合成數據,主要包括:檢驗主鍵約束、連續值取值范圍、離散值數據類型和列名稱的Validity指標;檢驗引用完整性、基數檢驗的Structure指標。這2項指標值越高,合成數據的正確性和有效性越好。
3.2 數據質量評估
數據質量評估是對真實數據與合成數據之間的統計相似性進行計算,從而發現合成數據從真實數據中捕獲到并合成了哪些模式。主要包括:計算每個單列數據邊際分布的Column Shapes指標和計算每組成對列二元分布的Column Pair Trends指標。這2項指標值越高,合成數據與真實數據的數據特征越相似,數據質量越高。
3.3 評估結果可視化
將真實數據列與對應的合成數據列取值的分布特征和多表關系的基數情況以圖形方式在同一坐標系中進行對比展示,幫助實驗人員以可視化方式直觀地識別出真實數據與合成數據之間的特征差異。對于差異較大以致無法滿足實驗要求的合成數據,須調整學習參數后重新訓練數據合成器。
4 SD4BA系統結構
基于上述實驗數據合成及質量評估原理,使用Python編程語言設計了一種為BA實驗合成數據集的軟件系統SD4BA,該系統的結構如圖2所示分為6層,自上而下分別為外部數據層、數據準備層、模型訓練層、數據合成層、數據評估層和數據輸出層。各層功能內聚,層間對象和數據傳遞采用函數調用方式實現。
(1)外部數據層用于獲取少量的真實數據樣本作為系統輸入。支持CSV、Excel和JSON格式的數據文件,還可以直接調用數據庫連接模塊通過SQL語句從關系數據庫獲取實時數據集。
(2)數據準備層將不同來源、不同格式的樣本數據集轉換為Python語言pandas庫的DataFrame對象,以便參與下一步的模型訓練。其中數據文件讀寫模塊不僅從數據文件中讀取數據集,還負責將最終生成的合成數據集寫入指定格式的數據文件。脫敏模塊則采用最簡單的關鍵字替換法,按照替換字典實現數據脫敏。元數據分析實現了圖1中的元數據模式分析功能,以Python字典對象傳遞元數據參數。通過數據準備,模型訓練層的輸入對象將轉換為系統定義格式。
(3)模型訓練層導入Python語言的SDV庫,選擇機器學習算法并傳入業務約束參數,完成數據合成器的初始狀態設置。指定訓練迭代次數等參數,啟動數據生成模型的訓練過程,多輪訓練后生成最終的數據合成器對象傳入數據合成層。
(4)數據合成層將數據合成器序列化并存入文件,以便調入內存重用,避免每次重復訓練的計算開銷。向數據合成器對象傳入待合成數據量、每批次數據量等參數,生成數據集并存儲在pandas.DataFrame對象中,繼而寫入文件或數據庫。
(5)數據評估層首先按照預定義的有效性檢驗項目對數據集對象進行驗證,如果有效性指標未達到100%則須要重新調整訓練參數,再次進行模型訓練。之后對通過有效性檢驗的數據集對象進行質量評估,實驗人員可通過查看生成的評估指標了解合成數據集與真實數據樣本的相似度,指標值大小與合成數據的質量高低成正比。可視化模塊負責以圖形方式對合成數據集字段取值的統計特征進行對比展示,為實驗人員了解數據特征和進行參數調整提供更加直觀的決策依據。
(6)數據輸出層調用數據文件讀寫模塊和數據庫連接模塊,分別將通過質量評估的合成數據集寫入指定格式的數據文件或數據庫,實現合成數據集對象的持久化存儲。
5 系統運行與測試
在一臺Dell Latidude 7490筆記本電腦上運行SD4BA系統,進行功能測試和性能測試,硬件測試環境主要參數為Intel Core i7 8650U 1.9 GHz處理器,32G DDR4雙通道內存,M.2 PCIe4.0 NVMe固態硬盤。軟件測試環境為Windows 10專業工作站版操作系統,安裝Python 3.12解釋器環境,pandas庫版本為2.2.2,pytorch庫版本為2.2.2,SDV庫版本為1.15。選擇公開數據集E-commerce Sales and Order Details Dataset作為樣本數據集,該數據集包含12個字段和185950條記錄,其字段和數據類型如表1所示。
分別選擇Gaussian Copula算法和CTGAN算法(10次迭代,每批次1000條數據)對樣本數據集進行機器學習和模型訓練,生成100萬條數據,記錄SD4BA系統的模型訓練用時、合成數據用時及各項評估指標值如表2所示。
從表2中各項評估指標值可以看出,有效性檢驗類指標值均為100%,表明合成數據集完全滿足有效性要求。質量評估類指標值gt;80%、綜合質量評估值gt;85%,說明合成數據集與真實數據集在數據特征方面的相似度gt;85%,可以滿足大多數BA實驗需求。
從表2中記錄的運行時間可以看出,在當前測試環境下,2種算法的模型訓練時間及合成數據時間均在可接受范圍內。其中采用Gaussian Copula算法的效率更高,但評估指標值低于CTGAN算法。采用CTGAN算法時,評估指標值高于Gaussian Copula算法但耗時更長。以Sales字段為例,對真實字段與合成字段取值的分布情況進行可視化展示,如圖3—4所示,采用CTGAN算法的合成數據與真實數據的局部相似性更高。因此,當對數據合成效率要求更高時可選擇Gaussian Copula算法,當對合成數據的保真度要求更高時可選擇CTGAN算法。
6 結語
SD4BA系統采用開源技術棧構建,其運行效率及合成數據集的各項質量指標可滿足大多數情況下的BA實驗要求,為獲取足量的高保真BA實驗數據提供了一種可選方案。如何進一步提高模型訓練及數據合成的效率,縮短多次迭代訓練的運行時間,是下一步要研究的問題。
參考文獻
[1]李濤,歐陽日輝.數據是形成新質生產力的優質生產要素[N].光明日報,2024-04-23(11).
[2]李洋.跨平臺模塊化商業數據分析實驗教學系統構建[J].中國現代教育裝備,2021(21):9-11.
[3]賈徽徽,王潮,紀祥敏.數據脫敏關鍵技術研究[J].微型電腦應用,2024(6):164-167.
[4]余瑋.違反robots協議之商業大數據抓取行為的類型及其法律規制[J].中國商論,2023(2):134-137.
[5] DRECHSLER J, HAENSCH A. 30 years of synthetic data[J]. Statistical Science, 2024(2):221-242.
[6] 楊順博,鄧勇,程龍,等.GAN合成數據技術推動隱私數據價值流通[J].人工智能,2023(6):14-23.
[7] XU L, SKOULARIDOU M, CUESTA-INFANTE A, et al. Modeling tabular data using conditional GAN[J]. Advances in Neural Information Processing Systems, 2019(32):7303-7313.
(編輯 沈 強編輯)
Design of a data synthesizing system for business data analytics experiments
LI "Yang, LI "Yunjiao, HAN "Yun
(College of Management, Yunnan Normal University, Kunming 650032, China)
Abstract: "Experimental data is a key element in teaching, research and scientific innovation. Research and teaching experiments in the field of business analytics have been limited by the privacy and sensitivity of data for a long time, making it difficult to obtain sufficient amounts of real data. Applying machine learning techniques to synthesize experimental data, based on the Python programming language ecosystem and using the machine learning algorithm library SDV, a system SD4BA is designed to provide synthetic data for business analytics experiments. The system analyzes real data patterns, trains data generators, and generates any number of synthetic data. By evaluating the main features of the synthetic data, it has similar patterns to the real dataset and it is desensitized. SD4BA can provide sufficient data with high fidelity for business analytics experiments.
Key words: business data analytics; machine learning; synthetic data; data desensitization