姜滟穩(wěn),江自昊
(蕪湖職業(yè)技術學院,安徽蕪湖 241000)
隨著信息科技的飛速發(fā)展,如何高效的分析處理數據同時利用分析結果提高程序性能對開發(fā)者來說尤為重要,常規(guī)數據一般存儲在數據庫中,用戶通過計算機終端、web傳輸端口、URL等渠道對數據進行調用和獲取,常規(guī)數據類型基本以結構化數據為主體.在進入人工智能時代,在Python、R語言等基于數據分析程序設計語言的發(fā)展下,大數據分析和機器學習等先進技術在各行各業(yè)開始生根發(fā)芽,數據處理從單一形態(tài)向多媒體、多視角、多結構的多模態(tài)數據融合方向轉化,以圖像、視頻、語音、文本等類型的非結構化數據逐漸成為用戶傳遞給計算機程序的主體數據.針對這類非結構化數據必須進行數據清洗和數據分析,進行結構化數據標記才能滿足傳統程序的算法需求.本文基于早期的研究成果和參與開發(fā)的程序系統為數據模型,針對目前程序運營中出現的問題,通過機器學習中的相關算法設計一套針對非結構數據處理的方法,通過此次設計,解決程序系統對非結構化數據處理不足的問題,掌握分析原理,為技術研究、項目開發(fā)提供全新的思路.
公益活動起源于歐洲工業(yè)革命時期,早期活動形式較為單一,表現為人道主義救援和貧民救濟活動,發(fā)展到如今,國外已經形成了較為完備的志愿服務體系和志愿服務激勵機制.與之相比,國內的公益服務發(fā)展速度較為緩慢.近幾年在黨和國家的高度重視下,公益服務活動開始進入人們的視野中,雖然部分城市結合自身經濟發(fā)展的特點推出了志愿服務激勵活動等相關政策,但從總體發(fā)展來看,公益行業(yè)依然面臨缺乏宣傳平臺、公眾意識淡薄、公益活動運營困難、公益活動缺少獎勵機制、救助項目覆蓋的群體較小等諸多問題,其中最主要的問題是管理和運營問題.
圖1 公益聯盟系統核心示意圖Fig.1 Core schematic diagram of Public Welfare Alliance System
公益聯盟系統是為解決公益活動推廣和運營等問題而開發(fā)的程序系統,通過搭建系統化數據化的緊密協作程序平臺,明確政府、企業(yè)、志愿者、公共服務機構、公益組織在公益活動的角色和職責.同時程序設計了基于公益權益積分池的核心算法,通過公益積分將聯盟系統可以提供的資源數字化,企業(yè)和用戶通過參與公益活動獲得的積分,自己在積分池中兌換資源,同時也可以將自身可以提供的資源投入積分池,為其他需要的用戶提供積分兌換.系統通過積分流通保證公益資源和商業(yè)資源互相兌換形成一個健康良性的公益生態(tài)圈(如圖1所示).
(1)非結構化數據利用率低
公益聯盟系統通過權益積分池算法很好地解決了公益活動中的運營成本問題,隨著越來越多的用戶參與公益活動,系統與用戶交互的數據量越來越多,在這些數據中,通過手機平臺產生的圖片、語音、文本等非結構化數據的比例占整個數據量的85%,但系統本身采用的算法原理以線性回歸算法為主,無法直接分析處理非結構化數據,導致程序對非結構化數據類型的使用率不高.
(2)活動事件缺少數據分析
公益活動是一種復雜的社會活動,政府和公共服務機構雖然是活動的發(fā)起者和組織者,活動的主體依然是居民和志愿者,個體的自我意識是活動的主導,公益聯盟系統需要對活動的開展進行預估評測,在活動結束以后更需要進行用戶情感分析和活動滿意度分析來對用戶的流失狀態(tài)進行預測,才能保證系統運營的穩(wěn)定.用戶通過手機產生的非結構化數據產生于公益活動開展的中期和后期,通過解析這些實時數據可以為系統的預估提供數據模型.
明確系統的功能需求,才能確定基礎數據的核心來源,系統數據主要包括公益活動相關信息和數據,比如近幾年城市公益活動開展情況和政府頒布的相關政策,市民對公益事業(yè)的態(tài)度和公益活動的參與情況,政府、公益組織、企業(yè)對公益活動的經費投入,這些數據需要進行結構化和非結構化的篩選和劃分,對二者之間的聯系進行分析,并對各自在系統中的角色進行清晰的界定,形成最重要的基礎數據.
本文中系統采用DataSet預測技術預測數據集的數據類型、數據范圍、數據結構、數據屬性等各項參數,用于提取和構建系統特征最重要的數據保障和網絡傳輸信息,確定系統整體數據規(guī)范.
在形成基礎數據之后,必須制定數據分類規(guī)則,因此需要分析公益聯盟系統的核心算法—公益權益積分池.公益權益積分池是公益聯盟的系統核心,也是維系整個系統框架良性循環(huán)和長久運營的主體機制,系統通過核心算法將系統中政府、企業(yè)、志愿者、公共服務機構、公益組織各方角色通過公益積分與積分池進行串聯,按照系統算法制定的規(guī)則進行交流互通,因此本項目的數據標注規(guī)則必須以公益聯盟框架中的核心算法為標注標準,標注后的數據必須滿足系統的積分流通規(guī)則.
其中非結構化數據中圖像、文本、音頻、視頻將依據項目中的數據標注規(guī)則進行采集[1],具體內容包括:
圖像數據集:以公益活動的拍照對象進行采集,包括人臉數據、車牌數據和活動中特征物體數據等.
文本數據集:以公益聯盟系統中各方角色為標準進行采集,包括人名、地名、命令詞、常用引導詞等.
音頻采集:對公益活動的現場的聲音數據進行采集,主體為身份識別.
視頻采集:考慮分析成本,本系統不采集視頻數據.
數據標注分類從不同維度進行,數據標注分類依據表1中列舉的分類優(yōu)缺點進行分類.
在完成基礎數據收集工作后,系統對所有收集到的數據進行篩選,按照機器算法進行數據的清理,對數據的完整性進行分析,將重復的數據進行刪除,保持數據的一致性;其次檢查數據集的錯誤數據和缺失數據,降低數據的復雜噪點;最后將數據統一成適合標注且符合項目標注規(guī)則的數據集.
如表1所示,系統對非結構化數據進行清晰分類后,在添加標記的過程中,必須分析標注形式是結構化、非結構化還是半結構化,考慮研發(fā)成本,本文主體采用結構化標記分類.
表1 數據標注分類列表Tab.1 Classification List of data annotation
圖2 HDFS分布式文件系統結構圖Fig.2 Structure diagram of HDFS distributed file system
在數據管理階段,通過不同應用程序調用接口將異構的數據導入分布式數據庫中,利用Hadoop Distributed File System分布式文件系統[2](如圖2所示)中的組件,可以將結構化數據和非結構化數據并行管理和存儲.運用這種分布式云服務器存儲技術,使大數據分析和計算的數據查詢和檢索功能能夠快速可靠的完成.
本文重點分析如何對圖像數據進行數據挖掘,為提高數據挖掘的利用率,擬采用YOLOv5s目標檢測算法[3],對實時上傳的圖像數據通過自適應錨框計算與自適應圖片縮放方法進行歸一化處理(如圖3所示).在進行錨框計算時,對圖像數據分析并進行特征提取,例如人臉、車牌、社團旗幟、企業(yè)標志等,其中人臉識別作為個體數量集進行統計.數據挖掘采用Mosaic數據增強法則對4張照片進行拼接,并根據圖片的拍攝時間建立測試集,提高圖像數據的使用效率,降低數據模型的性能需求.
圖3 Mosaic算法實驗圖Fig.3 Mosaic algorithm experiment chart
圖4 非結構化數據挖掘展示圖Fig.4 Unstructured data mining diagram
如圖4所示,通過Mosaic算法對圖像數據進行深度挖掘,將非結構化的數據進行數據轉化,轉化后的帶有結構化標記的非結構化數據就可以運用二分類算法進行數據分類,并添加到系統的常規(guī)數據表中,大大提高數據的利用率.若需要拓展系統的核心功能,例如進行用戶流失預警預測,則需要進一步搭建數據模型,建立訓練集和測試集.
本文利用Python語言對數據集進行分類,代碼如圖5所示:
圖5 數據集分類代碼Fig.5 Classification code of data set
圖5中的代碼將數據集分成訓練集和測試集兩個部分,x,y分別對應特征變量(特征分類)和目標變量(采集數量),test_size的數值表示測試集所占的百分比.系統可以依據采集時間適度調整測試集的比例范圍.
本文采用GBDT算法[4],依據表2的數據格式對用戶是否流失進行數據分析測試,“圖像最近采集時間”和“圖像權重”兩列是通過非結構化數據挖掘后產生的新數據列.
表2 用戶流失預警數據示例表Tab.2 Example of user loss warning data
表格中包含1500組測試數據,“是否流失”列中1代表流失,0代表未流失,在原本的用戶流失預警數據示例表中不包含“圖像最近采集時間”和“圖像權重”兩列,系統通過分類決策樹算法對用戶流失進行了預估,但0和1的結果并不能幫助系統進行精準的預測,在添加新挖掘的數據列之后,系統可以采用更先進的人工智能算法對數據表進行測試.
GBDT算法通過迭代模型強化決策樹的殘差值獲取更精細的數據,迭代模型公式[5]如下:
fm(x)=fm-1(x)+Tm(x)
(1)
公式(1)中fm-1(x)是第m-1次的迭代模型,Tm(x)是本次待搭建的決策樹,同時也是上一個擬合模型殘差值的決策樹,fm(x)是經過本次迭代計算后,生成的新數據模型.通過“圖像最近采集時間”列中不同的日期數據,就可以選擇不同的初始切分點構建第一個初始決策樹,通過反復迭代獲取均方誤差MSE,當MSE的值達到指定要求或者迭代次數達到指定條件就停止迭代,形成最終模型,本文擬MSE為0.075作為停止迭代標準,“圖像權重”列作為圖像識別獲取用戶參與度數據,將放入到最終結果中作為測試模型的評估標準之一.
從表3可以看出,拓展后的數據示例表采用GBDT算法可以獲取更準確的預測數據.
與分類決策樹產生的“0”“1”數值相比,GBDT算法獲得的測試數據精度更高,“圖像權重”列可以作為數據模型的命中率參考值[6],對測試結果進行評估,當不流失概率和命中率都低于30%,系統可以判定用戶具有流失的風險,考慮到不同的圖像采集時間作為迭代模型不同的初始切分點,30%的數值可以適當的提高或者降低,優(yōu)化模型評估結果.
通過人工智能算法對非結構化數據進行處理可以強化拓展進行測試的數據集合,方便計算機系統使用更先進的算法對數據進行預測,程序系統可以依據自身的成本和決策樹算法,在少量增加支出的條件下,利用數據挖掘得到的結構化數據,加強系統數據的功能擴展,增強系統的數據使用率.