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

正文內(nèi)容

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

2025-06-12 19:30 本頁面
 

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