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