這里以學(xué)校的學(xué)生成績進(jìn)行聚類分析為案例 1、背景 隨著我國經(jīng)濟(jì)的發(fā)展,網(wǎng)絡(luò)已被應(yīng)用到各個(gè)行業(yè),人們對(duì)網(wǎng)絡(luò)帶來的高效率越來越重視,然而大量數(shù)據(jù)信息給人們帶來方便的同時(shí),也隨之帶來了許多新問題,大量數(shù)據(jù)資源的背后隱藏著許多重要的信息,人們希望能對(duì)其進(jìn)行更深入的分析,以便更好地利用這些數(shù)據(jù),從中找出潛在的規(guī)律。那么,如何從大量的數(shù)據(jù)中提取并發(fā)現(xiàn)有用信息以提供決策的依據(jù),已成為一個(gè)新的研究課題。 目前普遍使用的成績分析方法一般只能得到均值、方差等一類信息,且僅僅是從一門課程獨(dú)立數(shù)據(jù)進(jìn)行的分析,但在實(shí)際教學(xué)中,比如學(xué)生在學(xué)習(xí)某一門課程時(shí),是哪一門或者幾門課程對(duì)其影響很大,包括教學(xué)以外的哪些因素對(duì)學(xué)生成績?cè)斐闪溯^大的影響等各種有價(jià)值的信息往往無法獲知。 2、聚類分析 在數(shù)據(jù)庫中的知識(shí)發(fā)現(xiàn)和數(shù)據(jù)挖掘(KDDM)受到目前人工智能與數(shù)據(jù)庫界的廣泛重視。KDDM的目的是從海量的數(shù)據(jù)中提取人們感興趣的、有價(jià)值的知識(shí)和重要的信息,聚類則是KDDM領(lǐng)域中的一個(gè)重要分支。所謂聚類是將物理或抽象的集合分組成為類似的對(duì)象組成的多個(gè)類的過程。 聚類分析就是將一組數(shù)據(jù)分組,使其具有最大的組內(nèi)相似性和最小的組間相似性。簡單的說就是達(dá)到不同聚類中的數(shù)據(jù)盡可能不同,而同一聚類中的數(shù)據(jù)盡可能相似,它與分類不同,分類是對(duì)于目標(biāo)數(shù)據(jù)庫中存在哪些類這一信息是知道的,所要做的就是將每一條記錄分別屬于哪一類標(biāo)記出來;而聚類是在預(yù)先不知道目標(biāo)數(shù)據(jù)庫到底有多少類的情況下,希望將所有的記錄組成不同的簇或者說“聚類”,并且使得在這種分類情況下,以某種度量為標(biāo)準(zhǔn)的相似性,在同一聚類之間最小化,而在不同聚類之間最大化。事實(shí)上,聚類算法中很多算法的相似性都基于距離而且由于現(xiàn)實(shí)數(shù)據(jù)庫中數(shù)據(jù)類型的多樣性,關(guān)于如何度量兩個(gè)含有非數(shù)值型字段的記錄之間的距離的討論有很多,并提出了相應(yīng)的算法。聚類分析的算法可以分為以下幾類:劃分方法、層次方法、基于密度方法等。這里只描述一種:K-means算法,如下 3、K-means算法 K均值聚類,即數(shù)據(jù)挖掘中的C均值聚類,屬于聚類分析方法中一種基本的且應(yīng)用最廣泛的劃分算法。 K-means算法是J.B.MacQueen在1967年提出的,是聚類方法中一個(gè)基本的劃分方法,也是目前諸多聚類算法中極有影響的一種技術(shù)。K-均值算法以k為參數(shù),把N個(gè)對(duì)象分為k個(gè)簇,以使簇內(nèi)具有較高的相似度。相似度的計(jì)算根據(jù)一個(gè)簇中對(duì)象的平均值來進(jìn)行。 算法首先隨機(jī)地選擇K個(gè)對(duì)象,每個(gè)對(duì)象初始地代表了一個(gè)簇的平均值或中心。對(duì)剩余的每個(gè)對(duì)象根據(jù)其與各個(gè)簇中心的距離,將它賦給最近的簇。然后重新計(jì)算每個(gè)簇的平均值。這個(gè)過程不斷重復(fù),直到準(zhǔn)則函數(shù)收斂。K-Means算法的準(zhǔn)則函數(shù)定義為: 即E是數(shù)據(jù)庫所有對(duì)象的平方誤差的總和。其中x是空間中的點(diǎn),表示給定的數(shù)據(jù)對(duì)象,是簇的平均值。 K-means算法描述為: 輸入:簇的數(shù)目k和包含n個(gè)對(duì)象的數(shù)據(jù)庫 輸出:k個(gè)簇,使平方誤差準(zhǔn)則最小 (1)assigninitial value for means; //任意選擇k個(gè)對(duì)象作為初始的簇中心 (2)REPEAT (3)FOR j=ito n DO assign each xj to the cluster which has the closest mean; //根據(jù)簇中對(duì)象的平均值,將每個(gè)對(duì)象賦給最類似的簇 (4)FORi=1 to k DO //更新簇的平均值,即計(jì)算每個(gè)對(duì)象簇中對(duì)象的平均值 (5)ComputeE; //計(jì)算準(zhǔn)則函數(shù)E (6)UNTILE 不再明顯地發(fā)生變化; 從上面的算法思想和算法框架,我們不難看出,K個(gè)初始聚類中心點(diǎn)的選取對(duì)聚類結(jié)果具有較大的影響,因?yàn)樵谠撍惴ㄖ惺请S機(jī)地選取任意K個(gè)點(diǎn)作為初始聚類中心。如果有先驗(yàn)知識(shí),可以選取具有代表性的點(diǎn)作為初始中心點(diǎn)。在上面這個(gè)算法中,一次迭代中把每一個(gè)數(shù)據(jù)對(duì)象分到離它最近的聚類中心所在的類中,這個(gè)過程的時(shí)間復(fù)雜度為O(nkd),這里n指的是總的數(shù)據(jù)對(duì)象的個(gè)數(shù),k是指定的聚類數(shù)也叫簇?cái)?shù),d是數(shù)據(jù)對(duì)象的維數(shù);新的分類產(chǎn)生以后需要計(jì)算新的聚類中心,這個(gè)過程的時(shí)間復(fù)雜度為0(nd)。所以這個(gè)算法一次迭代需要的總的時(shí)間復(fù)雜度為O(nkd)。 4、數(shù)據(jù)準(zhǔn)備與數(shù)據(jù)預(yù)處理(1)聚類數(shù)據(jù)的預(yù)處理 現(xiàn)實(shí)世界中的數(shù)據(jù)庫存在大量的噪聲數(shù)據(jù)、空缺數(shù)據(jù)和不一致數(shù)據(jù)?;虮磉_(dá)數(shù)據(jù)也存在這種情況。有很多數(shù)據(jù)預(yù)處理技術(shù)可以去掉數(shù)據(jù)中的噪聲,糾正不一致。為了提高涉及距離度量的聚類算法的精度和有效性,可以采用數(shù)據(jù)規(guī)范化的一些方法。 (2)數(shù)據(jù)清理 在實(shí)際數(shù)據(jù)庫中往往存在著一些空缺值和噪音數(shù)據(jù)。對(duì)于空缺值,可以采用以下方法填寫空缺值。 1)人工填寫空缺值。這種方法對(duì)操作人員要求較高。并且,該方法很費(fèi)時(shí),當(dāng)數(shù)據(jù)集很大時(shí),該方法可能行不通。 2)使用該空缺值所在屬性的平均值來填充。比如當(dāng)進(jìn)行樣本聚類時(shí),如果某個(gè)樣本在某個(gè)指標(biāo)值上的值空缺,可使用其它樣本在該指標(biāo)上的平均值來填充該空缺值。對(duì)于噪聲數(shù)據(jù),我們可以采用一些數(shù)據(jù)平滑技術(shù)來平滑數(shù)據(jù)。 3)數(shù)據(jù)規(guī)范化。如果數(shù)據(jù)庫中的各屬性的量綱和單位不同,在計(jì)算機(jī)對(duì)象間的距離之前,必須把不同的度量單位統(tǒng)一成相同的度量單位。由于屬于不同概念范疇的屬性具有不同的含義,把所有的屬性轉(zhuǎn)化成某個(gè)特定的度量單位是不可能的。常用的方法是把屬性的值域映射為一個(gè)相同的區(qū)間(通常是[0,1]區(qū)間),這個(gè)過程成為屬性的標(biāo)準(zhǔn)化或規(guī)范化。準(zhǔn)備500學(xué)生的成績包含:數(shù)學(xué)、英語、語文、物理、化學(xué)、歷史、地理等 5、RapidMiner聚類分析 分析流程:讀取數(shù)據(jù)庫---->聚類分析---->存儲(chǔ)csv文件---->結(jié)束 1、打開RapidMiner工具,進(jìn)入白板界面 2、讀取數(shù)據(jù)庫:拖曳---左側(cè)中的Database--->Read Database標(biāo)簽,讀取數(shù)據(jù)庫,然后設(shè)置數(shù)據(jù)庫的基本條件,點(diǎn)擊白板中的Read Database,查看右側(cè)信息 1)數(shù)據(jù)庫連接條件:點(diǎn)擊Connection右邊的數(shù)據(jù)庫連接配置按鈕,輸入相關(guān)信息如:數(shù)據(jù)庫名稱、用戶名、密碼、Host等,然后點(diǎn)擊下方的測試一下連接是否成功。 2)讀取數(shù)據(jù)庫中表以及相關(guān)屬性數(shù)據(jù)配置:點(diǎn)擊query右側(cè)的圖標(biāo),選擇數(shù)據(jù)庫下的表--屬性--以及條件,可以篩選出來對(duì)應(yīng)的數(shù)據(jù) 3、聚類算法:拖曳---左側(cè)中的Modeling--->segmentation--->K-Means標(biāo)簽到白板中,聚類算法插件,用于數(shù)據(jù)的聚類分析 1)配置聚類算法的參數(shù):簇?cái)?shù)、迭代次數(shù)等 4、存儲(chǔ)文件:拖曳---左側(cè)中的Data Access--->Files--->Write標(biāo)簽到白板中,存儲(chǔ)文件插件,用于分析結(jié)果的存儲(chǔ) 然后在右側(cè)csv file配置存儲(chǔ)路徑 5、分析流程圖---規(guī)劃,通過連接線連接整個(gè)的執(zhí)行流程,并點(diǎn)擊執(zhí)行按鈕 如圖所示 6、執(zhí)行結(jié)果 1)、分析具體結(jié)果數(shù)據(jù) 2)、統(tǒng)計(jì)數(shù)據(jù):最大、最小、平均值、聚類 3)、聚類分析圖 7、結(jié)果分析: 第一個(gè)圖可以看出: 1)每科目的最低分、最高分、平均分等信息 2)聚類:三簇?cái)?shù)據(jù),每簇?cái)?shù)據(jù)的學(xué)生個(gè)數(shù) 第二個(gè)圖可以看出: 1)每科分值的分布情況,看出大部分學(xué)生的成績分布在【70-80】之間,90分以上的偏少 第三個(gè)圖可以看出: 1)聚類按三簇進(jìn)行聚類,也就是說分為了三類學(xué)生 2)cluster_0結(jié)合第一個(gè)圖有378個(gè)學(xué)生實(shí)例,從成績上分析學(xué)習(xí)情況:地理成績不及格;語文、化學(xué)成績偏差;物理、英語較好;數(shù)學(xué)最好 cluster_1結(jié)合第一個(gè)圖有136個(gè)學(xué)生實(shí)例,從成績上分析學(xué)習(xí)情況:地理成績不及格;歷史、化學(xué)成績偏差;語文較好;物理、英語、數(shù)學(xué)最好 cluster_2結(jié)合第一個(gè)圖有26個(gè)學(xué)生實(shí)例,從成績上分析學(xué)習(xí)情況:地理成績不及格;歷史、化學(xué)成績偏差;語文、數(shù)學(xué)、物理較好;英語最好 因此,根據(jù)分析的數(shù)據(jù)來看,這三類的學(xué)生,老師可以根據(jù)不同的情況,進(jìn)行分類著重輔導(dǎo)。 |
|