劉海軍+李忠

摘要:目前大數據分析行業剛剛起步,職場上對數據分析師的崗位缺口很大,高校在此背景下開設數據挖掘技術課程,培養學生的數據意識、數據分析思維,對學生具有深遠的影響。本文針對應用型本科學生的接受能力和培養目標,探討了數據挖掘技術理論教學內容安排和實踐課程開發工具建議,以期為廣大開設該課程的教師提供參考。
關鍵詞:數據挖掘技術;實驗課程設計;應用型本科
目前,數據已經滲透到當今每一個行業和業務職能領域,成為重要的生產因素。各行各業的決策正在從“業務驅動”轉變為“數據驅動”,人們對海量數據的挖掘和運用,將創造出巨大的經濟和社會價值。目前,我國高度重視大數據的發展。2015年8月31日,國務院印發《促進大數據發展行動綱要》,系統部署大數據發展工作。通過對大數據進行挖掘和分析,可以使企業清晰地了解自身現狀、競爭環境、風險評判與決策支持。在對大數據進行充分挖掘與展現后,呈現給企業決策者的將是一份清晰、準確且有數據支撐的報告。所以,大數據分析師是參與企業決策發展制定的核心人物,因而被認為是未來十年最有前景的工作崗位。
目前大數據分析行業剛剛起步,職場上對數據分析師的崗位缺口很大,高校在此背景下開設數據挖掘技術課程,培養學生的數據意識、數據分析思維,無論學生將來是否從事數據分析相關的工作,都會對學生有深遠的影響。
數據挖掘課程的教學目的是讓學生掌握數據挖掘的相關知識,能分析并運用成熟的技術和方法。由于數據挖掘課程涉及多種學科,理論性和實踐性都很強,所以在教學中存在諸多問題和挑戰。本科生初次接觸數據挖掘技術這門課程,普遍感覺困難,主要在于該課程對數學要求比較高,而本科生的前期數學積累知識基礎不夠。針對應用型本科生的特點,本文從理論教學內容和實驗教學環節來探討這門課程應講授的知識點。
一、理論教學內容探討
數據挖掘技術融合了相當多的內容,由綜合統計分析、機器學習、人工智能、數據庫等諸多方面的研究成果綜合而成;與專家系統、知識管理等研究方向不同的是,數據挖掘更側重于應用的層面。讓學生通過一個學期的學習就全面了解所有的細節是一件幾乎就不可能完成的任務,因此在一個學期的教學中,必須有所側重。數據挖掘技術包含分類、聚類、預測、關聯分析、孤立點分析等環節。學生的學習目標是明白這些技術是用來干什么的,典型的算法大致是怎樣的,以及在什么情況下應該選用什么樣的技術和算法。下面給出了教學內容及重點難點。
1.數據挖掘技術概述
通過講解案例,學生可以了解數據挖掘都能做哪些事情以及數據挖掘技術的價值。典型的案例有沃爾瑪“啤酒喝尿布”的故事、百度用數據挖掘方法預測世界杯的結果、華爾街利用數據挖掘技術進行輿情分析預測股票價格、谷哥采用大數據分析技術預測流感趨勢的案例等。通過講授這些案例,讓學生對數據挖掘技術這門課程產生濃厚的學習興趣,同時讓學生去閱讀數據挖掘的綜述文章,組織討論彼此的綜述成果。
2.數據預處理方法
數據是數據挖掘的前提和核心,數據挖掘成敗往往取決于高質量的數據。教師首先要讓學生了解什么是數據、數據中心及數據離散度的表示方法等,然后講授數據中可能存在的問題及相應的預處理方法。本章重要的數據預處理方法有數據離散化方法和數據規范化方法;關于距離的知識是講授的重點。因此,教師要讓學生了解什么是距離,為什么要有這么多距離函數,什么情況下應該選取什么樣的距離函數。
3.分類和回歸
數據挖掘的絕大多數問題都可以理解成分類和回歸問題,因而本章是整個課程教學的核心任務,分配的學時較多。由于在本課程之前,學生從未接觸過機器學習知識,所以本章首先要學生理解分類和回歸的概念,讓學生能夠區分哪些問題可以用分類算法解決,哪些問題可以用回歸算法解決。對于本章的理論教學內容,建議講授決策樹和貝葉斯兩種分類器及邏輯回歸算法。決策樹的構建思想說明數據有好多屬性,這些屬性的價值是有差異的;貝葉斯方法表明數據具有一定的統計規律,當數據足夠多時,這種統計規律可以近似的定量描述。這兩種方法都是重點內容。
邏輯回歸是最常見、最經典的回歸分析算法,可以用作預測某種風險,其中損失函數是講授的重點,也是難點。
4.聚類問題
聚類問題是機器學習三大類問題之一,是非監督學習的一種。在現實生活中充斥著太多的無標簽數據,聚類分析可以在雜亂無章的數據中找到數據的本質所在。最簡單、最經典的聚類算法是kmeans聚類算法,其易于理解和實現,但是基于距離的思想計算相似性,無法解決數據中存在不規則密度體的問題,因此需要講授另一種基于密度的聚類方法DBScan算法。本章重點是基于密度和距離的距離算法。
5.關聯分析
關聯分析并不是機器學習方法,是數據挖掘特有的技術。“啤酒尿布”問題就是關聯分析的一個典型應用。對于本章的教學,建議從事務之間的簡單關聯、單個事務之間的時序關聯兩個角度來講述關聯分析。同時要強調辛普森悖論,讓學生明白,數據預處理方法不恰當,可能導致錯誤的分析結果。本章重點內容是相關概念、Apriori算法。
6.離群點檢測
離群點檢測本質上是一個分類問題,即類別不平衡的分類問題,因為離群點往往被認為是數據中的小概率事件。離群點檢測問題不僅需要確定哪些數據是離群點,還需要確定數據的離群程度。建議講授基于概率的模型和基于密度的模型,重點在于對概率分析、數據密度等概念的理解。
7.案例分析
結合實際項目,介紹不同數據挖掘算法的應用、結果分析、性能等,讓學生有切實的感受。
二、實踐內容教學探討
數據挖掘技術是一門理論性、應用性均較強的課程。學生學習理論知識的目的是解決實踐問題,因此數據挖掘實踐課程設計尤其重要。在本科數據挖掘技術課程的教學過程中,教學學時一般在48學時或64學時,以48學時居多。然而課程的理論內容教學就要占到32學時甚至更多,因此,要想讓學生在16個學時左右就能利用所學理論解決實際問題,實驗環境和實驗內容的選擇尤其重要。
以筆者近年給本科生指導實驗課為例,共35個學生,僅一個貝葉斯算法,用C++語言來實現,占用了8個學時,且只有2個學生能正確完成任務,其余的學生在數據讀取階段就花費了近4個學時,有三分之一左右的學生甚至無從下手。而采用Matlab完成該實驗,在學生以前沒有接觸過Matlab的情況下,時間減少了三分之一,當學生掌握Matlab基本語法之后,有2個學生2個小時就完成了該任務,而80%以上的學生在使用了Matlab之后,基本上能實現貝葉斯算法。下面給出了我校大三35名本科生采用不同工具完成數據挖掘實驗課程的結果,如表1所示。
從表1可以看出,在有限的實驗課時內,數據挖掘實驗不宜采用C、C++、Java之類的編程語言;采用Matlab、Python、R之類的編程語言,可以使實驗任務完成時間更短。但是由于本科學生普遍沒有接觸過Matlab、Python、R等語言,因此需要4~6學時的編程語言教學,才能讓學生能掌握基本編程規則。即便如此,仍有相當一部分本科生無法完成實驗任務。
Clementine是一款數據挖掘軟件包,功能強大,簡單易用。學生在完全沒基礎的情況下,用2個學時幾乎都能掌握該使用方法,而實驗任務基本可以在半個小時之內完成。
數據挖掘技術的實驗課程,主要目的是讓學生利用所學的專業知識解決實際問題。因此,建議本科的數據挖掘實驗課程以Clementine工具為主,多設計一些數據挖掘案例,讓學生學會用工具軟件進行數據分析。同時,為了讓優秀的學生能夠自己編寫自己的數據挖掘程序,建議以開放實驗的形式,讓學生自愿參與,采用Matlab、Python、R語言來實現。
三、結論
本文從理論教學內容和實驗教學工具兩個方面探討了本科數據挖掘技術課程的教學,說明了各部分的教學重點和難點,分析了實踐教學的語言應用與工具軟件的優缺點,希望能為從事該課程教學的教師,提供一些參考。
參考文獻:
[1]詹少強.大數據背景下的數據挖掘課程教學新探[J].長春教育學院學報,2014(22):81-82.
[2]張艷.大數據背景下的數據挖掘課程教學新思考[J].計算機時代,2014(4):59-61.
[3]李春江.大數據環境下的數據挖掘課程教學探索[J].黑龍江教育(理論與實踐),2016(4):54-55.
[4]李忠,李姍姍.應用型本科院校IT專業數據挖掘課程建設[J].計算機時代,2014(11):65-69.
[5]徐琴.應用型本科數據挖掘技術課程教學探討與實踐[J].電腦知識與技術,2016(22):148-149.
[6]張增平,喬曉華.針對應用型本科生數據挖掘課程的教學實踐[J].內蒙古財經大學學報,2015(4).
[7]江麗麗.基于數據挖掘技術的教學內容雙向評價系統的設計與實現[J].科技信息,2010(27).