王 柳,張宇敬,安英博
(1.河北金融學(xué)院 信息工程與計算機(jī)學(xué)院,河北 保定 071000;2.河北金融學(xué)院 金融科技學(xué)院,河北 保定 071000)
我國高等教育對創(chuàng)新型工程人才和工程師應(yīng)對復(fù)雜系統(tǒng)問題的能力提出了更高的要求[1]。在人才培養(yǎng)的過程中,遵循育人規(guī)律,不斷改進(jìn)教學(xué)方法,有助于培養(yǎng)勇于創(chuàng)新和實踐的高素質(zhì)人才[2]。將以“自主、探究、合作”為特征的探究式教學(xué)法應(yīng)用于“數(shù)據(jù)挖掘原理與應(yīng)用”課程教學(xué)中,以問題為線索,讓學(xué)生對當(dāng)前教學(xué)內(nèi)容中的主要知識點進(jìn)行自主學(xué)習(xí)、深入探究,可以達(dá)到對知識技能較深入的理解與掌握,有利于創(chuàng)新思維與創(chuàng)新能力的形成與發(fā)展。
探究式教學(xué)(Hands-on Inquiry Based Learning,HOIBL)由美國著名教育家、心理學(xué)家Dewey等[3]提出,他認(rèn)為教學(xué)不應(yīng)直截了當(dāng)?shù)刈⑷胫R,而應(yīng)引導(dǎo)受教育者在活動中得到經(jīng)驗和知識。探究式教學(xué)法是一種以提出問題、分析問題、解決問題為基本特征的教學(xué)活動形式,通過自主研究、分析和解決問題,激發(fā)學(xué)生的好奇心和探索欲望,培養(yǎng)創(chuàng)新潛能與自我創(chuàng)造力[4]。在“數(shù)據(jù)挖掘原理與應(yīng)用”的教學(xué)實施過程中,探究式教學(xué)法分為提出問題、探究交流、問題解析3步。以下以KNN算法為例,詳細(xì)說明3個步驟的實施情況。
K最近鄰(K-Nearest Neighbor,KNN)分類算法的主要思想:給定測試樣本,找出訓(xùn)練集中與其距離最近的K個訓(xùn)練樣本,然后根據(jù)這K個“鄰居樣本”的信息來進(jìn)行預(yù)測,當(dāng)然,需要提前定義樣本之間的距離度量方法。對此,以圖1為例,可以由淺入深地依次列出問題:(1)猜猜看,圖1最后一行未知電影屬于什么類型的電影?(2)KNN算法的訓(xùn)練過程是什么?(3)KNN算法當(dāng)中需解決的關(guān)鍵問題是什么?(4)你知道哪些距離(相似性)度量方法?這些常用的距離度量方法可以解決所有問題嗎?(5)如何選擇合適的K值,K值過大或者過小會有什么問題?(6)KNN算法的時間復(fù)雜度是多少?如何提高效率?
圖1 電影信息數(shù)據(jù)
針對提出的問題,要讓學(xué)生進(jìn)入情境,對所提出的問題積極思考,通過查閱資料自主探討。自主探討階段完成之后,學(xué)生會對問題有一定的認(rèn)識和理解,然后進(jìn)入交流討論階段,在這個過程中學(xué)生可以交換思路、觀點。交流討論過程可以在教師的組織協(xié)調(diào)下分小組進(jìn)行。
針對KNN算法提出的問題由淺入深,學(xué)生若能通過探究和交流解決以上問題,便能深入理解KNN算法的原理,同時,能夠?qū)⑹褂盟惴ń鉀Q實際問題。各問題的解釋要點如下:
(1)猜猜看,圖1最后一行未知電影屬于什么類型的電影?設(shè)置該問題主要目的在于引出KNN算法的主要思想,判斷最后一行未知電影的類型,需要從類型已知的電影中找到一個和未知電影最接近的電影,然后通過該電影的類型來判斷未知電影的類型。當(dāng)然,不同的學(xué)生找和未知電影最接近電影的方法有所不同,這正好體現(xiàn)出樣本之間的相似性度量方法實際上是有多種的。解釋完電影類型的判斷過程之后,再類推解釋KNN算法的思想,學(xué)生能夠很容易接受。
(2)KNN算法的訓(xùn)練過程是什么?在解決第一個問題的過程中,學(xué)生會掌握KNN算法的主要思想,不難發(fā)現(xiàn)KNN算法似乎沒有顯示的訓(xùn)練過程,學(xué)生通過探究和討論可以發(fā)現(xiàn)KNN算法的這一特點,并與線性回歸和邏輯回歸形成對比。
(3)KNN算法當(dāng)中需解決的關(guān)鍵問題是什么?KNN算法中有兩個關(guān)鍵問題,一方面是距離(相似性)的度量方法,另一方面是K值的選擇。
(4)你知道哪些距離(相似性)度量方法?這些常用的距離度量方法可以解決所有問題嗎?學(xué)生通過探究討論總結(jié)屬性間及樣本間的距離度量方法,引導(dǎo)學(xué)生重點理解并記憶歐幾里得距離等常用的距離度量方法。特別提醒學(xué)生,在KNN分類算法中,若采用不同的距離(即相似性)計算方式,則找出的“近鄰樣本”可能不同,從而也會導(dǎo)致分類結(jié)果有差異。
(5)如何選擇合適的K值,K值過大或者過小會有什么問題?K值也是一個重要參數(shù),K的不同取值會影響分類結(jié)果,特別地,K取值為1時,我們稱之為最近鄰算法。圖2給出了K近鄰分類算法的一個示意圖,當(dāng)K=3時,?判別為▲,當(dāng)K=5時,?判別為■。如果K太小,則最近鄰分類器容易受到噪聲影響而產(chǎn)生過擬合現(xiàn)象;相反,如果K太大,分類器可能會誤分類測試樣例。通常來說,應(yīng)該通過不斷嘗試找到合適的K值。
(6)KNN算法的時間復(fù)雜度是多少?有什么方法可以提高效率?KNN的絕大部分時間花費(fèi)在了“近鄰樣本”的查找上,學(xué)生通過探究討論能夠給出不同的查找算法,讓大家通過討論給出時間效率較優(yōu)的查找算法。另外,在數(shù)據(jù)結(jié)構(gòu)課程中介紹過查找樹,在此基礎(chǔ)上引導(dǎo)學(xué)生考慮構(gòu)建KD樹。
圖2 K近鄰分類算法示意
為了檢驗教學(xué)效果,對實施教學(xué)改革的班級以無記名方式進(jìn)行調(diào)查問卷,結(jié)果顯示,90%的同學(xué)覺得課堂氛圍活躍,70%的同學(xué)對該課程產(chǎn)生興趣并愿意積極主動進(jìn)行學(xué)習(xí),65%的同學(xué)能夠掌握算法的基本原理,60%的同學(xué)能夠順利完成布置的實驗,但50%的同學(xué)不知道如何使用已學(xué)習(xí)的算法進(jìn)行實際應(yīng)用。總體來說,該門課程的教學(xué)改革取得了一定的效果,但用所學(xué)算法解決實際問題對學(xué)生來說,還是有一定難度。
為應(yīng)對變化、與時俱進(jìn),多數(shù)高校開設(shè)“數(shù)據(jù)挖掘原理與應(yīng)用”課程。為了提高教學(xué)效果,將探究式教學(xué)法運(yùn)用到該課程的教學(xué)中,用學(xué)生主動探究、交流合作的教學(xué)模式改變傳統(tǒng)教學(xué)模式。實際教學(xué)效果顯示,該教學(xué)方法能有效調(diào)動學(xué)生學(xué)習(xí)的積極性和主動性,活躍課堂氣氛的同時能加深學(xué)生對知識的理解,使得教學(xué)效果得到改善,有助于培養(yǎng)學(xué)生的自主學(xué)習(xí)能力,可以在其他核心專業(yè)課程中進(jìn)行推廣。