国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種云平臺下的大數(shù)據(jù)聚類系統(tǒng)研究

2019-05-20 06:06:24
關鍵詞:聚類對象崗位

嚴 志

(長沙民政職業(yè)技術學院軟件學院,湖南長沙410004)

1. 引言

隨著云計算技術的不斷發(fā)展,大數(shù)據(jù)內含的價值逐漸被人們正視。淘寶大數(shù)據(jù)系統(tǒng)[1]會統(tǒng)計用戶頁面級的點擊量來分析熱門產品,將最受歡迎的產品推薦給用戶,并且能夠根據(jù)用戶年齡、歷史消費記錄向用戶推薦其他產品。農夫山泉公司利用大數(shù)據(jù)系統(tǒng)分析礦泉水的銷售[2],這些數(shù)據(jù)分析體現(xiàn)在如何在終端擺放產品、產品購買者的年齡、消費者消費停留時間、購買數(shù)量等,系統(tǒng)甚至還將物流數(shù)據(jù)也納入評價范圍,通過數(shù)據(jù)精準分析使產品利潤達到最大。Wal-Mart應用大數(shù)據(jù)分析系統(tǒng)Polaris研究用戶的消費行為,該系統(tǒng)利用 Deep learning、Semantic data、Machine learning等方式對用戶輸入關鍵詞進行文本分析,深度挖掘用戶所需商品并支持個性化推薦。社交巨頭Facebook公司利用用戶在平臺上留下的歷史數(shù)據(jù)進行大數(shù)據(jù)計算,能夠判斷出用戶的財務狀況、教育水平,使得用戶個人數(shù)據(jù)能夠被一覽無余。

目前工業(yè)界各大廠商如Amazon、IBM、Google、Microsoft、Sun、阿里巴巴等公司都推出自己的大數(shù)據(jù)系統(tǒng),越來越多的學者推出了大數(shù)據(jù)在行業(yè)領域內的應用。孟超、金龍、孫知信[3]運用無線傳感網(wǎng)絡技術,設計構建了一個傳感網(wǎng)結點實時定位跟蹤的大數(shù)據(jù)傳輸模型;荊旭全、蔡德楠等開發(fā)精準施肥大數(shù)據(jù)系統(tǒng)及相應的信息服務應用平臺,集施肥決策、農技推廣、施肥數(shù)據(jù)可視化于一體[4];徐超、吳波提出了以最小化系列跨域作業(yè)平均完成時間為優(yōu)化目標的在線隨機調度算法處理跨域大數(shù)據(jù)帶來的作業(yè)完成時延[5];行艷妮、錢育蓉等分析了內存計算框架Spark和K-means聚類算法,分析了K-means算法聚類不穩(wěn)定性的因素,提出優(yōu)化K-means算法方法[6];王靜宇等提出了基于數(shù)據(jù)敏感性Hadoop大數(shù)據(jù)訪問控制模型,模型利用數(shù)據(jù)內容、使用模式和數(shù)據(jù)敏感性來強化訪問控制策略,在評估數(shù)據(jù)敏感性上用戶干預最小[7]。趙帥對大數(shù)據(jù)知識服務模式進行分析,以圖書館用戶信息作為研究調查對象,并對平臺中關鍵技術進行探索[8]。楊正理、史文等利用海量招生異構數(shù)據(jù),采用并行化隨機森林預測高校招生策略模型,縮短了模型的預測時間、提高了模型的預測精度[9]。

本文以某招聘網(wǎng)站數(shù)據(jù)作為數(shù)據(jù)源,通過爬取網(wǎng)頁關鍵數(shù)據(jù),然后將數(shù)據(jù)保存到云平臺,接著對數(shù)據(jù)進行清洗、聚類,最后使用可視化工具將分析結果呈現(xiàn)出來。通過大數(shù)據(jù)系統(tǒng)分析,可以得到某個地區(qū)的薪資水平、崗位分布、學歷要求、工作行業(yè)性質等數(shù)據(jù),為企業(yè)精準人才需求、技能要求提供了可靠的服務。

2. 數(shù)據(jù)聚類算法

大數(shù)據(jù)體量巨大,數(shù)據(jù)價值密度低,聚類分析是將數(shù)據(jù)樣本劃分為若干個不相交的子集,每一個子集稱為一個簇。一般是用來對數(shù)據(jù)按照特征屬性進行分組,經常被應用在客戶分群、欺詐檢測、圖像分析等領域。

K-means是最典型的聚類算法,其主要思想是:給定K值和K個初始類簇中心點,計算數(shù)據(jù)節(jié)點到所有類簇中心點的歐式距離,把每個數(shù)據(jù)節(jié)點加入到類簇中心點距離最小的類簇中,直到所有數(shù)據(jù)節(jié)點分配完畢,再次計算類簇中所有數(shù)據(jù)節(jié)點到各類簇中心的距離,取距離的均值重新計算該類簇的中心點,然后所有數(shù)據(jù)節(jié)點再次進行聚類迭代分配并更新類簇中心點的,直至類簇中心點的變化很小,或者達到指定的迭代次數(shù)。

給定數(shù)據(jù)樣本 D,包含了 n 個對象 D={X1,X2,X3,...,Xn},其中每個對象包含m個維度屬性,算法目標是將n個對象依據(jù)對象間的相似性聚集到指定的k個類簇中,每個對象僅且屬于一個其到類簇中心距離最小的類簇。

k 個類簇定義為 ={C1,C2,C3,...,CK},1≤k≤n,通過計算對象X到C中的每個聚類中心的歐式距離,公式如下:

上式中是樣本數(shù)據(jù)對象,1≤i≤n,Cj表示第j個聚類中心,1≤j≤k,Xit表示 Xi對象的第 t個屬性,1≤t≤m,Cjt表示第j個聚類中心的第t個屬性,依次比較每一個對象到每一個聚類中心的距離,將對象分配到離聚類中心最近的類簇中,得到 k 個類簇{S1,S2,S3,...,Sk}。

K-means算法用類簇中心定義了類簇的原型,類簇中心就是類簇內所有數(shù)據(jù)對象在各個維度的均值,其計算公式如下:

上式中,Cl表示第L個聚類的中心,1≤L≤k,|Sl|表示第L個類簇中對象的個數(shù),Xi表示第l個類簇中的第i個對象,1≤i≤|Sl|

該算法的實現(xiàn)如下[10]:

輸入:樣本集 D={X1,X2,X3,...,Xn},k 個聚類簇數(shù)

過程:

1:從樣本集D中隨機選擇k個樣本作為初始向量值{u1,u2,u3,…,uk}

2:repeat

3:令 Ci= φ(1≤i≤n)

4:for j=1,2,3,…,mdo

5:計算樣本xj與各均值向量ui(1≤i≤k)的距離,dji=|xj-ui|2;

6:根據(jù)距離最近的均值向量確定xj的簇標記:

7:將樣本xj劃入相應的簇:

8:end for

9:for i=1,2,…,k do

11:if u'i!=uithen

12:將當前向量值ui更新為u'i;

13:else

14:保持當前均值不變

15:end if

16:end for

17:until當前均值向量均未更新

輸出:簇劃分 C={C1,C2,C3,...,Ck}

3. 系統(tǒng)架構設計

招聘大數(shù)據(jù)分析系統(tǒng)的主要原理是:利用開源框架解析數(shù)據(jù)源,將爬取得到的文本數(shù)據(jù)經過分詞算法處理后上傳到HDFS,經過MapReaduce處理后存儲到云數(shù)據(jù)庫Hbase,然后訪問云數(shù)據(jù)庫計算獲取元數(shù)據(jù),對不規(guī)則的數(shù)據(jù)進行清洗,將清洗后的數(shù)據(jù)存放到Hbase列簇,清洗列簇數(shù)據(jù)并對數(shù)據(jù)進行聚類分析,將聚類結果通過可視化的形式直觀展示給用戶。系統(tǒng)以Hadoop作為云平臺,采用第三方招聘網(wǎng)站作為數(shù)據(jù)源,得到了如圖1的系統(tǒng)的核心架構。

圖1 系統(tǒng)架構圖

系統(tǒng)自下而上分為數(shù)據(jù)解析層、數(shù)據(jù)存儲層和數(shù)據(jù)應用層,每一層的實現(xiàn)細節(jié)如下。

數(shù)據(jù)解析層:數(shù)據(jù)解析層主要功能是爬取第三方網(wǎng)站的web數(shù)據(jù),運用中文分詞,xpath解析獲取數(shù)據(jù)源。爬蟲核心采用第三方爬蟲框架WebMagic,系統(tǒng)架構如圖2所示。Downloader通過http請求從互聯(lián)網(wǎng)上下載頁面,交給頁面處理對象PageProcesor處理。頁面處理對象采用jsoup工具解析頁面,通過xpath表達式抽取頁面關鍵信息,如果發(fā)現(xiàn)新的鏈接加入到采集地址隊列Scheduler。Scheduler調度管理待抓取的URL,對URL集合來進行去重,Pipeline負責處理抽取結果,將數(shù)據(jù)持久化到文件、數(shù)據(jù)庫。

圖2 WebMagic架構

數(shù)據(jù)存儲層:WebMagic網(wǎng)絡爬蟲程序獲得數(shù)據(jù)源之后,將數(shù)據(jù)保存到云數(shù)據(jù)庫HBase,爬取過程中需要進行中文分詞處理,本文使用的中文分詞工具是基于Lucence內核的庖丁解牛工具,該工具可實現(xiàn)自定義詞典,將特殊詞語構建詞典保存到項目路徑即可。將所得到的數(shù)據(jù)存入到HDFS文件中,然后對HDFS中的文件進行MapReducer大數(shù)據(jù)處理,清晰無規(guī)則數(shù)據(jù),將結構化數(shù)據(jù)存儲到HBase中。為了對數(shù)據(jù)進行歸類整理,找出統(tǒng)計規(guī)律再次對清洗的數(shù)據(jù)進行聚類分析,將聚類分析的結果存儲到MongoDB。以崗位聚類分析為例,通過搜集發(fā)布的工作崗位,按照地區(qū)顯示崗位數(shù)量,可以推導出工作熱點。

數(shù)據(jù)應用層:通過云平臺存儲的大量數(shù)據(jù),可以按照用戶的要求抽取數(shù)據(jù),然后在數(shù)據(jù)應用曾定義顯示數(shù)據(jù)的接口,將數(shù)據(jù)與接口對應起來即可。典型的應用如按照崗位發(fā)布的地區(qū)統(tǒng)計工作數(shù)目,按照崗位的學歷要求統(tǒng)計工作數(shù)目,按照工作發(fā)布的招聘企業(yè)類型統(tǒng)計工作分布。

4. 云存儲設計

4.1 源數(shù)據(jù)存儲

通過網(wǎng)絡爬取數(shù)據(jù)文檔模型是一個N元組,其定義為:

<PAGEID, JOBNAME,LOCATION,RELEASEDATE,SALARY,EXPERIENCE,EDUCATION,AMOUNT,COMPANY_SCALE,CATEGORY,COMPANY_INDUSTRY,COMPANY_NAME,COMPANY_NATURE,ISTAGED,DISCRIPTION>,

其含義分別是html頁面編號,崗位名稱,招聘地點,發(fā)布日期,薪資水平,工作經驗,教育水平,公司規(guī)模,招聘人數(shù),崗位類別,所處行業(yè),公司名稱,公司性質,是否標記,任職要求,其爬取原型數(shù)據(jù)如下圖3所示。

通過Web端遠程訪問云數(shù)據(jù)庫HBase的數(shù)據(jù),Hbase數(shù)據(jù)表效果如圖4所示。

圖4 Hbase表數(shù)據(jù)

4.2 數(shù)據(jù)清洗存儲設計

原始頁面的數(shù)據(jù)如圖3所示,是一個不規(guī)則文檔,需要對數(shù)據(jù)進行清洗。以公司行業(yè)性質為例,在配置文件中,詳細定義了各種性質的類型,如國企、民營企業(yè)、事業(yè)單位、外企、私企等等,由于有些就業(yè)發(fā)布信息沒有說明,所以爬取的時候無法獲得數(shù)據(jù),對于這些數(shù)據(jù)需要進行處理。在招聘需求時,許多公司都發(fā)布了職位的任職需求,爬取數(shù)據(jù)會將換行數(shù)據(jù)或者是空數(shù)據(jù)存放,這些數(shù)據(jù)是不規(guī)則數(shù)據(jù),需要進行清理。在獲得職位的類別時,需要對工作任職要求或者工作名進行中文分詞,然后匹配工作類型詞庫,分析該工作所屬類別。

數(shù)據(jù)清洗關鍵步驟如下:

(1)通過手動配置開啟數(shù)據(jù)清洗服務;

(2)從云數(shù)據(jù)庫Hbase的列族讀取爬取原始數(shù)據(jù);

(3)根據(jù)配置文件的規(guī)則對原始字段進行清洗判斷或者分詞處理;

(4)將處理后的數(shù)據(jù)緩存到集合中,批量提交到云數(shù)據(jù)庫的清洗列族;

(5)數(shù)據(jù)清洗后,按崗位類別保存數(shù)據(jù),關閉清洗服務;

以下是截取以云計算分類的配置文件,當崗位名稱或者任職描述中包含以下詞語時,可以將該條記錄分類到云計算的類別當中。

4.3 數(shù)據(jù)聚類存儲設計

數(shù)據(jù)清洗完畢之后,所有的數(shù)據(jù)保存到HBase中,聚類服務根據(jù)用戶需求,按崗位類別進行數(shù)據(jù)聚類計算,然后顯示給用戶。其工作流程如圖5所示。

圖5 數(shù)據(jù)聚類流程

本文以爬取的492條計算機類招聘數(shù)據(jù)作為研究對象,按照 develop、operation、framework 三類進行抽取,詳細聚類過程如下:

1.從服務配置中啟動服務,輸入待聚類的崗位集合;

2.根據(jù)指定的崗位集合從清洗數(shù)據(jù)庫中解析數(shù)據(jù)源,并對所有的數(shù)據(jù)崗位進行分類,形成崗位集合數(shù)據(jù);

3.遍歷崗位集合數(shù)據(jù),對每一個崗位的任職要求進行分詞計算,獲得每一個崗位的描述;

4.以崗位分類和崗位描述分析進行向量距離計算,并將結果作為數(shù)據(jù)聚類的依據(jù);

5.將向量結果計算并以MongoDB文檔對象存儲,最后將MongoDB對象文檔提交到MongoDB數(shù)據(jù)庫中

6.通過web前端的計算,將文檔對象轉換成json對象數(shù)據(jù),顯示到html文檔中。

服務配置的關鍵代碼如下所述:

5. 實驗與結論

本系統(tǒng)的開發(fā)是在南京55所云計算系統(tǒng)框架下展開的,通過數(shù)據(jù)采集整理分析可以發(fā)掘出用戶想要的數(shù)據(jù)。圖6是以開發(fā)、運維和架構三個類簇模型進行的聚類效果展示,每個類簇包含若干數(shù)據(jù)記錄。以開發(fā)類簇為例,該類簇總的記錄條數(shù)是27條,占所有類簇中記錄數(shù)據(jù)的84.38%,在開發(fā)類簇中,主要分為云計算開發(fā)工程師和云應用開發(fā)工程師,通過該數(shù)據(jù)可以得出,云計算開發(fā)工程師在就業(yè)市場比較受歡迎。

圖6 崗位聚類效果

圖7 地區(qū)分布效果圖

在所有采集的數(shù)據(jù)中,按照崗位發(fā)布的地區(qū)進行統(tǒng)計,形成了如圖7的效果圖,通過不同的地區(qū)顏色標記崗位的發(fā)布數(shù)量,可以得出全國崗位發(fā)布密集的地區(qū)是浙江、上海、北京、廣東、湖北、四川等省市,其中廣東發(fā)布的工作崗位需求量最大。

根據(jù)用戶的需求,還可以抽取其他數(shù)據(jù)進行分析,如分析工作的薪水、招聘公司的行業(yè)性質、崗位學歷的要求等等。

本文詳細描述了聚類算法的思想及算法實現(xiàn),解剖了Hadoop環(huán)境下招聘大數(shù)據(jù)系統(tǒng)架構,論述了源數(shù)據(jù)的大爬取,數(shù)據(jù)整理保存到Hbase,然后對Hbase數(shù)據(jù)進行清洗和聚類,將聚類的結果保存到MongoDB,,最后通過echarts顯示出來,為今后類似大數(shù)據(jù)系統(tǒng)的開發(fā)提供參照。

本文的聚類算法是基于Spark框架下自帶的聚類方法,對于聚類的k值的選取及算法的性能測試并沒有做深入的研究,聚類算法的演變有基于原型聚類、密度聚類及層次聚類等,在算法改進需要做進一步的研究。

猜你喜歡
聚類對象崗位
神秘來電
睿士(2023年2期)2023-03-02 02:01:09
在保潔崗位上兢兢業(yè)業(yè)
攻略對象的心思好難猜
意林(2018年3期)2018-03-02 15:17:24
基于DBSACN聚類算法的XML文檔聚類
電子測試(2017年15期)2017-12-18 07:19:27
走進“90后”崗位能手
中華兒女(2016年14期)2016-12-20 18:22:28
基于熵的快速掃描法的FNEA初始對象的生成方法
區(qū)間對象族的可鎮(zhèn)定性分析
基于改進的遺傳算法的模糊聚類算法
實施HR崗位輪換 打造復合型HRM團隊
一種層次初始的聚類個數(shù)自適應的聚類方法研究
都安| 汉阴县| 揭西县| SHOW| 旬阳县| 从江县| 东方市| 三门县| 报价| 武义县| 蓬溪县| 临漳县| 龙陵县| 呼和浩特市| 左贡县| 宿州市| 确山县| 榆林市| 轮台县| 汤原县| 上虞市| 平原县| 胶南市| 南丹县| 马尔康县| 金阳县| 宣汉县| 威海市| 宁波市| 高雄县| 连平县| 肥东县| 梅州市| 高阳县| 田东县| 邯郸市| 西峡县| 香格里拉县| 枣强县| 乌兰浩特市| 绥宁县|