陳思寶
摘要:“模式識別導論”雙語教學是新工科高年級本科生的選修課程,旨在讓學生了解模式識別基本概念與方法的同時,鍛煉他們閱讀模式識別英文文獻以及國際交流的能力。Python是目前炙手可熱的編程語言,將Python引入“模式識別導論”雙語教學過程,有助于提高教學質量與效果。通過Python運用于模式識別中的幾個例子,展示了Python在課程輔助教學中的優(yōu)點。
關鍵詞:模式識別;Python;雙語教學;主成分分析;線性判別分析;多項式擬合;支持向量機
中圖分類號:G642? ? ? ? 文獻標識碼: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 引言
“模式識別導論”雙語課程是自動化、計算機等專業(yè)高年級本科學生的專業(yè)選修課程[1-2]。理論內(nèi)容涉及線性代數(shù)、概率統(tǒng)計、矩陣分析和圖譜理論等數(shù)學知識。在教學中經(jīng)常需要利用這些數(shù)學知識對模式識別中的問題進行分析。采用雙語教學不僅讓學生了解模式識別基本概念與方法,還要鍛煉學生閱讀模式識別英文文獻以及國際交流的能力[3]。教師經(jīng)常只能在黑板上進行一些公式推導和繪制簡單但不清楚的圖形來分析和解釋。對某些特征變換或復雜的分類問題則難以形象地描述清楚。學生可能感覺很抽象,難于理解和接受,因而影響了學習興趣,減緩了學習進度,降低了教學質量。
Python是一個高層次的結合了解釋性、編譯性、互動性和面向對象的跨平臺腳本語言。它擁有眾多開源的科學計算庫,是目前炙手可熱的編程語言。Anaconda是一個開源的Python發(fā)行版本,其包含了Conda、Python等大量科學包及其依賴項[4-5]。它包含了豐富的專業(yè)領域工具箱,還配有詳細的英文使用說明及大量的使用舉例。這些使編程變得非常簡單,為我們課堂教學和科研實驗提供了十分方便快捷的手段。以下將通過幾個例子來說明Python如何應用到解決模式識別的具體問題中。
2 實驗應用舉例
例1:利用主成分分析(PCA)進行數(shù)據(jù)降維的Python實現(xiàn)。
主成分分析(PCA)的基本思想可以概括為在低維空間中保留原數(shù)據(jù)最大方差的正交線性投影。設有一訓練集[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ù)擬合是排除測量等隨機干擾,發(fā)現(xiàn)數(shù)據(jù)對之間的內(nèi)在本質,找出相應的函數(shù)關系。為了便于計算,通常假定數(shù)據(jù)對之間(或者經(jīng)過某種變換后的數(shù)據(jù)對之間)的函數(shù)關系具有多項式形式,即進行多項式擬合。
設有訓練數(shù)據(jù)[D=(xi,yi),i=1,...,n],現(xiàn)欲尋求這兩組數(shù)據(jù)之間的函數(shù)關系[y=f(x)]。當進行多項式擬合時,即假定該函數(shù)關系具有多項式形式:[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構建多項式對象來計算多項式擬合的值。具體Python實現(xiàn)的多項式擬合代碼如下:
3 結語
本文通過對模式識別的幾個例子,展示了Python在解決模式識別諸多問題的能力。由這些例子可以看出Python語言簡潔易懂、可讀性強、功能強大,同時Python的IDE還配有詳細的英文使用說明及大量的使用舉例。在模式識別導論的雙語教學中,引入Python可以快速實現(xiàn)模擬實驗,激發(fā)了學生的興趣,凝聚了學生的注意力,學生可以從中獲得具體生動的印象,使學生更易于理解和掌握其中的理論知識和方法,極大地提高了教學效率。
參考文獻:
[1] 邊肇祺. 模式識別[M].2版.北京:清華大學出版社,2000.
[2] 劉恒,侯書東.研究生模式識別課程雙語教學研究與實踐[J].安徽工業(yè)大學學報(社會科學版),2019,36(1):67-68.
[3] 劉偉鋒.模式識別雙語課程的教學實踐[J].科技信息,2012(33):240,292.
[4] 洪炎,蘇靜明,唐超禮,林涵.Python雙語教學探索[J].科技風,2019(19):52.
[5] 王寧,孫曉玲.智能手機端Python語言的數(shù)學實驗案例設計[J].合肥師范學院學報,2019,37(6):117-121.
【通聯(lián)編輯:王力】