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