李云松,羅斌
(安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽合肥230039;滁州職業(yè)技術(shù)學(xué)院,安徽滁州239000)
基于數(shù)據(jù)挖掘的高職高專(zhuān)生源分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
李云松,羅斌
(安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽合肥230039;滁州職業(yè)技術(shù)學(xué)院,安徽滁州239000)
本文根據(jù)目前高職高專(zhuān)院校存在的具體情況,將數(shù)據(jù)挖掘技術(shù)引入招生領(lǐng)域,分析了數(shù)據(jù)挖掘的各種方法,采用決策樹(shù)的分類(lèi)方法,對(duì)歷年的生源數(shù)據(jù)進(jìn)行挖掘,對(duì)生源數(shù)據(jù)的性別、成績(jī)、所屬類(lèi)別、特長(zhǎng)愛(ài)好、地區(qū)家庭收入水平等因素進(jìn)行分析,找出學(xué)生所填報(bào)專(zhuān)業(yè)和其本身屬性之間的關(guān)系,從而為高職高專(zhuān)院校的招生部門(mén)提供決策支持信息,使其更好地開(kāi)展招生宣傳工作。
數(shù)據(jù)挖掘;高職高專(zhuān);生源;專(zhuān)業(yè)方向;決策樹(shù)
從近幾年公布的數(shù)據(jù)來(lái)看,高職高專(zhuān)教育已成為高等教育中的半壁江山,而就安徽省而言更是如此。2010年安徽省省屬普通高等教育招生計(jì)劃安排296860人,其中普通本科計(jì)劃133490人,高職(專(zhuān)科)計(jì)劃183950人。但目前對(duì)全省的近70所高職高專(zhuān)而言,每所院校的平均學(xué)生人數(shù)并不多。高職高專(zhuān)院校對(duì)生源的爭(zhēng)奪已是不爭(zhēng)的事實(shí),加之省外部分高職院校和民辦職業(yè)教育的加入及部分考生選擇復(fù)讀或其他途徑就業(yè)等情況使得生源狀況更為緊張。
本文采用數(shù)據(jù)挖掘的方法,從近幾年入學(xué)的學(xué)生學(xué)籍?dāng)?shù)據(jù)中找出規(guī)律性的知識(shí)。為學(xué)生提供報(bào)考專(zhuān)業(yè)方向的指導(dǎo),為招生宣傳決策提供依據(jù),從而更好地服務(wù)于高職高專(zhuān)類(lèi)院校的招生工作。
數(shù)據(jù)挖掘(Data Mining)就是從大量的、不完全的、有噪聲的、模糊的、隨機(jī)的實(shí)際應(yīng)用數(shù)據(jù)中,提取隱含在其中的、人們事先不知道的、但又是潛在有用的信息和知識(shí)的過(guò)程[1]。在這個(gè)定義中包含了3層含義:首先,數(shù)據(jù)源必須是真實(shí)的、大量的、含噪聲的;其次,發(fā)現(xiàn)的是用戶感興趣的知識(shí);最后,發(fā)現(xiàn)的知識(shí)要可接受、可理解、可運(yùn)用。
數(shù)據(jù)挖掘是一個(gè)多個(gè)步驟組成的復(fù)雜過(guò)程,一般意義上我們可以把它分成3個(gè)階段:數(shù)據(jù)準(zhǔn)備;挖掘操作(模樣發(fā)現(xiàn));知識(shí)表示和模式評(píng)估。數(shù)據(jù)挖掘得到的知識(shí)是相對(duì)的,有特定前提和約束條件,是面向特定領(lǐng)域的。由此也要求數(shù)據(jù)挖掘的結(jié)果必須是易于理解的,最好能用自然語(yǔ)言來(lái)表達(dá)。如圖1所示。

圖1 數(shù)據(jù)挖掘的一般過(guò)程
數(shù)據(jù)挖掘技術(shù)按其功能可分為概念描述、關(guān)聯(lián)規(guī)則、分類(lèi)、聚類(lèi)和時(shí)序分析等。對(duì)于不同的數(shù)據(jù)挖掘目標(biāo),用戶期望不同的數(shù)據(jù)模樣,從而會(huì)采用不同的數(shù)據(jù)挖掘方法。
決策樹(shù)是一種類(lèi)似于流程圖的樹(shù)結(jié)構(gòu);其中,每個(gè)非葉節(jié)點(diǎn)表示一個(gè)屬性上的測(cè)試,每個(gè)分枝代表一個(gè)測(cè)試輸出,而每個(gè)葉節(jié)點(diǎn)存放一個(gè)類(lèi)標(biāo)號(hào)。樹(shù)的最頂層節(jié)點(diǎn)是根節(jié)點(diǎn)。每一條從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的路徑就是一條規(guī)則。規(guī)則以if-then方式給出,用戶可以很容易理解。決策樹(shù)歸納的學(xué)習(xí)和分類(lèi)步驟是簡(jiǎn)單和快速的。生源分析系統(tǒng)是一個(gè)實(shí)際應(yīng)用的系統(tǒng),執(zhí)行的效率是一個(gè)比較重要的指標(biāo),所以學(xué)生生源分析系統(tǒng)選擇決策樹(shù)算法。
生源分析系統(tǒng)提供數(shù)據(jù)清理與決策樹(shù)的生成。決策樹(shù)的生成用于從訓(xùn)練數(shù)據(jù)生成決策樹(shù)模型以及規(guī)則集。整個(gè)系統(tǒng)的結(jié)構(gòu)如圖2所示。

圖2 系統(tǒng)結(jié)構(gòu)圖
生源分析系統(tǒng)數(shù)據(jù)挖掘模型包括數(shù)據(jù)集和對(duì)數(shù)據(jù)集的操作兩部分,表示為:{DataSet,OP1,OP2,OP3,OP4}。
其中DataSet是訓(xùn)練數(shù)據(jù)集,用來(lái)存儲(chǔ)生源分析系統(tǒng)的業(yè)務(wù)數(shù)據(jù)以及數(shù)據(jù)字典,即{性別,考生特長(zhǎng),考生獎(jiǎng)懲,考生類(lèi)別,成績(jī),專(zhuān)業(yè)};OP1,OP2,OP3,OP4表示對(duì)DataSet的操作。其含義分別為: OP1:數(shù)據(jù)清理與轉(zhuǎn)換,OP2:決策樹(shù)建立,OP3:連續(xù)屬性處理,OP4:決策樹(shù)顯示。
ID3決策樹(shù)算法一般要求在數(shù)據(jù)十分理想的情況下進(jìn)行的,而實(shí)際應(yīng)用中的數(shù)據(jù)集在多數(shù)情況下不能滿足算法所要求的條件。因此,應(yīng)用中這些數(shù)據(jù)集不能直接應(yīng)用于決策樹(shù)算法,而應(yīng)該在對(duì)算法使用的數(shù)據(jù)進(jìn)行應(yīng)用之前做以下幾個(gè)方面進(jìn)行改進(jìn)。
1.屬性的選擇
本系統(tǒng)在實(shí)際應(yīng)用中通過(guò)先期的計(jì)算將學(xué)生入學(xué)信息中對(duì)分類(lèi)影響較小的屬性進(jìn)行了清理,如去除學(xué)生的姓名、出生日期、身份證號(hào)碼等屬性。
2.連續(xù)型屬性的處理
本系統(tǒng)在實(shí)際處理時(shí),把成績(jī)屬性劃分為3個(gè)屬性值:良好(400及以上)、較好(350-399)、一般(349及以下)。通過(guò)離散化數(shù)據(jù)提高了產(chǎn)生決策樹(shù)的效率。
3.缺失值情況的處理
一般情況下,訓(xùn)練數(shù)據(jù)集中總是存在著缺失值的情況。對(duì)于缺失值的處理方法有以下幾種:一是將缺失值看作屬性的一種可能的取值。如果缺失值在訓(xùn)練數(shù)據(jù)集中大量存在的話,這種處理方法很恰當(dāng);二是將訓(xùn)練集中出現(xiàn)缺失值的實(shí)例都忽略掉的方法。這種方法簡(jiǎn)單,但是可能會(huì)導(dǎo)致出現(xiàn)一些規(guī)則的損失。
以微軟Visual Studio 2005和SQL Server 2005作為開(kāi)發(fā)平臺(tái),實(shí)現(xiàn)了生源分析系統(tǒng)的設(shè)計(jì)。系統(tǒng)的使用過(guò)程如圖3所示。

圖3 生源分析系統(tǒng)操作流程
生源分析系統(tǒng)的原始的數(shù)據(jù)來(lái)自學(xué)院的每年錄取的考生數(shù)據(jù)表,它是一張微軟Execl電子表格。其中包括所錄取學(xué)生的基本信息。對(duì)于數(shù)據(jù)的清理與轉(zhuǎn)換主要有以下幾點(diǎn)工作:1.去除無(wú)關(guān)數(shù)據(jù);2.將不可分類(lèi)統(tǒng)計(jì)的信息進(jìn)行規(guī)范化;3.?dāng)?shù)據(jù)轉(zhuǎn)換。
本文中決策樹(shù)的建立是基于ID3算法實(shí)現(xiàn)的。其中關(guān)鍵的步驟是信息增益的計(jì)算。在屬性列表中找出“最好的分類(lèi)屬性”的過(guò)程就是計(jì)算信息增益的過(guò)程。它的算法描述如下:
(1)計(jì)算每個(gè)分類(lèi)屬性的期望信息Info(D);
(2)計(jì)算每個(gè)分類(lèi)屬性的期望信息需求InfoA (D);
(3)計(jì)算每個(gè)分類(lèi)屬性的信息增益Gain(A)= Info(D)-InfoA(D);
(4)根據(jù)步驟(3)得到的每個(gè)分類(lèi)的信息增益,找出信息增益最大的分類(lèi)屬性,即是我們要找的“最好的分類(lèi)屬性”。
決策樹(shù)的顯示是一個(gè)將決策樹(shù)中的每一個(gè)節(jié)點(diǎn)輸出到richTextBox中的過(guò)程。根據(jù)樹(shù)的遍歷方式不同而有不同的方法,主要有先序遍歷、中序遍歷和后序遍歷方法,本文采用了先序遍歷的方式。如圖4所示

圖4 生成的決策樹(shù)
樹(shù)的輸出是一個(gè)遞歸的過(guò)程,首先判斷樹(shù)是否為空,空樹(shù)不輸出退出樹(shù)的輸出;如果樹(shù)非空,則將根節(jié)點(diǎn)輸出,再對(duì)根節(jié)點(diǎn)的每個(gè)孩子節(jié)點(diǎn)進(jìn)行同樣的操作。
決策樹(shù)的規(guī)則是以if-then形式表示的。產(chǎn)生規(guī)則的方法是:首先為每個(gè)葉節(jié)點(diǎn)產(chǎn)生一個(gè)規(guī)則,然后把從該葉節(jié)點(diǎn)到根節(jié)點(diǎn)路徑上的所有條件合并,這樣就產(chǎn)生了一條規(guī)則[2]。其中,從根節(jié)點(diǎn)到某個(gè)葉節(jié)點(diǎn)前的路徑上的條件用邏輯“and”進(jìn)行連接形成一條規(guī)則的if部分,葉節(jié)點(diǎn)包含類(lèi)預(yù)測(cè),形成規(guī)則then部分。
本文中可以根據(jù)生成的決策樹(shù)直觀地給出規(guī)則。如圖4所示的決策樹(shù)可推導(dǎo)如下規(guī)則。
(1)如果學(xué)生的成績(jī)好、類(lèi)別是理科且受到過(guò)獎(jiǎng)勵(lì),則學(xué)生報(bào)考的專(zhuān)業(yè)方向?yàn)樾畔⒐こ填?lèi);
(2)如果學(xué)生的成績(jī)高、類(lèi)別是理科且受到過(guò)獎(jiǎng)勵(lì),則學(xué)生報(bào)考的專(zhuān)業(yè)方向?yàn)闄C(jī)電工程類(lèi);
(3)如果學(xué)生受過(guò)獎(jiǎng)勵(lì)且類(lèi)別是文科,則學(xué)生報(bào)考的專(zhuān)業(yè)方向?yàn)榻?jīng)濟(jì)貿(mào)易類(lèi);
(4)如果學(xué)生沒(méi)有受過(guò)獎(jiǎng)勵(lì),則學(xué)生報(bào)考的專(zhuān)業(yè)方向?yàn)榻?jīng)濟(jì)貿(mào)易類(lèi)。
從本系統(tǒng)運(yùn)行的結(jié)果來(lái)看,決策樹(shù)生成和準(zhǔn)確率存在一些問(wèn)題,問(wèn)題的產(chǎn)生經(jīng)分析有以下幾方面的成因:
(1)算法本身問(wèn)題。本文所設(shè)計(jì)的算法程序在決策樹(shù)的剪枝方面所做的工作較少,可能導(dǎo)致生成的決策樹(shù)不準(zhǔn)確;
(2)測(cè)試數(shù)據(jù)集問(wèn)題。誠(chéng)然本文所用測(cè)試數(shù)據(jù)集為學(xué)院近幾年招生的真實(shí)數(shù)據(jù)的一部分,但幾年來(lái)由于社會(huì)總的環(huán)境與就業(yè)壓力等因素,可能造成了一些報(bào)考取向上的一些“噪聲數(shù)據(jù)”。比如:總體上文科類(lèi)學(xué)生占總量的比例多;就業(yè)方便的熱門(mén)專(zhuān)業(yè)(土木工程、機(jī)電工程等)方向上報(bào)考學(xué)生多等。
高職高專(zhuān)生源分析系統(tǒng)的系統(tǒng)設(shè)計(jì)與功能已設(shè)計(jì)完成,但它還有一些不盡如人意的地方,對(duì)它還可以進(jìn)一步地修改與完善。如進(jìn)一步完善生源分析系統(tǒng)的模型設(shè)計(jì)。以便在工程實(shí)踐中補(bǔ)充更多的可能影響學(xué)生報(bào)考專(zhuān)業(yè)的因素。如已入學(xué)學(xué)生的學(xué)習(xí)狀況、學(xué)生家庭所在地的經(jīng)濟(jì)發(fā)展水平等。從而完善、改進(jìn)系統(tǒng)的可信度。
數(shù)據(jù)挖掘技術(shù)本身經(jīng)過(guò)近幾十年來(lái)的發(fā)展已在社會(huì)經(jīng)濟(jì)多個(gè)領(lǐng)域內(nèi)有所建樹(shù),但數(shù)據(jù)挖掘應(yīng)用仍然可以用“雷聲大,雨點(diǎn)小”來(lái)形容,它的市場(chǎng)還相對(duì)較小。多數(shù)的應(yīng)用集中于金融、保險(xiǎn)、電信等等大型企業(yè)中。對(duì)大多數(shù)的應(yīng)用程序設(shè)計(jì)和開(kāi)發(fā)人員而言,數(shù)據(jù)挖掘看上去是復(fù)雜且不易理解的。所以數(shù)據(jù)挖掘技術(shù)如果要成為一種為廣大用戶理解并掌握的工具還需要解決許多問(wèn)題,如模型、算法和開(kāi)發(fā)工具等。
[1]屈志毅,周海波.決策樹(shù)算法的一種改進(jìn)算法[J].計(jì)算機(jī)應(yīng)用,2008,(28):141~143.Improvedalgorithmbasedon decision tree.
[2]韓慧,毛鋒,王文淵.數(shù)據(jù)挖掘中決策樹(shù)算法的最新進(jìn)展[J].計(jì)算機(jī)應(yīng)用研究,2004,(12):48-50.
G717
A
1671-5993(2011)01-0012-03
2011-03-15
李云松(1973-),男,安徽省全椒縣人,滁州職業(yè)技術(shù)學(xué)院講師,安徽大學(xué)在職碩士研究生在讀。
羅斌(1963-),男,安徽合肥人,安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院教授。