freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于數(shù)據(jù)挖掘的校園社交網(wǎng)絡(luò)用戶行為分析(編輯修改稿)

2025-06-12 19:30 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 進(jìn)行抓取。通過定制人人網(wǎng)定向型爬蟲,抓取指定網(wǎng)站 上的數(shù)據(jù)。 通過 wireshark 抓包法分析 HTTP 協(xié)議 Wireshark(前稱 Ethereal)是一個(gè)網(wǎng)絡(luò)封包分析軟件。網(wǎng)絡(luò)封包分析軟件的功能是擷取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料。本文通過 Wireshark 抓取人人網(wǎng) HTTP 協(xié)議 。 先啟動(dòng) wireshark 程序,在 captureoptions 在彈出界面里選中你的網(wǎng)卡,雙擊,會(huì)彈出如下圖所示的設(shè)置規(guī)則處。簡(jiǎn)單地,可使用規(guī)則 Host 加上人人站點(diǎn)域名。確定之后開始等操作下來就可開始抓包。 圖 34 Wireshark 規(guī)則設(shè)置 圖 35 利用 Wireshark 抓包過程 分析網(wǎng)站行為 本文通過火狐瀏覽器 +firebug 來分析 網(wǎng)站行為: Firebug 是火狐瀏覽器下的一款開發(fā)類插件,它可以對(duì) HTML、 javascript和 CSS 等進(jìn)行查看和編輯。本文主要通過它對(duì)網(wǎng)頁頁面代碼進(jìn)行分析,如下圖所示: 圖 36 通過 firebug 對(duì)網(wǎng)頁代碼進(jìn)行查閱 在觀察到網(wǎng)頁代碼后,可制定對(duì)應(yīng)的定向爬蟲實(shí)現(xiàn)方案,例如從哪個(gè)頁面開始,需要從這個(gè)頁面中獲得什么關(guān)鍵信息,哪些信息會(huì)在下一個(gè)頁面中作為輸入等,將整個(gè)流程進(jìn)行整理,并判斷什么情況下應(yīng)當(dāng)結(jié)束爬蟲,最后再通過正則表達(dá)式來提取數(shù)據(jù)并實(shí)行定制爬蟲。 正則表達(dá)式設(shè)計(jì) 正則表達(dá)式是對(duì)字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個(gè)“規(guī)則字符串”,這個(gè)“規(guī)則字符串”用來表達(dá)對(duì)字符串的一種過濾邏輯。 在抓取網(wǎng)頁的過程中,人人網(wǎng)頁面有許多不相關(guān)內(nèi)容在其中, 因此需要通過正則表達(dá)式進(jìn)行數(shù)據(jù)提取。 由于 采用 Python 語言進(jìn)行編譯,而正則表達(dá)式不屬于 Python 的一部分, 這里要通過 re 模塊 來提供對(duì)正則表達(dá)式的支持。使用 re 模塊的一般步驟如下: 先將正則表達(dá)式的字符串形式編譯為 Pattern 實(shí)例, 然后使用 Pattern 實(shí)例處理文本并獲得匹配結(jié)果 。 本爬蟲的 具體正則表達(dá)式設(shè)計(jì)見詳細(xì) 下一節(jié) 代碼 設(shè)計(jì) 代碼設(shè)計(jì) 本爬蟲 主要通過 python 語言實(shí)現(xiàn)。 Python 是一種面向?qū)ο?、直譯式計(jì)算機(jī)程序設(shè)計(jì)語言,由 Guido van Rossum于 1989 年底發(fā)明,第一個(gè)公開發(fā)行版發(fā)行于 1991 年。 Python 語法簡(jiǎn)捷而清晰,具有豐富和強(qiáng)大的類庫。它常被昵稱為膠水語言,它能夠很輕松的把用其他語言制作的各種模塊(尤其是C/C++)輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用 python 快速生成程序的原型(有時(shí)甚至是程序的最終界面),然后 對(duì)其中有特別要求的部分,用更合適的語言改寫,比如 3D 游戲中的圖形渲染模塊,速度要求非常高,就可以用 C++重寫 [20]。 本爬蟲主要通過 python 模塊 urllib2 獲取 URL,并通過該模塊 來處理 基本的認(rèn)證以及 cookies 等。 此外還要通過 python 的 re 模塊來編譯正則表達(dá)式抓取有效數(shù)據(jù),程序使用模塊如下圖所示: 本次定向爬蟲的基本原理則是首 先根據(jù)學(xué)校名字以及入學(xué)年份搜索到 uid,然后 通過 uid 獲取此用戶的日志數(shù) 狀態(tài)數(shù) 等信息 ,最后將結(jié)果通過 CSV 格式輸出 。 圖 37 主要使用模塊 UID 獲取 首先根據(jù)學(xué)校名字以及入學(xué)年份搜索到 uid,如下圖所示 圖 38 輸入學(xué)校名稱并簡(jiǎn)單判斷 圖 39 獲取 UID 代碼 圖 310 獲取 UID 部分代碼 圖 311 最終獲取 UID 通過 UID 獲取用戶其他信息 圖 312 通過 UID 獲取信息 以 CSV 格式對(duì)數(shù)據(jù)進(jìn)行輸出 由于 Weka 軟件可以對(duì) csv 格式數(shù)據(jù)進(jìn)行識(shí)別,則只需在抓取的每個(gè)屬性之間加半角逗號(hào)(即 ,)作為分隔符即可: 圖 312 數(shù)據(jù)輸出格式設(shè)置 爬蟲 設(shè)計(jì)過程 中克服的 技術(shù) 難點(diǎn) 在登陸人人網(wǎng)后, 默認(rèn)情況下遇到的第一個(gè)界面是用戶登陸界面,正常情況下會(huì)通過登錄網(wǎng)站然后收集數(shù)據(jù)。但分析發(fā)現(xiàn),在多次登陸后會(huì)出現(xiàn)驗(yàn)證碼,這對(duì)自動(dòng)化的爬蟲來是不合適的,同時(shí)登陸后頻繁請(qǐng)求頁面,可能會(huì)被監(jiān)測(cè)到,進(jìn)而干涉程序的運(yùn)行。再分析就發(fā)現(xiàn),其搜索入口頁面可以在不登陸下的情況也能使用,并且在搜索頁面可獲取我們需要的部分?jǐn)?shù)據(jù)。并且,在此情況下,在瀏覽器里點(diǎn)擊時(shí),有時(shí)會(huì)出現(xiàn)一個(gè)頁面會(huì)提示這個(gè)用戶的相關(guān)信息,比如日志數(shù)等。而如果我們直接指定用戶 ID 就能固定出現(xiàn)此用戶的相關(guān)信息,沿著這個(gè)思路就找到了不需要登陸下的數(shù)據(jù)采集方案 ,其實(shí)現(xiàn)代 碼如下: 圖 313 不登錄網(wǎng)站獲取信息 但是,目標(biāo)是收集 1 萬條以上的記錄,分析發(fā)現(xiàn)在同一個(gè)搜索條件下,最多能看到 500 多條記錄,顯然根據(jù)一個(gè)搜索條件是不夠的,這就需要構(gòu)造多個(gè)搜索條件 來進(jìn)行大量數(shù)據(jù)查詢 。 圖 314 設(shè)置多重搜索條件 在解決以上問題之后,順利設(shè)計(jì)出了人人網(wǎng)的爬蟲程序 。其運(yùn)行結(jié)果如圖316 和圖 315 所示。 圖 315 輸入學(xué)校名稱及 確定輸出數(shù)據(jù)表格名稱 圖 316 數(shù)據(jù)爬取界面 4 人人網(wǎng)用戶行為數(shù)據(jù)聚類 分析 通過在人人網(wǎng)運(yùn)行本文所設(shè)計(jì)的網(wǎng)絡(luò)爬蟲程 序 , 最終采集到 13000 條關(guān)于北京交通大學(xué)同學(xué)在人人網(wǎng) 的數(shù)據(jù) ,每個(gè)單項(xiàng)數(shù)據(jù)具有 9 條屬性: X∈ ( UID,入學(xué)年份,朋友數(shù),訪問數(shù),名字,性別,日志數(shù),相冊(cè)數(shù), 狀態(tài)數(shù), ) 對(duì)屬性名稱進(jìn)行英文化處理后,所得到的人人網(wǎng)用戶行為屬性包括: X∈( UID,Year,Friends,Visitor,SEX,Log,Picture,States) 。圖 41 顯示了所獲取的數(shù)據(jù)集片段: 圖 41 人人網(wǎng)用戶行為屬性數(shù)據(jù)集片段 示例 ( CSV 格式) 以此為基礎(chǔ),本文將 分別采用 WEKA 與 SPSS 軟件對(duì)采集資料進(jìn)行數(shù)據(jù)挖掘 與分析。 Weka 的全名是懷卡托智能分析環(huán)境( Waikato Environment for Knowledge Analysis),是一款免費(fèi)的,非商業(yè)化(的,基于 JAVA 環(huán)境下開源的機(jī)器學(xué)習(xí)( machine learning)以及數(shù)據(jù)挖掘( data minining)軟件 。 WEKA 軟件的標(biāo)準(zhǔn)應(yīng)用格式是 ARFF,但它也對(duì) DATA 和 CSV 等幾個(gè)常用格式進(jìn)行支持 ,如下圖所示 。 WEKA 包含有一些常用的數(shù)據(jù)挖掘算法,并且可以自主添加新的算法,同時(shí)該軟件也可以讓數(shù)據(jù)屬性以及最終結(jié)果可視化,所以得到了廣泛應(yīng)用。 圖 42 通過 ARFFViewer 查看數(shù)據(jù) SPSS( Statistical Product and Service Solutions), 中文譯作“統(tǒng)計(jì)產(chǎn)品與服務(wù)解決方案”軟件 。 SPSS 主要包含有 完整的數(shù)據(jù)輸入、編輯、統(tǒng)計(jì)分析、報(bào)表、圖形制作等功能。 其中 自帶 11 種類型 136 個(gè)函數(shù)。 SPSS 提供了從簡(jiǎn)單的統(tǒng)計(jì)描述到復(fù)雜的多因素統(tǒng)計(jì)分析方法,比如數(shù)據(jù)的探索性分析、統(tǒng)計(jì)描述、列聯(lián)表分析、二維相關(guān)、秩相關(guān)、偏相關(guān)、方差分析、非參數(shù)檢驗(yàn)、多元回歸、生存分析、協(xié)方差分析、判別分析、因子分析、聚類分析、非線性 回歸、 Logistic 回歸等。 是一款應(yīng)用十分廣泛的統(tǒng)計(jì)分析軟件。 數(shù)據(jù)預(yù)處理 數(shù)據(jù)格式標(biāo)準(zhǔn)化 處理 本小節(jié)闡述在進(jìn)行聚類分析以前的數(shù)據(jù)預(yù)處理工作,主要是將數(shù)據(jù)格式標(biāo)準(zhǔn)化以符合 weka 標(biāo)準(zhǔn)數(shù)據(jù)格式: 由于 weka 軟件 不能有效識(shí)別中文 ,因此首先將所有 ID 轉(zhuǎn)換為英文 由于 CSV 文件 缺少屬性名 。而 WEKA 必須從 CSV 文件的第一行讀取屬性名, 否則就會(huì)把第一行的各屬性值讀成變量名 ,因此 在數(shù)據(jù)表頭加入屬性標(biāo)示 逐一刪除 Weka 軟件不能識(shí)別的 缺少屬性的 無效單個(gè)數(shù)據(jù) (數(shù)據(jù)足夠多無需做缺失值處理) 刪除對(duì)最終 結(jié)果不產(chǎn)生影響的屬性 UID 將 SEX 屬性數(shù)值化,將男性設(shè)為數(shù)值 1,女性設(shè)為數(shù)值 2 經(jīng)過上述操作后, 通過 Weka 對(duì)屬性進(jìn)行可視化操作 ,可 判斷哪些數(shù)據(jù) 仍然不符合數(shù)據(jù)挖掘 處理 的要求,如圖 42 所示 : 圖 43 屬性圖形化處理 通過上圖可以很明顯的看出 ID 與 LOG 屬性需要進(jìn)行 進(jìn)一步 處理,考慮到用戶 ID 不會(huì)對(duì)結(jié)果造成影響, 屬于用戶行為的無關(guān)屬性, 所以直接將其忽略 。 圖 44 忽略 ID 屬性 對(duì) LOG 屬性的處理: 對(duì) CSV 格式的 LOG 屬性進(jìn)行排序, 發(fā)現(xiàn) LOG 屬性最大值與最小值之間數(shù)值相差過大 ,在刪除孤立的最大 值 10417 之后發(fā)現(xiàn)LOG 屬性已能夠被使用 ,如圖 43 所示。 圖 45 LOG 屬性恢復(fù)正常 SPSS描述數(shù)據(jù)特征 在數(shù)據(jù)挖掘之前最好能夠?qū)λ@數(shù)據(jù) 的各項(xiàng)屬性特征有所了解,則通過SPSS 對(duì)數(shù)據(jù)集進(jìn)行特征描述 ,如下圖 所示 : 圖 46 數(shù)據(jù)集特征 通過 SPSS 離散化數(shù)據(jù) 離散化指把連續(xù)型數(shù)據(jù)切分為若干“段”,也稱 bin,是數(shù)據(jù)分析中常用的手段。切分的原則有等距,等頻,優(yōu)化,或根據(jù)數(shù)據(jù)特點(diǎn)而定。離散化數(shù)據(jù)主要有以下好處 [22]: 某些算法( 例如決策樹, NaiveBayes 等 ) 本身不能直接使用連續(xù)型變量,連續(xù)型數(shù)據(jù)只有經(jīng)離散處理后才能進(jìn)入算法引擎。因此將數(shù)據(jù)離散化之后可以使用更多算法 。 離散化可以有效地克服數(shù)據(jù)中隱藏的缺陷:使模型結(jié)果更加穩(wěn)定。例如,通過離散化消除數(shù)據(jù)中的極端值與異常值等影響 。 有利于對(duì)非線性關(guān)系進(jìn)行診斷和描述:對(duì)連續(xù)型數(shù)據(jù)進(jìn)行離散處理后,自變量和目標(biāo)變量之間的關(guān)系變得清晰化。如果兩者之間是非線性關(guān)系,可以重新定義離散后變量每段的取值,從而大大提高模型的靈活度 。 SPSS 軟件可以對(duì)數(shù)據(jù)進(jìn)行可視的離散化處理,并有等寬離散以及根據(jù)屬性的平均或選定標(biāo)準(zhǔn)差離散等選擇,如下 圖所示: 圖 47 離散分割標(biāo)準(zhǔn)選擇 圖 48 YEAR 屬性離散化處理 圖 49 Friend 屬性離散化處理 圖 410 Picture 屬性離散化處理 聚類分析 聚類算法選取 為了判斷哪種聚類算法是最優(yōu)選擇,本 文選取 少量數(shù)據(jù),通過 Weka 軟件進(jìn)行了試運(yùn)算。其中 Optics、 Cobweb、 Dbscan 算法不能產(chǎn)生聚類簇,而SimpleKMeans、 XMeans、 FarthestFirst 和 MakeDensityBasedClusterer 則會(huì)被 Sex 或是 Years 屬性所誤導(dǎo),產(chǎn)生沒有意義的聚類簇。 圖 44 顯示了采用SimpleKMeans 算法所得到的聚類結(jié)果。 圖 47 KMeans 聚類算法結(jié)果 通過對(duì)不同算法的分析比較,本文發(fā)現(xiàn), 采用 EM 算法 的聚類結(jié)果較為滿意 。分析原因,有可能是 由對(duì)于抓取的數(shù)據(jù) 處理不夠精細(xì) , 導(dǎo)致 數(shù)據(jù)可能還存在有噪聲等問題 。而 EM 算法 ( Expectationmaximization algorithm,又譯期望最大化算法), 則 是 Dempster, Laind, Rubin 于 1977 年提出的求參數(shù) 極大似然估計(jì) 的一種方法,它可以從非完整數(shù)據(jù)集中對(duì)參數(shù)進(jìn)行 MLE (Memory Limit Exceeded)估計(jì) , 是一種非常簡(jiǎn)單實(shí)用的學(xué)習(xí)算法。這種方法可以廣泛地應(yīng)用于處理缺損數(shù)據(jù), 截尾數(shù)據(jù) , 帶有噪聲等所謂的不完全數(shù)據(jù) (inplete data)。 這可能是該算法表現(xiàn)較好的原因 。因此本文最終選取EM 算法對(duì)數(shù)據(jù)進(jìn)行挖掘 [21]。 EM( 最大期望算法 )主要 經(jīng)過兩個(gè)步驟交替進(jìn)行計(jì)算: 第一步是計(jì)算期望( E),利用對(duì)隱藏變量的現(xiàn)有估計(jì)值,計(jì)算其最大似然估計(jì)值; 第二步是最大化( M),最大化在 E 步上求得的最大似然值來計(jì)算參數(shù)的值。 第二 步上找到的參數(shù)估計(jì)值被用于下一個(gè) 期望 計(jì)算 步驟 中,這個(gè)過程不斷交替進(jìn)行 ,形成一個(gè)迭代過程 。 總體來說, EM 的算法流程如下: 初始化分布參數(shù) 重復(fù)直到收斂: E 步驟:估計(jì)未知參數(shù)的期望值,給出當(dāng)前的參數(shù)估計(jì)。 M 步驟:重新估計(jì)分布參數(shù),以使得數(shù)據(jù)的似然性最大 ,給出未知變量的期望估計(jì)。 EM 算法參數(shù) 設(shè)置 本文選取了 EM 算法的缺省參數(shù),如下所示: MaxIterations(最大迭代次數(shù)) =100 MinstdDev(最小權(quán)重) = NumClusters(集群數(shù)) =1 Seed(種子數(shù) )=100 其中,最大迭代次數(shù)表示重
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1