(湖南環(huán)境生物職業(yè)技術(shù)學(xué)院,湖南 衡陽(yáng) 421005)
數(shù)據(jù)采集層:利用python 網(wǎng)絡(luò)爬蟲(chóng)、DataX、Sqoop 和ETL 等構(gòu)件,可以對(duì)大量的數(shù)據(jù)進(jìn)行有效的收集;采用Flume、Kafka 等方法,進(jìn)行了對(duì)流式數(shù)據(jù)收集。同時(shí),基于數(shù)據(jù)結(jié)構(gòu)的不同,采用批量采集和流采集技術(shù)可以完成對(duì)結(jié)構(gòu)化、半結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)的采集。
數(shù)據(jù)采集層按照數(shù)據(jù)源的類別來(lái)完成數(shù)據(jù)的收集,以數(shù)據(jù)的相關(guān)數(shù)據(jù)庫(kù)、文件等為基礎(chǔ)。完成網(wǎng)絡(luò)上的數(shù)據(jù)的爬蟲(chóng)工作,以及數(shù)據(jù)采集、社交加粉等工作。
Hadoop 技術(shù)體系結(jié)構(gòu)包括HDFS、MapReduce、Hive、ZooKeeper、Zookeeper等,最基本和最關(guān)鍵的部分是由一個(gè)文件系統(tǒng)HDFS(Hadoop Distributed File System)來(lái)實(shí)現(xiàn)MapReduce。
K-means 聚類是最早期提出的一種聚類方法。由于其編程簡(jiǎn)單、易于聚類和聚類的高效性,因此具有廣泛的適用性。然而在數(shù)據(jù)量不斷增加的情況下,K-means 聚類方法的聚類效率會(huì)明顯下降,而且錯(cuò)誤也會(huì)增加。
K-means 聚類算法實(shí)現(xiàn)聚類的基本步驟如下:1) 負(fù)荷數(shù)據(jù)集N,選擇K 個(gè)群組中心為初始聚類中心。在進(jìn)行聚類中心的選定時(shí),可以采用多種方法進(jìn)行分類,然而在大部分的情況下都無(wú)法一次選出最佳群集。在傳統(tǒng)的隨機(jī)抽取算法中,由于采用了隨機(jī)抽取的方法,往往無(wú)法直接獲得最好的結(jié)果,因此必須反復(fù)地選擇不同的簇,以獲得最佳的聚類中心。2)對(duì)各用戶數(shù)據(jù)和K 個(gè)群集的關(guān)聯(lián)程度進(jìn)行運(yùn)算,并按照所求的關(guān)聯(lián)性,將各用戶數(shù)據(jù)分別按最具關(guān)聯(lián)性的類別進(jìn)行分組。3) 將各群集中心的全部數(shù)據(jù)平均化,以此為新的聚類中心。4)建立一個(gè)目的功能,并求出該目的功能的最低數(shù)值,接著第2步和第3 步反復(fù)進(jìn)行,直至所產(chǎn)生的聚類中心大于該目的功能的最低數(shù)值。5) 將獲得滿意的聚類中心的輸出數(shù)據(jù)用作該算法的聚類中心。
K-means 的核心代碼如下。
# 導(dǎo)包from sklearn.cluster import KMeans# 模型創(chuàng)建kmeans_model=KMeans(n_clusters=5,init=’k-means++’,random_state=11)# 進(jìn)行聚類處理y_kmeans=kmeans_model.fit_predict(x)
FCM(Fuzzy-c-Means algorithm,F(xiàn)CM)聚類算法的基本原理是模糊理論,所以又稱模糊C 均值算法。FCM 聚類算法是將個(gè)用戶數(shù)據(jù)作為個(gè)向量x,F(xiàn)CM 聚類算法的模糊隸屬度的取值為[0,1],通過(guò)計(jì)算每個(gè)向量的模糊隸屬度將其進(jìn)行歸類。FCM 聚類算法的實(shí)質(zhì)是構(gòu)建模糊矩陣,矩陣中的每個(gè)元素就是每個(gè)向量的模糊隸屬度,所以其值的大小為[0,1],歸類后的每個(gè)元素的模糊隸屬度之和均為1。通過(guò)設(shè)定非相似性函數(shù),并以函數(shù)的最小值為目標(biāo)值,求取聚類中心。
FCM 聚類算法非線性約束條件的表達(dá)式如公式(1)所示。
式中:u的取值為[0,1];c為模糊類的聚類中心;d為第個(gè)聚類中心到第的向量之間的歐式距離;為加權(quán)指數(shù),其取值為[1,∞]。
為使目標(biāo)函數(shù)取得最小值,該文做出以下改進(jìn),其表達(dá)式如公式(3)所示。
式中:λ為個(gè)約束式的拉格朗日因子。
使目標(biāo)函數(shù)取得最小值的必要條件如公式(4)所示。
FCM 聚類算法的基本步驟如下。1) 計(jì)算每個(gè)向量的模糊隸屬度,構(gòu)建初始模糊矩陣,使矩陣中的每個(gè)元素的取值為[0,1],使其滿足每類中的向量的隸屬度之和為1。2) 計(jì)算個(gè)模糊類的聚類中心c。3) 計(jì)算目標(biāo)函數(shù),并設(shè)定目標(biāo)函數(shù)的閾值。4) 計(jì)算新的模糊矩陣。然后再返回到第2 步,不斷地進(jìn)行迭代,直到滿足條件為止。FCM 聚類算法的流程圖如圖1 所示。
圖1 FCM 聚類算法的流程圖
對(duì)數(shù)據(jù)進(jìn)行聚類時(shí),由于不同類的數(shù)據(jù)具有一定的相關(guān)性,會(huì)導(dǎo)致在聚類的過(guò)程中發(fā)生錯(cuò)誤的情況。而馬氏距離中的協(xié)方差矩陣能夠消除不同類數(shù)據(jù)之間相關(guān)性,因此利用馬氏距離優(yōu)化FCM 聚類算法(MFCM)用于對(duì)不同數(shù)據(jù)進(jìn)行分類。通過(guò)在FCM 聚類算法的目標(biāo)函數(shù)中增加協(xié)方差矩陣因子改善目標(biāo)函數(shù)的閾值,達(dá)到提高聚類精度的目的。增加的調(diào)節(jié)因子為-1n ││,得到的MCFM 聚類算法的目標(biāo)函數(shù)的表達(dá)式如公式(5)所示。
式中:a為樣本到同簇其他樣本的平均距離。
MFCM聚類算法的基本步驟如下。1) 設(shè)有個(gè)用戶負(fù)荷數(shù)據(jù),聚類的數(shù)目為個(gè),的取值范圍為[2,],設(shè)置起始聚類中心和閾值,并使迭代計(jì)數(shù)器的次數(shù)為=0。2) 根據(jù)上述公式確定隸屬度函數(shù)。3) 根據(jù)上述公式確定聚類中心。4) 不斷進(jìn)行迭代,求取新的聚類中心,直到‖A-A‖,然后將輸出的結(jié)果作為新的聚類中心。如果‖A-A‖,則重新回到第一步,并將迭代計(jì)數(shù)器的次數(shù)設(shè)置為=+1。MFCM 聚類算法的流程圖如圖2 所示。
圖2 MFCM 聚類算法流程圖
對(duì)數(shù)據(jù)進(jìn)行聚類分析后,需要對(duì)聚類的效果進(jìn)行評(píng)估,最常用的方法就是計(jì)算每類數(shù)據(jù)之間的距離。數(shù)據(jù)之間的距離越遠(yuǎn),說(shuō)明聚類的效果越好,數(shù)據(jù)之間的距離越近,聚類的效果越差。采用不同方法對(duì)聚類結(jié)果進(jìn)行分析時(shí),得到的距離也不一樣。對(duì)數(shù)據(jù)(,),距離函數(shù)的選取應(yīng)具備以下條件。1) 滿足對(duì)稱性原則,即(,)=(,);2) 滿足非負(fù)性原則,即(,)=0。3) 滿足三角不定式原則,即(,)≤(,)+(,)。4) 滿足自反性原則,即當(dāng)=時(shí)(,)=0。
歐式距離是計(jì)算各類之間距離最簡(jiǎn)單的一種方法,即計(jì)算空間中2 個(gè)數(shù)據(jù)點(diǎn)之間的距離,表達(dá)式如公式(11)所示。
式中:為表示第1 行第列數(shù);為表示第2 行第列數(shù);為表示第1 行第列數(shù);為表示第2 行第列數(shù)。
歐式距離雖然能能夠計(jì)算2 個(gè)負(fù)荷數(shù)據(jù)或者2 個(gè)數(shù)據(jù)向
量之間的距離,但是無(wú)法區(qū)別數(shù)據(jù)之間的差異性,導(dǎo)致誤差增大,因此應(yīng)用范圍具有一定的局限性。
余弦相似度的基本原理是通過(guò)計(jì)算2個(gè)數(shù)據(jù)或者2個(gè)數(shù)據(jù)向量之間的余弦值,將數(shù)據(jù)進(jìn)行分類。通過(guò)計(jì)算相似度的大小判斷數(shù)據(jù)之間的相似性。
余弦相似度的表達(dá)式如公式(13)所示。
余弦相似度的取值為[-1,1],通過(guò)cos()值的大小,可以算出2 個(gè)數(shù)據(jù)之間的夾角大小。與歐式距離相比,當(dāng)2 個(gè)數(shù)據(jù)之間的差異性過(guò)大時(shí),余弦相似度對(duì)聚類分析的效果更好,產(chǎn)生的誤差更小。
馬氏距離是將數(shù)據(jù)通過(guò)協(xié)方差公式計(jì)算數(shù)據(jù)之間的距離。馬氏距離能夠分析數(shù)據(jù)的各種特性之間的聯(lián)系,比歐式距離具有更好的聚類效果,能減小誤差。
令存在數(shù)據(jù)集(x,y),其中x∈R,y∈R,數(shù)據(jù)集共有個(gè)數(shù)據(jù),x是維特征向量,y∈[-1,1]為x的類標(biāo)號(hào)。
設(shè)是×階輸入矩陣,每行代表一個(gè)數(shù)據(jù),則數(shù)據(jù)向量的均值表達(dá)式如公式(14)所示。
馬氏距離具備的特點(diǎn)包括平移不變性、旋轉(zhuǎn)不變性以及放射不變性。
由于馬氏距離采用了協(xié)方差矩陣,因此其聚類性能優(yōu)于歐式距離。因?yàn)轳R氏距離構(gòu)造的矩陣中的元素都是經(jīng)過(guò)標(biāo)準(zhǔn)化處理的,所以可以區(qū)分出各種維度的數(shù)據(jù),進(jìn)而加強(qiáng)了各種數(shù)據(jù)矢量的關(guān)聯(lián)性。馬氏距離不但可以更好地進(jìn)行分類,還可以擴(kuò)大數(shù)據(jù)的差異,提高其聚類效率。
利用聚類有效性函數(shù)可以評(píng)價(jià)聚類的效果和優(yōu)劣,并可以判定是否正確。由于該數(shù)據(jù)是一種非線性的曲線,不能通過(guò)對(duì)其屬性進(jìn)行直觀分析,因此可以通過(guò)分類之間的隔離程度和內(nèi)部的緊密程度來(lái)進(jìn)行間接判定。根據(jù)4 個(gè)指標(biāo)的規(guī)模來(lái)判定各類別間的關(guān)聯(lián)度,其關(guān)聯(lián)度愈高,則聚類結(jié)果愈佳。相關(guān)度愈小,效應(yīng)愈弱。
相似度表達(dá)式如公式(18)所示。
式中:為類內(nèi)加權(quán)平均值。
某一類數(shù)據(jù)的類內(nèi)緊密度表達(dá)式如公式(20)所示。
MIA 函數(shù)的表達(dá)式如公式(21)所示。
式中:N 為用戶的個(gè)數(shù);MIA 為類內(nèi)距離和的平均值,MIA的值越小,聚類效果越好。
CDI 函數(shù)的表達(dá)式如公式(22)所示。
式中:X為第類用戶;為類內(nèi)緊密度的平均值,的值越小,聚類效果越好。
SI 函數(shù)的表達(dá)式如公式(23)所示。
DBI 函數(shù)的表達(dá)式如公式(24)所示。
式中:為類內(nèi)距離與類間距離的比值,的值越小,聚類效果越好。
該文使用的熵函數(shù)為Renyi 熵函數(shù),主要用于確定隨機(jī)事件的不確定度。Renyi 熵函數(shù)通過(guò)對(duì)Renyi 熵的值進(jìn)行計(jì)算評(píng)估聚類效果。
Renyi 熵函數(shù)的表達(dá)式如公式(25)所示。
式中:C為聚類后的第類數(shù)據(jù)集;為類內(nèi)的數(shù)據(jù)總數(shù);N為第類數(shù)據(jù)集所含數(shù)據(jù)總數(shù);(x-x,∑)為高斯核函數(shù)。
(x-x,∑)的表達(dá)式如公式(26)所示。
式中:為聚類后的第類數(shù)據(jù)集;C為聚類后的第類數(shù)據(jù)集;N為第類數(shù)據(jù)集所含數(shù)據(jù)總數(shù);N為第類數(shù)據(jù)集所含數(shù)據(jù)總數(shù);為個(gè)無(wú)標(biāo)記樣本,= {,, . . . ,X};為個(gè)無(wú)標(biāo)記樣本,= {,, . . . ,X}。
Renyi 熵函數(shù)能夠評(píng)估聚類效果,主要是通過(guò)計(jì)算Renyi熵的值得出數(shù)據(jù)集之間的無(wú)序程度。Renyi 熵的值越大,聚類效果越好;Renyi 熵的值越小,聚類效果越差。
用戶負(fù)荷數(shù)據(jù)聚類指標(biāo)對(duì)比圖如圖3 所示。從圖3 可以看出,MFCM 聚類方法具有比FCM 聚類方法更好的分類結(jié)果,說(shuō)明MFCM 聚類方法在聚類中的分類差異較大,因此具有較好的聚類性能。
圖3 用戶負(fù)荷數(shù)據(jù)聚類指標(biāo)對(duì)比圖
MFCM 聚類方法在分類中的類內(nèi)點(diǎn)和MIA 指標(biāo)顯著降低,說(shuō)明MFCM 聚類方法在分類中的關(guān)聯(lián)性更強(qiáng),分類效果也更好。該文利用MFCM 方法對(duì)負(fù)荷進(jìn)行更好的分類,并根據(jù)類別的不同采用了相應(yīng)的正確率閾值。根據(jù)分類數(shù)目的不同,得到的正確率閾值結(jié)果見(jiàn)表1。
表1 用戶數(shù)據(jù)分類數(shù)目正確率對(duì)比
由表1 中的數(shù)據(jù)可以得出以下結(jié)論。1) 無(wú)論將負(fù)荷數(shù)據(jù)分為幾類,基于MFCM 聚類算法的正確率要都要高于傳統(tǒng)的FCM聚類算法,因此可以證明基于MFCM 聚類算法具有更好的聚類效果。2) 當(dāng)將負(fù)荷數(shù)據(jù)分為4 類時(shí),基于MFCM 聚類算法的正確率最高,并且始終保持在設(shè)定的閾值90%以上,表明將用戶負(fù)荷數(shù)據(jù)分為4 類時(shí)聚類效果最好。基于用電行為和用戶類型的原因,用戶類型存在相同用電行為,導(dǎo)致無(wú)法正確進(jìn)行聚類分析。另外,隨著分類數(shù)目的增加,SI、DBI、MIA 和CDI 指標(biāo)的值不斷下降并逐漸穩(wěn)定在某一定值左右波動(dòng)。將負(fù)荷數(shù)據(jù)分成4 類后,各種指標(biāo)的值在小范圍內(nèi)波動(dòng),因此把數(shù)據(jù)聚類成4 類是正確的。同時(shí)將負(fù)荷數(shù)據(jù)分成4 類后,基于MFCM 聚類算法的指標(biāo)值比傳統(tǒng)的FCM 聚類算法和K-means 聚類算法都小,聚類效果明顯優(yōu)于其他算法。
該文主要從K-means 算法和聚類質(zhì)量評(píng)價(jià)函數(shù)入手進(jìn)行分析。結(jié)合研究數(shù)據(jù)特點(diǎn)分別構(gòu)建特征核心指標(biāo)體系模型、聚類分析模型和聚類質(zhì)量評(píng)價(jià)模型。結(jié)合上述指標(biāo)描述,用實(shí)際運(yùn)行數(shù)據(jù)驗(yàn)證模型有效性,并結(jié)合實(shí)例分析判斷各聚類指標(biāo)值,確定算法的適用性,進(jìn)而了解大數(shù)據(jù)處理算法。結(jié)果表明其聚類分析分類明顯,聚類效果相對(duì)穩(wěn)定。
中國(guó)新技術(shù)新產(chǎn)品2022年14期