武麗芬,張鴻雁
(晉中學(xué)院 信息技術(shù)與工程學(xué)院,山西 晉中 030619)
提高人才培養(yǎng)質(zhì)量已經(jīng)成為國(guó)內(nèi)外高等教育實(shí)現(xiàn)大眾化以后最為緊迫的任務(wù),而準(zhǔn)確的人才培養(yǎng)目標(biāo)定位則是提高質(zhì)量的前提[1].
專業(yè)基礎(chǔ)課程關(guān)注學(xué)生該專業(yè)的基本科學(xué)文化素養(yǎng),追求知識(shí)與技能的基礎(chǔ)性、系統(tǒng)性,為學(xué)生的一般發(fā)展奠定基礎(chǔ).但是,隨著知識(shí)的發(fā)展,知識(shí)在不斷走向分化和細(xì)化,知識(shí)的不斷分化與細(xì)化使傳統(tǒng)基礎(chǔ)課程很難反映人類知識(shí)的當(dāng)代成就,滯后于知識(shí)的發(fā)展,而專業(yè)任選課程則可以彌補(bǔ)必修課的不足,它一方面可以對(duì)必修課的內(nèi)容進(jìn)行拓展或深化,另一方面,又可以發(fā)展學(xué)生的技能、特長(zhǎng)[1].因此專業(yè)任選課在學(xué)生的培養(yǎng)環(huán)節(jié)上作用不容忽視.
專業(yè)任選課是指根據(jù)學(xué)分制培養(yǎng)目標(biāo)和要求,為學(xué)生開(kāi)設(shè)的專業(yè)選修課程,旨在促進(jìn)學(xué)生在課程中的選擇性,擴(kuò)大學(xué)生的知識(shí)范圍,提高學(xué)生的智能結(jié)構(gòu)[2].
就晉中學(xué)院而言,目前專業(yè)任選課的開(kāi)設(shè)目前存在如下弊端:
1.該課程的設(shè)置比較隨意,因人設(shè)課的現(xiàn)象很普遍,教學(xué)過(guò)程中的隨意性更是突出.
2.沒(méi)有考慮學(xué)生的主、客觀情況,有悖專業(yè)任選課的初衷.
由于沒(méi)有考慮學(xué)生的個(gè)體因素,很多學(xué)生覺(jué)得沒(méi)有興趣或不適合自己或?qū)ψ约旱奈磥?lái)沒(méi)用,諸多原因?qū)е聲缯n率嚴(yán)重,即使因紀(jì)律約束來(lái)到教室,也是身在曹營(yíng)心在漢.學(xué)生認(rèn)為來(lái)上課是在浪費(fèi)時(shí)間,對(duì)課程內(nèi)容嚴(yán)重不滿.經(jīng)常聽(tīng)到學(xué)生抱怨:“給我們上這個(gè)課有什么用,理論性太強(qiáng)也太難,給我們開(kāi)點(diǎn)有用的課吧.”學(xué)生情緒上如此抵觸,導(dǎo)致所開(kāi)設(shè)課程的意義全無(wú).
但是何為有用課程,每屆學(xué)生情況各不相同,有的學(xué)生適合學(xué)術(shù)研究,就希望開(kāi)設(shè)該專業(yè)的前沿課程,為今后繼續(xù)深造打下基礎(chǔ);有的學(xué)生適合技術(shù)應(yīng)用,就希望開(kāi)設(shè)當(dāng)今社會(huì)正在流行的應(yīng)用軟件,為今后就業(yè)提供一技之長(zhǎng);還有的學(xué)生迷茫懵懂,不知自己究竟想學(xué)習(xí)什么.因此我們不能簡(jiǎn)單照搬照抄官方規(guī)定或名校經(jīng)驗(yàn),而應(yīng)該有一套合理的方法,分析每一屆學(xué)生的特點(diǎn),既不拔高也不貶低,既不越位也不缺位,實(shí)事求是,因材施教,因材施管,保證不同素質(zhì)特點(diǎn)的學(xué)生健康成長(zhǎng),成人成材.
綜上述所,可以考慮給學(xué)生一定的自由度讓他們自己選擇,然而新的問(wèn)題又出現(xiàn)了.當(dāng)面臨選擇時(shí),學(xué)生開(kāi)始困惑和迷茫了,不知道自己選擇哪門(mén)課程好,患得患失.這也是中國(guó)學(xué)生普遍存在的問(wèn)題,不善于為自己做出選擇.
鑒于上述情況,基于數(shù)據(jù)挖掘中的聚類算法設(shè)計(jì)一個(gè)學(xué)生專業(yè)特點(diǎn)分類器,對(duì)學(xué)生進(jìn)行一個(gè)大致的分類(理論研究型、實(shí)踐應(yīng)用型、技能型等),以輔助教師和學(xué)生正確合理的開(kāi)設(shè)相應(yīng)的專業(yè)任選課,使得教學(xué)更順利地進(jìn)行,學(xué)生更加學(xué)有所獲.
聚類是指將具體或抽象對(duì)象的集合分組成由類似對(duì)象組成的多個(gè)類或簇的過(guò)程.聚類必須同時(shí)滿足以下兩個(gè)條件:1)每個(gè)簇至少包含一個(gè)數(shù)據(jù)對(duì)象;2)每個(gè)數(shù)據(jù)對(duì)象必須屬于且唯一屬于一個(gè)簇[3].在實(shí)際應(yīng)用中,簇中的數(shù)據(jù)對(duì)象可以作為一個(gè)整體來(lái)對(duì)待.
聚類主要包括以下幾個(gè)過(guò)程:
(A)數(shù)據(jù)準(zhǔn)備:主要指特征標(biāo)準(zhǔn)化和降低維度.
(B)特征選擇和提?。簭脑紨?shù)據(jù)特征中選擇有效特征,并存儲(chǔ)于向量中.
(C)提取特征:通過(guò)對(duì)選擇的特征進(jìn)行轉(zhuǎn)換,形成新特征.
(D)聚類:選擇適合特征類型的距離函數(shù)進(jìn)行度量,而后執(zhí)行聚類.
K-means[1]算法也稱作K-平均值算法或K均值算法,于1967年由MacQueen提出[2],其原理簡(jiǎn)單,運(yùn)算速度快,但它的明顯不足是:使用完全隨機(jī)選擇初始化聚類中心點(diǎn)的策略,使K-means算法容易陷入局部最優(yōu)解,同時(shí)對(duì)離群點(diǎn)和噪音數(shù)據(jù)較為敏感,這不僅影響了算法的準(zhǔn)確性,而且大大降低了算法效率.
針對(duì)上述問(wèn)題專家學(xué)者們不斷提出新的解決方法,其中比較著名的有蜂群算法,該算法是一種非數(shù)值優(yōu)化計(jì)算方法,也是一種較為新穎的全局優(yōu)化算法[3],具有結(jié)構(gòu)簡(jiǎn)單,控制參數(shù)少、易于實(shí)現(xiàn)的特點(diǎn).
蜂群算法基本工作原理如下[4]:
步驟1:初始化蜂群.
確定種群的大小,運(yùn)用構(gòu)造啟發(fā)式算法和隨機(jī)產(chǎn)生方式生成初始種群,比較所有種群個(gè)體,按適應(yīng)度值從大到小進(jìn)行排序,排在第一位的個(gè)體即定義為蜂王,其余個(gè)體為雄峰集合.
步驟2:蜂王婚飛行為.
反復(fù)執(zhí)行步驟2至步驟6若干次,直到產(chǎn)生的子代個(gè)體數(shù)達(dá)到種群原始大小.
初始化蜂王受精囊容量和飛行速度,飛行速度Squeen通過(guò)式(1)隨機(jī)生成:
Squeen(speed)=rand()(Smax-Smin)+Smin.
(1)
式(1)中,rand()是隨機(jī)函數(shù),Smax、Smin分別是蜂王最大、最小速度的初始值.當(dāng)Squeen(speed)<=Smin,則返回蜂巢.
步驟3:隨機(jī)選擇一個(gè)雄峰個(gè)體,計(jì)算其被蜂王選擇的概率.概率Prob(D)的計(jì)算式為:
Prob(D)=exp(-|fqueen-fdrone|/Speed(t)).
(2)
式(2)中,fqueen是蜂王的目標(biāo)函數(shù)值;fdrone是雄峰的目標(biāo)函數(shù)值.
步驟4:產(chǎn)生隨機(jī)數(shù)R(0<=R<=1),如果Prob(D)>=R,則將該雄峰的遺傳信息存儲(chǔ)到蜂王的受精囊中,同時(shí)從雄峰集合中刪除該雄峰.
不管雄峰的基因是否能夠存儲(chǔ)到蜂王搜精囊中,蜂王的飛行速度都按式(3)降低.返回步驟5,直到Squeen(speed)<=Smin,或者蜂王受精囊的容量已滿.
Speed(t+1)=α×Speed(t).
(3)
式(3)中,α∈(0,1),是每次蜂王速度減小的數(shù)量級(jí).
步驟5:產(chǎn)生子代,通過(guò)對(duì)蜂王及蜂王所存儲(chǔ)的雄峰基因個(gè)體的交叉產(chǎn)生子代種群個(gè)體.
步驟6:培育后代,由工蜂對(duì)子代個(gè)體進(jìn)行培育.
步驟7:用新生子代種群集合替換原始種群,并按照其適應(yīng)度值從大到小排列.
步驟8:檢查算法終止條件,如果滿足,則終止算法,輸出最優(yōu)解;否則,返回步驟2繼續(xù)執(zhí)行[4].
①采集數(shù)據(jù):提取晉中學(xué)院計(jì)算機(jī)專業(yè)某屆學(xué)生大一到大三的成績(jī)數(shù)據(jù).
②對(duì)數(shù)據(jù)進(jìn)行清洗和預(yù)處理:
A.特征選擇和提取
從教務(wù)系統(tǒng)中采集的數(shù)據(jù)維度高達(dá)56列,經(jīng)過(guò)削減、歸類、課程分析最終留下了10列能夠反映學(xué)生計(jì)算機(jī)水平的專業(yè)主干課程.在此過(guò)程中對(duì)多個(gè)表數(shù)據(jù)進(jìn)行合并,篩選相同的課程,從而獲取選課人數(shù)較多的課程;對(duì)其中一些非正常數(shù)據(jù)如“缺考”等用平均分進(jìn)行相應(yīng)替換.
B.清洗數(shù)據(jù)
現(xiàn)實(shí)世界中大多數(shù)的數(shù)據(jù)庫(kù)均包含異常數(shù)據(jù)、不明確數(shù)據(jù)和噪聲數(shù)據(jù),而幾乎所有的聚類算法對(duì)這樣的數(shù)據(jù)都非常敏感并會(huì)導(dǎo)致獲得較差的聚類結(jié)果[大數(shù)據(jù)書(shū)本].
本數(shù)據(jù)源中刪除了成績(jī)?cè)?0分以下的考生數(shù)據(jù)并對(duì)缺失數(shù)據(jù)進(jìn)行均值填充,清洗后的數(shù)據(jù)如表1所示.
表1 參與聚類分析的數(shù)據(jù)表
實(shí)驗(yàn)工具選擇Python.Python是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,由荷蘭人Guido van Rossum發(fā)明,其源代碼和解釋器都遵循GPL(General Public License)協(xié)議,是一款純粹的自由軟件.
Python由于其簡(jiǎn)潔的語(yǔ)法、較為全面的功能、可移植性和可擴(kuò)展性的特點(diǎn),目前越來(lái)越多的科研機(jī)構(gòu)在采用Python做科學(xué)計(jì)算,還有很多知名大學(xué)的程序設(shè)計(jì)課程在采用Python講授,比如麻省理工學(xué)院的計(jì)算機(jī)科學(xué)編程導(dǎo)論和卡耐基梅隆大學(xué)的編程基礎(chǔ)就用的是Python語(yǔ)言[5].
實(shí)驗(yàn)中部分關(guān)鍵代碼如下:
#將原始數(shù)據(jù)中的索引設(shè)置成得到的數(shù)據(jù)類別,根據(jù)索引提取各類數(shù)據(jù)并保存
df=pd.DataFrame(X,index=labels,columns=columns)
df_list=[]
foriinrange(X_col):
df_list.append(df[df.index==i])
#繪圖
plt.figure(figsize=(10,8),dpi=80)
#axes=plt.subplot()
#s表示點(diǎn)大小,c表示color,marker表示點(diǎn)類型
foriinrange(X_col):
plt.plot(range(X_row),X[:,i],color[i])
#顯示聚類中心數(shù)據(jù)點(diǎn)
#type_center=plt.plt(range(X_col),df_center.loc[:,'y'],s=40,c='blue')
plt.xlabel('x',fontsize=16)
plt.ylabel('y',fontsize=16)
#axes.legend((type1,type2,type3,type4,type_center),('0','1','2','3','center'),loc=1)
plt.show()
實(shí)驗(yàn)結(jié)果用散點(diǎn)圖展示如圖1所示.
圖1 聚類結(jié)果散點(diǎn)圖
其中藍(lán)色實(shí)點(diǎn)為聚類中心,其中心分別為(83.446,86.825)、(81.698,52.571)、(55.815,48.982)、(67.2,75.11).“0”“1”“2”“3”分別表示“理論型”“應(yīng)用型”“綜合型”“技能型”.
實(shí)驗(yàn)結(jié)果分析,通過(guò)聚類模型預(yù)演,得出該屆學(xué)生理論型(紅色聚類區(qū))人數(shù)居多,且分布相對(duì)集中,那么在開(kāi)設(shè)選修課的時(shí)候,可以主要考慮這部分學(xué)生的情況,這部分學(xué)生中絕大部分是要考研的,那么在開(kāi)設(shè)選修課時(shí)可傾向于這部分學(xué)生開(kāi)設(shè)研究生階段的前沿、本科生階段的擴(kuò)張課程.圖中還可以看出棕色聚類區(qū)也相對(duì)集中,但人數(shù)沒(méi)有紅色區(qū)域多,那么也可適當(dāng)考慮開(kāi)設(shè)一些應(yīng)用型選修課程.
該模型同樣可以適用于其他專業(yè),前提是需要對(duì)開(kāi)設(shè)課程進(jìn)行分類處理,按照分類結(jié)果對(duì)聚類樣本進(jìn)行有效聚類,可以根據(jù)學(xué)生對(duì)知識(shí)的理論水平、應(yīng)用實(shí)踐能力的相似程度進(jìn)行學(xué)生分類,有的放矢地開(kāi)設(shè)選修課程,一定程度上實(shí)現(xiàn)真正的因材施教.