陳思寶
摘要:“模式識別導(dǎo)論”雙語教學(xué)是新工科高年級本科生的選修課程,旨在讓學(xué)生了解模式識別基本概念與方法的同時,鍛煉他們閱讀模式識別英文文獻(xiàn)以及國際交流的能力。Python是目前炙手可熱的編程語言,將Python引入“模式識別導(dǎo)論”雙語教學(xué)過程,有助于提高教學(xué)質(zhì)量與效果。通過Python運用于模式識別中的幾個例子,展示了Python在課程輔助教學(xué)中的優(yōu)點。
關(guān)鍵詞:模式識別;Python;雙語教學(xué);主成分分析;線性判別分析;多項式擬合;支持向量機(jī)
中圖分類號:G642? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)14-0086-03
Abstract: The bilingual teaching of "Introduction to pattern recognition" is an elective course for senior undergraduates of new engineering. It aims to let students understand the basic concepts and methods of pattern recognition, and at the same time, exercise their ability of reading English documents of pattern recognition and international communication. Python is one of the most popular programming languages at present. The introduction of Python into the bilingual teaching process of "Introduction to pattern recognition" will help improve the quality and effect of teaching. Through several examples of using Python in pattern recognition, this paper shows the advantages of Python in the auxiliary teaching.
Keywords: pattern recognition; Python; bilingual teaching; principal component analysis; linear discriminant analysis; polynomial fitting; support vector machine
1 引言
“模式識別導(dǎo)論”雙語課程是自動化、計算機(jī)等專業(yè)高年級本科學(xué)生的專業(yè)選修課程[1-2]。理論內(nèi)容涉及線性代數(shù)、概率統(tǒng)計、矩陣分析和圖譜理論等數(shù)學(xué)知識。在教學(xué)中經(jīng)常需要利用這些數(shù)學(xué)知識對模式識別中的問題進(jìn)行分析。采用雙語教學(xué)不僅讓學(xué)生了解模式識別基本概念與方法,還要鍛煉學(xué)生閱讀模式識別英文文獻(xiàn)以及國際交流的能力[3]。教師經(jīng)常只能在黑板上進(jìn)行一些公式推導(dǎo)和繪制簡單但不清楚的圖形來分析和解釋。對某些特征變換或復(fù)雜的分類問題則難以形象地描述清楚。學(xué)生可能感覺很抽象,難于理解和接受,因而影響了學(xué)習(xí)興趣,減緩了學(xué)習(xí)進(jìn)度,降低了教學(xué)質(zhì)量。
Python是一個高層次的結(jié)合了解釋性、編譯性、互動性和面向?qū)ο蟮目缙脚_腳本語言。它擁有眾多開源的科學(xué)計算庫,是目前炙手可熱的編程語言。Anaconda是一個開源的Python發(fā)行版本,其包含了Conda、Python等大量科學(xué)包及其依賴項[4-5]。它包含了豐富的專業(yè)領(lǐng)域工具箱,還配有詳細(xì)的英文使用說明及大量的使用舉例。這些使編程變得非常簡單,為我們課堂教學(xué)和科研實驗提供了十分方便快捷的手段。以下將通過幾個例子來說明Python如何應(yīng)用到解決模式識別的具體問題中。
2 實驗應(yīng)用舉例
例1:利用主成分分析(PCA)進(jìn)行數(shù)據(jù)降維的Python實現(xiàn)。
主成分分析(PCA)的基本思想可以概括為在低維空間中保留原數(shù)據(jù)最大方差的正交線性投影。設(shè)有一訓(xùn)練集[D=xi,i=1,...,n|xi∈Rp],現(xiàn)欲將數(shù)據(jù)經(jīng)過線性變換[yi=WTxi]投影到[d(d
下圖展示了一個兩類的數(shù)據(jù)由Python畫出來的PCA與LDA主軸對比圖形。從圖中可以看出不同類別的數(shù)據(jù)投影到LDA主軸上相互分離開來,而若投影到PCA主軸上則完全混雜在了一起。
例3:多項式擬合的Python實現(xiàn)。
數(shù)據(jù)擬合是排除測量等隨機(jī)干擾,發(fā)現(xiàn)數(shù)據(jù)對之間的內(nèi)在本質(zhì),找出相應(yīng)的函數(shù)關(guān)系。為了便于計算,通常假定數(shù)據(jù)對之間(或者經(jīng)過某種變換后的數(shù)據(jù)對之間)的函數(shù)關(guān)系具有多項式形式,即進(jìn)行多項式擬合。
設(shè)有訓(xùn)練數(shù)據(jù)[D=(xi,yi),i=1,...,n],現(xiàn)欲尋求這兩組數(shù)據(jù)之間的函數(shù)關(guān)系[y=f(x)]。當(dāng)進(jìn)行多項式擬合時,即假定該函數(shù)關(guān)系具有多項式形式:[P(x)=i=0kaixi]。依據(jù)數(shù)據(jù)的散點圖先確定多項式的階數(shù)[k],然后利用最小二乘法求解最優(yōu)系數(shù)[ai]:[min i=1nyi-P(xi)2]。
Python的numpy宏包中polyfit函數(shù)可以實現(xiàn)多項式擬合,用poly1d構(gòu)建多項式對象來計算多項式擬合的值。具體Python實現(xiàn)的多項式擬合代碼如下:
3 結(jié)語
本文通過對模式識別的幾個例子,展示了Python在解決模式識別諸多問題的能力。由這些例子可以看出Python語言簡潔易懂、可讀性強、功能強大,同時Python的IDE還配有詳細(xì)的英文使用說明及大量的使用舉例。在模式識別導(dǎo)論的雙語教學(xué)中,引入Python可以快速實現(xiàn)模擬實驗,激發(fā)了學(xué)生的興趣,凝聚了學(xué)生的注意力,學(xué)生可以從中獲得具體生動的印象,使學(xué)生更易于理解和掌握其中的理論知識和方法,極大地提高了教學(xué)效率。
參考文獻(xiàn):
[1] 邊肇祺. 模式識別[M].2版.北京:清華大學(xué)出版社,2000.
[2] 劉恒,侯書東.研究生模式識別課程雙語教學(xué)研究與實踐[J].安徽工業(yè)大學(xué)學(xué)報(社會科學(xué)版),2019,36(1):67-68.
[3] 劉偉鋒.模式識別雙語課程的教學(xué)實踐[J].科技信息,2012(33):240,292.
[4] 洪炎,蘇靜明,唐超禮,林涵.Python雙語教學(xué)探索[J].科技風(fēng),2019(19):52.
[5] 王寧,孫曉玲.智能手機(jī)端Python語言的數(shù)學(xué)實驗案例設(shè)計[J].合肥師范學(xué)院學(xué)報,2019,37(6):117-121.
【通聯(lián)編輯:王力】