楊軍 張岳 劉燕峰
摘?要:目前Python語言作為時下最流行的編程語言之一,在數(shù)據(jù)科學領域應用十分廣泛,簡單易學、功能強大,為學生的使用提供了方便。結合云大物移智時代的時代背景和計算機學科的專業(yè)特點,針對數(shù)據(jù)挖掘課程存在的一些問題,在使用Python語言的基礎上,對數(shù)據(jù)挖掘課程的建設進行相關研究。該文章主要從教學大綱、教學環(huán)節(jié)和考核方面進行闡述,課程建設旨在更好的培養(yǎng)學生使用數(shù)據(jù)挖掘方法分析和解決問題的能力,更好地培養(yǎng)云大物移智時代所需的數(shù)據(jù)科學人才。
關鍵詞:數(shù)據(jù)挖掘;Python語言;課程建設
中圖分類號:G642.4
The?construction?and?research?of?data?mining?course?based?on?Python
Yang?Jun?Zhang?Yue?Liu?Yanfeng
Shandong?Youth?University?Of?Political?Science?ShandongJinan?250000
Abstract:At?present,Python?as?one?of?the?most?popular?programming?languages,is?widely?used?in?the?field?of?data?science.It?is?simple?to?learn?and?powerful,which?provides?convenience?for?students?to?use.Combined?with?the?background?of?cloud?computing,big?data,Internet?of?Things,mobile?Internet,artificial?intelligence?and?the?professional?characteristics?of?computer?science,In?view?of?some?problems?existing?in?the?course?of?data?mining,the?construction?of?the?course?of?data?mining?is?studied?by?introducing?Python.This?article?mainly?elaborates?from?the?teaching?syllabus,teaching?links?and?assessment?aspects.The?course?construction?aims?to?better?cultivate?students'?ability?to?use?data?mining?methods?to?analyze?and?solve?problems,and?better?cultivate?data?talents?needed?in?the?era?of?big?data.
Keywords:DM;Python;curricula?construction
1?Python語言簡介
Python是一種解釋型、面向對象、動態(tài)數(shù)據(jù)類型的高級程序設計語言,自誕生以來,Python在處理系統(tǒng)管理任務、數(shù)據(jù)挖掘以及Web編程等方面有著廣泛的應用。因為Python的簡潔、易讀以及可擴展性,使用Python做科學計算的案例越來增多。眾多開源的科學計算軟件包都提供了Python的調用接口,同時,Python還擁有很多科學計算擴展庫,為Python提供了快速數(shù)組處理、數(shù)值運算以及繪圖功能。因此Python及其眾多的擴展庫所構成的開發(fā)環(huán)境十分適合工程技術、處理實驗數(shù)據(jù)、制作圖表,甚至開發(fā)科學計算應用程序[1]。
選擇Python作為數(shù)據(jù)挖掘課程的實踐語言有以下4個優(yōu)點:(1)Python是免費的自由軟件,不需要支付任何費用,可以更方便的獲取源代碼;(2)Python具有良好的跨平臺性,一般情況下,在Windows上編寫的Python程序可以輕易地運行在Linux上,這一特點對于學生鞏固Linux系統(tǒng)的使用也提供了實踐機會[2];(3)Python語言功能強大,借助擴展模塊可以輕松的完成,在教學過程中可以通過Python語言實現(xiàn)各種數(shù)據(jù)挖掘算法;(4)Python語言清晰優(yōu)雅,其語法簡單,格式清晰、易寫、易讀[3]。這個特點可以使不同計算機編程水平的學生在短期內學會使用Python語言進行數(shù)據(jù)挖掘的實戰(zhàn)操作,方便開展課程實踐教學。
2?教學大綱設置
數(shù)據(jù)挖掘課程是一門建立在高等數(shù)學、機器學習、統(tǒng)計學、數(shù)據(jù)庫、人工智能等學科的綜合性課程。根據(jù)學生的培養(yǎng)目標,通過本課程的學習讓學生理解數(shù)據(jù)挖掘的基本概念、基本原理、基本方法和應用基礎,熟悉基本工具的使用,理解數(shù)據(jù)挖掘算法的基本原理,為進一步深入學習智能數(shù)據(jù)分析研究打好基礎。在課程中將理論教學內容與實驗教學內容相結合,采用傳統(tǒng)與特色教育相結合,如話題教學、翻轉教學等教學方面[4],通過構建數(shù)據(jù)挖掘的課程體系來設置教學大綱。
將數(shù)據(jù)挖掘的教學大綱設置為基礎和進階兩個部分,其中基礎部分包括數(shù)據(jù)挖掘導論、數(shù)據(jù)預處理、數(shù)據(jù)倉庫與聯(lián)機分析處理(OLAP)等內容,進階部分包括分類、回歸、聚類、關聯(lián)規(guī)則、文本與Web挖掘、數(shù)據(jù)挖掘的可視化等內容,進階部分主要是對基礎部分進行進一步的拓展,學習關于預測性和描述性的各種挖掘算法。一般來說,在本科階段數(shù)據(jù)挖掘課程的教學總學時為32~64個學時,而該課程的特點是需要理論與實驗相結合,可以將理論與實驗的課時進行相應比例的分配,并按照學習內容進行知識點同步。同時安排4~6個學時來講解Python語言的基礎知識,讓學生了解和掌握Python語言在數(shù)據(jù)挖掘中的基本應用,通過演示部分數(shù)據(jù)挖掘的經典案例來讓學生了解其主要應用領域及當前的研究熱點。在充分調動學生學習興趣的前提下,適當通過增加課下學習時間來彌補課內學時的不足,需要教師充分利用網絡資源搜集相關數(shù)據(jù)挖掘的資料,并對其進行分類整合后發(fā)給學生,提高學生的課后學習效果[5]。具體理論教學大綱設計和實驗教學大綱設計的內容,如表1和表2所示。
3?課程教學過程的設計
下面以數(shù)據(jù)挖掘中常用的分類算法中的樸素貝葉斯分類為例,介紹如何利用Python語言開展數(shù)據(jù)挖掘的教學。
樸素貝葉斯分類(NBC)是基于貝葉斯定理和特征條件獨立假設的分類算法,通俗地講樸素貝葉斯分類器可以看作:對于給定的待分類項,求解在該分類項出現(xiàn)的條件下,各個類別出現(xiàn)的概率。根據(jù)各個類別出現(xiàn)的概率,哪個最大,就將其劃歸為那個類別。
首先,介紹一下貝葉斯的定理,因為不同的學生可能數(shù)學基礎不同,先通過介紹貝葉斯定理,來復習一下相關的數(shù)學知識,知道其基本公式的表達。貝葉斯定理條件概率定義為:表示事件B已經發(fā)生的前提下,事件A發(fā)生的概率,稱為事件B發(fā)生下事件A的條件概率。其基本求解公式為:P(A|B)=P(AB)/P(B)。
通過對比,告訴學生們貝葉斯定理之所以有用,是因為與大家的生活息息相關:可以很容易直接得出P(A|B),P(B|A)則很難直接得出,但大家往往更關心P(B|A),貝葉斯定理打通了從P(A|B)獲得P(B|A)的道路。貝葉斯定理為:P(B|A)=P(A|B)P(B)/P(A)。
通過介紹貝葉斯定理,為學生引入樸素貝葉斯分類,NBC屬于貝葉斯分類的一種,其與貝葉斯分類相比,后者需要花很大的時間和空間復雜度去計算類條件概率。NBC的思想基礎:對于給出的待分類項,求解在此項出現(xiàn)的條件下各個類別出現(xiàn)的概率,哪個最大,就認為此待分類項屬于哪個類別。樸素貝葉斯分類的正式定義為:
①設x={a1,a2,…,am},為一個待分類項,而每個a為x的一個特征屬性;
②有類別集合C={y1,y2,…,yn};
③計算P(y1|x),P(y2|x),…,P(yn|x);
④如果P(yk|x)=max{P(y1|x),P(y2|x),…,P(yn|x)},則xyk。
接下來,再來看一下樸素貝葉斯分類的三個階段,通過了解分類階段讓學生從宏觀上掌握樸素貝葉斯的應用流程。(1)對于準備工作階段:本階段的輸入是所有待分類數(shù)據(jù),輸出是特征屬性和訓練樣本。本階段是整個樸素貝葉斯分類中唯一需要人工完成的階段,其質量好壞決定整個過程,分類器的質量很大程度上由特征屬性、特征屬性劃分及訓練樣本質量決定;(2)分類器訓練階段:本階段輸入是特征屬性和訓練樣本,輸出是分類器,該階段是機械性階段,可以由程序自動計算完成;(3)應用階段:其輸入是分類器和待分類項,輸出是待分類項與類別的映射關系,本階段也是機械性階段,由程序完成。
在最初的教學過程中,會出現(xiàn)學生對算法理論的學習提不起興趣的現(xiàn)象,但當提到某個實際案例時,特別是大家身邊的案例,學生的興趣會瞬間增強,所以要引入實際案例來提高學生興趣,使更好的理解這個算法[6]。下面介紹樸素貝葉斯分類算法的Python實現(xiàn)過程。
假定給出了如表3所示的訓練樣本數(shù)據(jù),其目的是根據(jù)給定的天氣數(shù)據(jù)判定是否去打網球(PlayTennis),當給出一個新的實例,如{Outlook=Sunny,Temp=Cool,Humidity=High,Windy=Strong}時,則預測的目標概念PlayTennis的目標值是Yes還是No。
對未知樣本進行分類,如max(P(x|C)P(C))=P(X|C=n)P(C=n),則說明未知樣本屬于第n類,其中:
①P(C=i)=Si/S,Si是類Ci中的訓練樣本數(shù),S是訓練樣本總數(shù);
②P(X|C=i)的計算開銷比較大,因為會涉及很多屬性變量,這可以做“屬性值互相條件獨立”的假定,即屬性件不存在依賴關系。
具體Python的示例程序,課程中會結合目前所使用的實驗平臺,在此不再依依列出。
4?課程考核方案的設計
課程考核方案的設計必須能客觀反映出學生對數(shù)據(jù)挖掘基本原理和算法應用的掌握程度,考核從兩個方面進行,第一是理論測驗,主要考查學生對數(shù)據(jù)挖掘的基本概念和算法理解的能力,以紙質試卷的形式進行測試,并結合平時的課后作業(yè)、單元測試及課堂表現(xiàn)等來綜合打分。第二是實驗測試,主要考查學生對Python語言應用和數(shù)據(jù)挖掘算法應用的能力,以上機的方式進行測試,并結合平時的上機實驗報告、實驗單元測試及課堂表現(xiàn)等情況來綜合打分。當然,這種考核方案還需不斷摸索改進,而目的就是為了讓學生更好地掌握以Python語言為基礎的數(shù)據(jù)挖掘技術,在云大物移智的大環(huán)境下,為研究更深入的智能數(shù)據(jù)分析研究打好基礎。
參考文獻:
[1]李克清,時允田.機器學習及應用[M].北京:人民郵電出版社,2019.
[2]劉凌霞,郝寧波,吳海濤.21天學通Python[M].北京:電子工業(yè)出版社,2018.
[3]嵩天,禮欣,黃天羽.Python語言程序設計基礎[M].北京:高等教育出版社,2017.
[4]白楊.應用型本科“數(shù)據(jù)挖掘”課程的構建研究[J].無線互聯(lián)科技,2018(5):9596.
[5]渠暢.基于R語言的大數(shù)據(jù)挖掘課程建設研究[J].無線互聯(lián)科技,2018(4):9193.
[6]李婷,張繼周.大數(shù)據(jù)環(huán)境下本科生數(shù)據(jù)挖掘課程建設研究[J].教育現(xiàn)代化,2017(40):230232.
基金項目:1.山東青年政治學院2019年度校級教學改革研究項目[1+X數(shù)據(jù)采集職業(yè)技能等級證書制度試點的建設(JGWT201913)];2.山東青年政治學院教學成果獎培育項目[以大數(shù)據(jù)競賽為依托的大數(shù)據(jù)相關專業(yè)“三融三促”人才培養(yǎng)模式研究與實踐(19CGPY03)]
作者簡介:楊軍(1989—?),男,山東濟南人,碩士,助教,主要研究方向為大數(shù)據(jù)技術、數(shù)據(jù)挖掘與分析;張岳,碩士,講師;劉燕峰,碩士,講師。