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

正文內(nèi)容

基于測量的在線視頻流媒體質(zhì)量因素分析畢業(yè)論文(編輯修改稿)

2025-07-23 20:49 本頁面
 

【文章內(nèi)容簡介】 據(jù)官方document里的quickstart[4]進行一些文件讀取操作,并對內(nèi)容進行處理,做mapreduce之類的事情。在sparkshell中運行一下最簡單的例子wordcount,輸入代碼: scala().filter((Spark)).count 。 Long = 15 即含有“Spark”的行數(shù)有15行。 然后輸入scala val count = (line = ( )).map(word = (word, 1)).reduceByKey(_+_) scala () 在字數(shù)統(tǒng)計的例子里,map一段文本的所有文字,然后通過單詞reduce它們,最后總結(jié)出單詞的個數(shù)。RDD能夠從磁盤讀取然后保持在內(nèi)存中,提高了性能,可以看出這和Hadoop大部分基于磁盤的速度要快多。接著使用spark自帶的run腳本運行spark程序 $ ./bin/runexample Pi is roughly 計算得出Pi值 第四章 機器學(xué)習(xí)算法模型 聚類分析 聚類分析[5](Cluster analysis)是數(shù)據(jù)挖掘及機器學(xué)習(xí)領(lǐng)域內(nèi)的重點問題之一,在許多領(lǐng)域受到廣泛應(yīng)用,包括機器學(xué)習(xí)、數(shù)據(jù)挖掘、模式識別、決策支持、圖像分析以及生物信息,是最重要的數(shù)據(jù)分析方法之一。聚類是將數(shù)據(jù)對象的集合分組成為由類似的對象組成的多個簇的過程。由聚類所生成的簇是一組數(shù)據(jù)對象的集合,這些對象與同一個簇中的對象彼此相似,與其他簇中的對象彼此相異。聚類算法大體上可分為基于劃分的方法、 基于層次的方法、基于密度的方法、基于網(wǎng)格的方法以及基于模型的方法。 一般把數(shù)據(jù)聚類歸納為一種非監(jiān)督式學(xué)習(xí)問題,在這個問題上,我們的目標(biāo)是將一部分實體根據(jù)某種意義上的相似度和另一部分實體聚在一起。聚類通常被用于探索性的分析,或者作為層次化監(jiān)督學(xué)習(xí)管道網(wǎng)的一個組件。 Kmeans algorithm Kmeans[6]算法是一種得到最廣泛使用的基于劃分的聚類算法[7],把n個對象分為k個簇,以使簇內(nèi)具有較高的相似度。相似度的計算根據(jù)一個簇中對象的平均值來進行。它與處理混合正態(tài)分布的最大期望算法很相似,因為他們都試圖找到數(shù)據(jù)中自然聚類的中心。 算法首先隨機地選擇k個對象,每個對象初始地代表了一個簇的平均值或中心。對剩余的每個對象根據(jù)其與各個簇中心的距離,將它賦給最近的簇,然后重新計算每個簇的平均值。這個過程不斷重復(fù),直到準則函數(shù)收斂。 它假設(shè)對象屬性來自于空間向量,并且目標(biāo)是使各個群組內(nèi)部的均方誤差總和最小。假設(shè)有k個群組Si, i=1,2,...,k。μi是群組Si內(nèi)所有元素xj的重心,或叫中心點。 算法描述1. 選擇聚類的個數(shù)k。2. 任意產(chǎn)生k個聚類,然后確定聚類中心,或者直接生成k個中心。 3. 根據(jù)每個聚類中所有對象的均值 ( 中心對象 ) , 計算樣本集中每個對象與這些中心對象的歐式距離 , 并根據(jù)最小距離重新對相應(yīng)對象進行劃分。即對每個點確定其聚類中心點 再計算其聚類新中心。 4. 再計算其聚類新中心,即重新計算每個聚類的均值。5. 重復(fù)以上步驟直到滿足收斂要求。(通常就是確定的中心點不再改變)。 算法的性能分析 優(yōu)點:1. kmeans算法是解決聚類問題的一種經(jīng)典算法,算法簡單、快速。 2. 對處理大數(shù)據(jù)集,該算法是相對可伸縮的和高效率的,因為它的復(fù)雜度大約是O(nkt),其中n是所有對象的數(shù)目,k是簇的數(shù)目,t是迭代的次數(shù)。通常kn。這個算法經(jīng)常以局部最優(yōu)結(jié)束。 3. 算法嘗試找出使平方誤差函數(shù)值最小的k個劃分。當(dāng)簇是密集的、球狀或團狀的,而簇與簇之間區(qū)別明顯時,它的聚類效果很好。 缺點:1. kmeans方法只有在簇的平均值被定義的情況下才能使用,不適用于某些應(yīng)用,如涉及有分類屬性的數(shù)據(jù)不適用。 2. 要求用戶必須事先給出要生成的簇的數(shù)目k。 3. 對初值敏感,對于不同的初始值,可能會導(dǎo)致不同的聚類結(jié)果。 4. 不適合于發(fā)現(xiàn)非凸面形狀的簇,或者大小差別很大的簇。 5. 對于噪聲和孤立點數(shù)據(jù)敏感,少量的該類數(shù)據(jù)能夠?qū)ζ骄诞a(chǎn)生極大影響。 第五章 實驗處理與實驗分析 預(yù)處理待測量的數(shù)據(jù)集 本實驗所選取的數(shù)據(jù)來源為PPTV提供的移動客戶端服務(wù)器端的數(shù)據(jù)。此待待測量數(shù)據(jù)文檔命名為qos,含有10140條,由用戶uid、ip地址,觀看視頻時間、緩沖次數(shù)、拖動次數(shù),非拖動緩沖次數(shù)這六個字段組成。 例如文本中第一行數(shù)據(jù)為:357238047592824 236 0 0 0 前兩列因為不適合處理聚成坐標(biāo)需要去除,所以使用命令去除。 $ awk 39。{print $3, $4, $5, $6}39。 將文本文檔qos中的第三,四,五,六列打印,并保存到新建的QOS文本文檔中。 經(jīng)數(shù)據(jù)預(yù)處理第一行變?yōu)椋?36 0 0 0 察看處理完的數(shù)據(jù)集QOS。 $ grep 打印出QOS文檔中的內(nèi)容至大屏幕。 待測量數(shù)據(jù)集的條數(shù)   $ ./bin/sparkshell   啟動Spark shell   scala val countlines_data = ()   scala ()   得到Long = 10140   即文本長度為10140行 運用KMeans算法 下載NumPy A Kmeans clustering program using MLlib. MLlib requires NumPy + 直接用Python調(diào)用含KMeans的MLlib,會提示需要安裝NumPy 。 首先通過下面的命令安裝pip,pip是Python的一個安裝和管理擴展庫的工具。 sudo aptget install pythonpip 安裝git: sudo aptget install git 安裝Pythondev,Python的開發(fā)環(huán)境,方便今后編譯其他擴展庫 sudo aptget install pythondev 通過aptget命令可以快速安裝這個庫: Fsudo aptget install pythonscipy 如果需要通過pip編譯安裝,可以先用aptget命令安裝所有編譯所需的庫: sudo aptget builddep pythonnumpy 然后通過pip命令安裝: sudo pip install numpy 這樣numpy就裝成功了,至此可以使用Python中的MLlib了。 Kmeans算法的python代碼import sysimport numpy as npfrom pyspark import SparkContextdef parseVector(line): return ([float(x) for x in (39。 39。)])def closestPoint(p, centers): bestIndex = 0 closest = float(+inf) for i in range(len(centers)): tempDist = ((p centers[i]) ** 2) if tempDist closest: closest = tempDist bestIndex = i return bestIndexif __name__ == __main__: if len() != 4: print , Usage: kmeans file k convergeDist exit(1) sc = SparkContext(appName=PythonKMeans) lines = ([1]) //讀取數(shù)據(jù),可以是從HDFS也可以是硬盤,作為RDD data = (parseVector).cache() K = int([2]) //k clusters 聚類中心個數(shù) convergeDist = float([3]) //迭代收斂條件 //隨機初始化K個聚類中心 kPoints = (False, K, 1) tempDist = while tempDist convergeDist: closest = ( lambda p: (closestPoint(p, kPoints), (p, 1))) //closest為(類別,(點,1)),1是用來后續(xù)統(tǒng)計各個類中點的數(shù)量;lambda 是ALS的正則化參數(shù) pointStats = ( lambda (x1, y1), (x2, y2): (x1 + x2, y1 + y2)) //按類別,計算點的坐標(biāo)和,以及該類別中節(jié)點總數(shù)(類別,(點向量和,點數(shù))) newPoints = ( lambda (x, (y, z)): (x, y / z)).collect() //生成新的聚類中心的Map(類別,新聚類中心) tempDist = sum(((kPoints[x] y) ** 2) for (x, y) in newPoints) // 計算當(dāng)前與之前向量vectors的delta值 for (x, y) in newPoints: kPoints[x] = y //更新聚類中心到kPoint print Final centers: + str(kPoints) 在Spark中運行 $ ~/$ ./bin/sparksubmit ~/ 5   第一個參數(shù)是k,即聚類質(zhì)心點(cluster centroids)。  第二個參數(shù)是convergeDist,即迭代收斂條件。 ,5個代表聚類中心的點。  聚類中心點1:(+03,+00,+00,)  聚類中心點2:(+02,+00,+00,)  聚類中心點3:(+03,+00,+00,)  聚類中心點4:(+03,+00,+00,)  聚類中心點5:(+03,+00,+00,) 聚類效果及分析 Kmeans中k值的選取 最簡單的確定初始類簇中心點的方法是隨機選擇K個點作為初始的類簇中心點,但是該方法在有些情況下的效果較差。 所以K個初始類簇點的選取還有兩種方法:1)選擇彼此距離盡可能遠的K個點 2)先對數(shù)據(jù)用層次聚類算法或者Canopy算法進行聚類,得到K個簇之后,從每個類簇中選擇一個點,該點可以是該類簇的中心點,或者是距離類簇中心點最近的那個點。 本次實驗采取的方法是選擇彼此距離盡可能遠的K個點。首先隨機選擇一個點作為第一個初始類簇中心點,然后選擇距離該點最遠的那個點作為第二個初始類簇中心點,然后再選擇距離前兩個點的最近距離最大的點作為第三個初始類簇的中心點,以此類推,直至選出K個初始類簇中心點。1. 給定一個合適的類簇指標(biāo),比如平均半徑或直徑。2. 類簇的直徑是指類簇內(nèi)任意兩點之間的最大距離。3. 類簇的半徑是指類簇內(nèi)所有點到類簇中心距離的最大值。4. 只要我們假設(shè)的類簇的數(shù)目等于或者高于真實的類簇的數(shù)目時,該指標(biāo)上升會很緩慢,而一旦試圖得到少于真實數(shù)目的類簇時,該指標(biāo)會急劇上升。 ,聚類效果和類簇指標(biāo)的效果圖。 K取值從2到9時的類簇指標(biāo)的變化曲線,選擇類簇指標(biāo)是K個類簇的平均質(zhì)心距離的加權(quán)平均值。橫軸是選取的聚類個數(shù),縱軸是類簇的平均質(zhì)心距離的加權(quán)平均值??梢悦黠@看到,當(dāng)K取值5時,類簇指標(biāo)的下降趨勢最快,所以K的正確取值應(yīng)該是5。: 本次實驗結(jié)果分析  聚類中心點1:(+03,+00,+00,)   聚類中心點2:(+02,+00,+00,)   聚類中心點3:(+03,+00,+00,)   聚類中心點4:(+03,+00,+00,)   聚類中心點5:(+03,+00,+00,)  根據(jù)得到的5個聚類中心點可以知道,用戶的非拖動緩沖次數(shù)相對于緩沖次數(shù)和拖動次數(shù)來說比較少,而用戶在視頻的觀看時間有1千多秒,也有2千秒、3千秒、6千秒,這與視頻的長度以及用戶對視頻的喜愛程度相關(guān)。  根據(jù)聚類中心點,尤其是觀察聚類中心點4和5,可知當(dāng)視頻的停留時間變長時,相應(yīng)的非拖動緩沖次數(shù)在上升,而拖動次數(shù)在下降。用戶拖動的次數(shù)越多,表明可能是因為視頻不吸引人,也可能是用戶時間有限,當(dāng)然最后會導(dǎo)致在視頻的停留時間上減少。非拖動緩沖次數(shù)的上升,則可能與用戶的網(wǎng)絡(luò)、視頻所在的服務(wù)器、地理位置等相關(guān)。非拖動緩沖
點擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1