王新良 馬耀博
摘要 為了提高“人工智能”課程的教學質量和效果,激發學生的學習興趣,促進學生找到行之有效的學習方法,從而加強對本門課程的掌握程度。本課題基于Python語言語法簡單、使用便捷的特點,以人工智能領域中的機器學習為案例,結合Python中主流的人工智能算法庫,實現了基于Python的機器學習。案例教學能讓學生深入淺出地理解人工智能的本質,使學生對該課程有更加全面和深刻的認識,同時也能進一步提高教師的教學質量。
關鍵詞 人工智能 Python 機器學習 教學改革 案例教學
中圖分類號:G424 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A ? ?DOI:10.16400/j.cnki.kjdkz.2020.01.067
Teaching reform of "Artificial Intelligence" Based on Python Language
WANG Xinliang, MA Yaobo
(School of Physics and Electronic Information, Henan Polytechnic University, Jiaozuo, Henan 454000)
Abstract In order to improve the teaching quality and effect of the course of Artificial Intelligence, stimulate students' interest in learning, and promote students to find effective learning methods, so as to strengthen the mastery of this course. Based on the simple grammar and convenient use of Python language, this paper takes machine learning in the field of artificial intelligence as an example, and combines the mainstream artificial intelligence algorithm library in Python to realize machine learning based on Python. Case teaching can make students understand the essence of AI deeply and shallowly, make students have a more comprehensive and profound understanding of the course, and at the same time, it can further improve the teaching quality of teachers.
Keywords Artificial Intelligence; Python; machine learning; teaching reform; case teaching
0 引言
人工智能是計算機科學延伸出的一個學科,它希望研究出一個能像人腦思考的機器。[1]人工智能涉及學科廣泛,具體涉及但不限于計算機科學、數學、統計、概率論、信息學、心理學等。[2]2018年3月,教育部批準35所高校首設人工智能本科專業,[3]此后,眾多高校也開展人工智能相關課程。因人工智能所涉及的知識眾多、理論性強、數學基礎和邏輯能力要求高等特點,教師在該課程上的教授上不能按照傳統的教學方式進行教學。在高校的傳統教學中,程序設計語言多選擇C/C++或Java。[4]但隨著人工智能的發展,Python開發語言越來越受人工智能研究開發人員的青睞,究其原因,是因為Python中封裝了豐富的人工智能算法庫,且Python具有上手簡單,操作簡便的特點,因此,它成為人工智能學習的一大利器。[5]在教學工作中,教師基于Python開發語言,以人工智能中的機器學習為案例,開始無需從具體的算法原理著手,而是先借助Python以及其封裝的人工智能相關算法庫,以此來學習機器學習的邏輯,進而可以看到算法實現的結果,以此來激發學生探索和學習的興趣,最后再具體地向學生講授人工智能的相關算法及其思想。
1 人工智能課程教學要點
1.1 Python概述及其用于人工智能學習的優勢
Python語言優點眾多,其語法簡單、應用領域廣泛、具有高度可擴展性和可移植性等特點。Python作為當前最主流最適合人工智能研究開發的語言,且對于有一定編程基礎的學生來說,是學習人工智能的不二選擇。人工智能本身是一個涉及范圍廣、內容較為枯燥抽象的學科,這對于初次接觸人工智能的學生并不友好。但在Python中,有專門的適用于人工智能學習的標準模塊和包,這些模塊中又封裝了現成的用于人工智能研究學習的經典數據集以及人工智能算法源碼。學生剛開始學習人工智能課程時,在不熟悉算法思想的情況下,也可以輕松調用相關算法模塊,實現預期的結果,繼而以果溯因,去學習具體的算法思想。
1.2 樸素貝葉斯算法概述
在人工智能的授課中,機器學習中的分類問題是一個較為熱門且較于理解的理解的問題。分類問題中的樸素貝葉斯算法對有一定數學基礎的學生而言,原理邏輯也較為清晰,以此為案例進行講授也便于學生理解和接受。
樸素貝葉斯是基于貝葉斯定理實現的一個經典的分類算法。該算法的原理是針對給定的一組數據,假設有n個獨立的屬性,則先計算訓練集中的n個獨立屬性的聯合概率分布,得出學習模型,然后對給定的測試輸入x,通過模型學習,即通過貝葉斯定理計算出后驗概率分布,較大的輸出y對應的類即為x的所屬類,以此來完成分類任務。樸素貝葉斯算法描述如表1所示。
2 案例教學在人工智能課程中的實現
該算法案例使用的數據集為機器學習中經典的鳶尾花數據集,用Python列表操作取出鳶尾花數據集特征空間中的后兩個維度,構成二維數據,以便于二維平面圖像的繪制。此外,需要導入numpy庫用于多維數組和矩陣的相關計算;導入sklearn庫中的naive_bayes模塊,并選用高斯樸素貝葉斯分類器GaussianNB作為樸素貝葉斯分類算法的分類器;使用matplotlib庫作為數據集相關圖形的繪制。
以上數據集已經構建完成。在本案例中,首先需要對該數據集劃分為訓練集和測試集,該劃分使用sklearn庫中的model_selection模塊中的train_test_split()方法完成,該方法將傳入數據集和數據對應的標簽數據集劃分為訓練集(x_train)、訓練集標簽數據集(y_train)、測試集(x_test)、測試集標簽數據集(y_test)四個數據集合,該方法的參數test_size用于設置測試集的大小,本案例設置其大小為30。數據集分割完畢,接著使用GaussianNB中的fit( )函數對x_train和y_train進行訓練,得出訓練模型,然后基于該模型使用predict( )函數對x_test進行預測,得出測試集預測標簽值列表pre_y。接著,完成數據的可視化,該過程首先先產生區域圖的劃分和繪制,區域圖由x_train和y_train訓練產生,區域圖劃分的準確度取決于訓練數據的數據量,本案例中,在特征空間的x軸和y軸方向分別采樣250個樣本值,采樣值的個數影響著區域邊緣的平滑度和樣本點的離散程度,接著使用numpy庫的linspace方法對樣本值在特征空間中進行均勻分布;使用numpy庫的meshgrid方法生成網格采樣點,該方法的參數即為上述linspace方法的返回值。繪圖部分由matplotlib的scatter方法完成,該案例中,圖像需要展示的信息包括格點預測數據、訓練集數據、測試集預測數據,其中格點預測數據也是基于上述的預測模型中的predict()函數來實現,該部分預測數據構成了區域圖。最終樸素貝葉斯分類結果如圖1所示。
從圖1中可以看出,訓練集和測試集的數據的分類基本無誤,但也有誤差,如圖中箭頭和圓標記的數據點,該數據點為Versicolour測試集中的點,按照樸素貝葉斯算法的預測,預期結果應該是該點應歸類于中間區域,但實際在右上區域,這就產生了誤差,本案例的誤差在可接受范圍內。
3 總結
本文通過在人工智能課程中引入Python機器學習的案例,讓學生直觀快速地收獲到機器學習的成果,激發學生的興趣,從而執果求因,避免了因人工智能課程的生澀難懂而造成學生望而卻步的局面。教學過程中使用的案例是人工智能領域較為簡單經典的案例,讓學生輕松地上手,進而平緩地向更加深入的課程過渡。因此,使用Pyhton案例進行人工智能的教學,一方面提高了教學的質量,另一方面,符合時代發展的趨勢,具有一定的意義。
基金項目:2018年教育部-奧鵬教育產學合作協同育人項目,項目編號:201801044003;
2018年河南理工大學新工科建設研究與實踐項目,項目名稱:高校在線網絡學習平臺教學實施效果分析與研究
參考文獻
[1] 李丹.人工智能課程教學改革探討[J].欽州學院學報,2016.31(10):64-67.
[2] 趙佳,孫剛.面向人工智能的信息管理與信息系統專業教學改革[J].電腦知識與技術,2017.13(10):127-128.
[3] 35所高校人工智能專業獲批? 百所院校建配套專業[J].中國包裝,2019.39(06):90.
[4] 秦科,劉貴松.面向Python應用的大學教學改革初探[J].計算機教育,2017(09):21-25.
[5] 韓志豪.人工智能背景下的Python教學探索[J].計算機時代,2018(07):76-81.