宋 暉,劉曉強,杜 明,王洪亞
(東華大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,上海 201620)
近年來計算機技術(shù)經(jīng)歷了新一輪發(fā)展,大數(shù)據(jù)、移動平臺改變了人們的生活、生產(chǎn)方式,國務(wù)院《促進大數(shù)據(jù)發(fā)展行動綱要》[1]中指出運用大數(shù)據(jù)推動經(jīng)濟發(fā)展、完善社會治理、提升政府服務(wù)和監(jiān)管能力正成為趨勢,“數(shù)據(jù)為王”時代對大學(xué)生的知識技能提出了新的要求。從2010年開始,國內(nèi)外高等學(xué)校紛紛開始創(chuàng)立數(shù)據(jù)科學(xué)專業(yè)和大數(shù)據(jù)學(xué)院,我國高等教育本科也從2016年開始設(shè)置數(shù)據(jù)科學(xué)與大數(shù)據(jù)專業(yè)(080910T)[2],培養(yǎng)具有專業(yè)素養(yǎng)的數(shù)據(jù)科學(xué)人才。
作為人類社會新型的生產(chǎn)要素,數(shù)據(jù)產(chǎn)生于各行各業(yè)、服務(wù)于各行各業(yè),掌握先進的數(shù)據(jù)科學(xué)思想方法和技術(shù)是每個領(lǐng)域高級從業(yè)者應(yīng)具備的基本素養(yǎng)。國家行動計劃對大學(xué)生的知識技能培養(yǎng)提出了新的目標(biāo),探索如何面向大面積本科生開展數(shù)據(jù)科學(xué)教學(xué)已成為高校計算機基礎(chǔ)教學(xué)的改革重點和方向。目前,國內(nèi)高校在此方面還基本處于起步階段,還未形成較明確的教學(xué)目標(biāo)和教學(xué)要求,探索可行的通識課程教學(xué)方案成為教學(xué)研究的熱點。
數(shù)據(jù)科學(xué)專業(yè)通常包括6~8門專業(yè)課,還需要配合相關(guān)的基礎(chǔ)課程,涵蓋數(shù)學(xué)、統(tǒng)計學(xué)、計算機科學(xué)等理論知識[3]。2016年開始各校陸續(xù)開設(shè)數(shù)據(jù)科學(xué)導(dǎo)論類課程,主要是面向特定專業(yè)學(xué)生,如計算機、經(jīng)管、金融等專業(yè)[4],這些學(xué)生已具備了基礎(chǔ)的計算機、數(shù)學(xué)專業(yè)知識。MOOC、Coursera等平臺也上線了多門數(shù)據(jù)科學(xué)相關(guān)課程,主要為從數(shù)據(jù)分析工具角度實現(xiàn)數(shù)據(jù)分析的專項課程[5]。
近年來國內(nèi)高校已認識到面向大面積本科生開展數(shù)據(jù)科學(xué)教學(xué)的重要性,紛紛開展了試點教學(xué)工作,探索合適的教學(xué)內(nèi)容和方法。例如南京大學(xué)針對非計算機專業(yè)學(xué)生開設(shè)了相關(guān)課程,但教學(xué)內(nèi)容為電子表格Excel提供的簡單分析處理。部分學(xué)校也采用可視化工具開展了數(shù)據(jù)分析的教學(xué)工作,如R語言、SQL Server等可視化工具等,但都缺乏針對數(shù)據(jù)科學(xué)知識和方法較系統(tǒng)的教學(xué)。面向大面積本科生開展數(shù)據(jù)科學(xué)教學(xué)主要面臨以下幾方面的挑戰(zhàn)。
(1)目前國內(nèi)外高校開設(shè)的數(shù)據(jù)科學(xué)相關(guān)課程,要求學(xué)生具備較強的數(shù)學(xué)、計算機基礎(chǔ)和相關(guān)工具的使用能力,直接套用這些教學(xué)內(nèi)容面向非計算機專業(yè)學(xué)生進行教學(xué),難以實施。學(xué)校必須充分了解高校本科生已具備的背景知識,設(shè)置合理的課程內(nèi)容,規(guī)劃教學(xué)模塊和實例,使學(xué)生能夠在計算機基礎(chǔ)教學(xué)有限的教學(xué)學(xué)時內(nèi),學(xué)有所得,學(xué)有所用。
(2)面向大面積本科生的數(shù)據(jù)科學(xué)教育還處于起步探索階段,目前各校根據(jù)本校專業(yè)需求、學(xué)生層次嘗試開設(shè)相關(guān)課程,還未形成具有較強實用性的教材和實驗案例。市面上相關(guān)書籍多為技術(shù)手冊類、案例實戰(zhàn)類[6],缺乏基礎(chǔ)知識講解,案例背景復(fù)雜,編程難度大;少數(shù)高校編寫的教材,理論性較強[7],缺乏循序漸進的練習(xí),不滿足計算機通識教學(xué)的需求。
(3)人工智能特別是機器學(xué)習(xí)方法已成為數(shù)據(jù)科學(xué)分析處理數(shù)據(jù)最重要的技術(shù)之一,如何深入淺出地介紹相關(guān)技術(shù)的基本思想,使學(xué)生理解數(shù)據(jù)建模分析的作用,通過實踐案例的教學(xué)讓學(xué)生掌握從數(shù)據(jù)準(zhǔn)備、建模分析、性能比較和結(jié)果解讀等關(guān)鍵步驟和主要方法,是很大的挑戰(zhàn)。
面向大面積本科生的數(shù)據(jù)科學(xué)通識課程,目標(biāo)是為學(xué)生灌輸數(shù)據(jù)即生產(chǎn)力的意識,使其能夠在專業(yè)領(lǐng)域中主動采用數(shù)據(jù)科學(xué)的方法,從數(shù)據(jù)中獲取價值。課程重點介紹數(shù)據(jù)科學(xué)的工作流程,包括數(shù)據(jù)采集、數(shù)據(jù)整理和探索、數(shù)據(jù)可視化和數(shù)據(jù)建模預(yù)測等思想方法和實現(xiàn)技術(shù),并通過文本、圖像、語音等前沿應(yīng)用,引入人工智能技術(shù)在數(shù)據(jù)科學(xué)領(lǐng)域應(yīng)用的最新成果,幫助學(xué)生在學(xué)習(xí)工作中運用最先進的智能技術(shù)提高效率。
課程內(nèi)容按照數(shù)據(jù)科學(xué)的工作流程組織教學(xué)內(nèi)容,圍繞問題描述、數(shù)據(jù)準(zhǔn)備、數(shù)據(jù)探索、預(yù)測建模和結(jié)果可視化5個方面進行數(shù)據(jù)分析的過程和關(guān)鍵技術(shù)講解。
1)問題描述。
數(shù)據(jù)科學(xué)不是因為有了數(shù)據(jù),就針對數(shù)據(jù)進行分析,而是有需要解決的問題,才對應(yīng)地搜集數(shù)據(jù)、分析數(shù)據(jù)?;趯I(yè)背景,界定問題,明確數(shù)據(jù)分析的目標(biāo)和需求是數(shù)據(jù)分析項目成敗的關(guān)鍵所在。
2)數(shù)據(jù)準(zhǔn)備。
數(shù)據(jù)準(zhǔn)備包括數(shù)據(jù)獲取、清洗、標(biāo)準(zhǔn)化,最終轉(zhuǎn)化為可供分析的數(shù)據(jù)。面向問題需求,可以從多種渠道采集到相關(guān)數(shù)據(jù),如互聯(lián)網(wǎng)爬取、業(yè)務(wù)系統(tǒng)生成、檢測設(shè)備記錄等,然后按照業(yè)務(wù)邏輯將這些形式各異的數(shù)據(jù)組織為格式化的數(shù)據(jù),去掉其中的冗余數(shù)據(jù)、無效數(shù)據(jù),填補缺失數(shù)據(jù)。
3)數(shù)據(jù)探索。
數(shù)據(jù)探索主要采用統(tǒng)計或圖形化的形式來考察數(shù)據(jù),觀察數(shù)據(jù)的統(tǒng)計特性和數(shù)據(jù)成員之間的關(guān)聯(lián)、模式等??梢暬姆椒軌蛱峁?shù)據(jù)概覽,從而找到有意義的模式。
4)預(yù)測建模。
根據(jù)分析目標(biāo),通過機器學(xué)習(xí)或統(tǒng)計方法,從數(shù)據(jù)中建立問題描述模型,選擇何種方法主要取決于是分類預(yù)測問題,還是描述性問題或是關(guān)聯(lián)性分析問題。
5)結(jié)果可視化。
結(jié)果可視化整理分析結(jié)果,展示并將分析結(jié)果保存在應(yīng)用系統(tǒng)中。展示的形式有多種,如報表、二維圖、儀盤或信息圖等。這些結(jié)果被粘貼到各種報告中,或發(fā)布到Web 應(yīng)用系統(tǒng)、移動應(yīng)用的頁面上,形成數(shù)據(jù)產(chǎn)品。
圍繞數(shù)據(jù)科學(xué)的主要步驟,課程知識點架構(gòu)設(shè)計見圖1。
圖1 課程知識架構(gòu)
根據(jù)課程的知識點,需設(shè)計大量的教學(xué)案例循序漸進、由淺入深地引入數(shù)據(jù)分析的技術(shù)和方法。每個案例都應(yīng)依據(jù)數(shù)據(jù)科學(xué)的工作流程,介紹問題來源、分析目標(biāo),然后再介紹分析方法,解釋分析結(jié)果。
1)大數(shù)據(jù)分析。
大數(shù)據(jù)分析需要學(xué)生具備更多的計算機專業(yè)背景知識,包括分布式系統(tǒng)、分布式數(shù)據(jù)存儲、并行算法等。為了避免艱深的專業(yè)知識,又能使學(xué)生對大數(shù)據(jù)處理有一定的認識,可以選擇在機器學(xué)習(xí)方法中通過深度神經(jīng)網(wǎng)絡(luò)及其在圖像處理領(lǐng)域的應(yīng)用進行介紹。
教學(xué)中可以首先引入神經(jīng)網(wǎng)絡(luò)的感知器等基本概念,進一步介紹全連接的前饋神經(jīng)網(wǎng)絡(luò),再引入深度神經(jīng)網(wǎng)絡(luò),闡述大數(shù)據(jù)對人工智能、深度學(xué)習(xí)方法實現(xiàn)的重要性。通過一個高度集成的Keras框架,簡化編程實現(xiàn)過程,幫助學(xué)生了解如何構(gòu)建大數(shù)據(jù)分析模型,通過圖片分類應(yīng)用,使學(xué)生能夠切實理解大數(shù)據(jù)分析,訓(xùn)練數(shù)據(jù)準(zhǔn)備和分析處理等關(guān)鍵技術(shù)和方法。
2)人工智能與數(shù)據(jù)分析。
人工智能與數(shù)據(jù)科學(xué)密切相關(guān),數(shù)據(jù)的可用性增強了人工智能和認知,另一方面人工智能方法是數(shù)據(jù)分析的關(guān)鍵技術(shù),大數(shù)據(jù)推動人工智能技術(shù)的發(fā)展。
數(shù)據(jù)分析需要學(xué)生具備應(yīng)用人工智能方法(特別是機器學(xué)習(xí)技術(shù))處理數(shù)據(jù)的能力,基礎(chǔ)教學(xué)的重點在于對機器學(xué)習(xí)建模方法應(yīng)用的理解,闡述監(jiān)督學(xué)習(xí)和非監(jiān)督學(xué)習(xí)適合解決的問題類型,使學(xué)生能夠根據(jù)實際應(yīng)用的需求,將數(shù)據(jù)分析目標(biāo)轉(zhuǎn)換為合適的機器學(xué)習(xí)任務(wù),進一步選擇有效的算法求解問題。教學(xué)應(yīng)結(jié)合實際案例,圍繞數(shù)據(jù)分析過程如何使用人工智能技術(shù)展開,從數(shù)據(jù)準(zhǔn)備、適用數(shù)據(jù)集分析、模型使用、性能比較、分析結(jié)果解讀等方面闡述數(shù)據(jù)工作的思想和模式。
根據(jù)大面積本科生的數(shù)學(xué)背景,對于機器學(xué)習(xí)方法的介紹需要有所選擇。線性回歸分析、決策樹、SVM、神經(jīng)網(wǎng)絡(luò)分類、K-means聚類等模型能夠找到直觀、形象的方式說明其基本思想,適合在教學(xué)中引入,便于學(xué)生對人工智能的本質(zhì)有較深入的認識;而貝葉斯方法、PCA特征分解等算法由于需要較強的概率統(tǒng)計和線性代數(shù)背景知識,則可忽略。
數(shù)據(jù)科學(xué)是應(yīng)用性的科學(xué),所有的方法和技術(shù)都需要結(jié)合數(shù)據(jù)背景來理解和掌握。在教學(xué)中,應(yīng)圍繞需求,提出解決思路,選擇合適的方法設(shè)計分析流程加以實現(xiàn),最后需要對分析得到結(jié)果進行解讀,談?wù)摲治鼋Y(jié)果的價值。下面以課程中“統(tǒng)計分析方法”部分的知識點教學(xué)為例,介紹課程教學(xué)思路。
“統(tǒng)計分析”部分目標(biāo)是掌握將實際背景領(lǐng)域的數(shù)據(jù)組織為DataFrame的結(jié)構(gòu),根據(jù)分析目標(biāo),采用統(tǒng)計函數(shù)實現(xiàn)。每個知識點的教學(xué)環(huán)節(jié),首先需要給出數(shù)據(jù)產(chǎn)生的背景,統(tǒng)計分析實例中采用的數(shù)據(jù)來源于學(xué)生基本信息和課程學(xué)習(xí)相關(guān)的問卷調(diào)查,調(diào)查結(jié)果被整理到Excel文件中;第二步針對收集的調(diào)查數(shù)據(jù),提出相應(yīng)分析目標(biāo),如學(xué)生興趣、地域來源與成績的相關(guān)性等;針對每個分析目標(biāo)描述采用的分析方法和技術(shù),列出實現(xiàn)步驟;第4步給出基于Python科學(xué)計算方法庫的編程代碼;最后對分析結(jié)果進行說明,根據(jù)數(shù)據(jù)的背景解讀結(jié)果的顯示意義,判斷結(jié)果的有效性等。
教學(xué)過程注重闡述解決問題的思路和方法,具體的實現(xiàn)可以選擇不同的語言和工具。
數(shù)據(jù)科學(xué)課程的內(nèi)容是圍繞案例展開的,簡便易掌握的實踐環(huán)境是教學(xué)效果的重要保障。選擇Python語言開展數(shù)據(jù)分析教學(xué)具有以下優(yōu)點。
(1)Python通過多個開源的第三方工具包實現(xiàn)數(shù)據(jù)分析,能夠緊跟新技術(shù)發(fā)展,已成為數(shù)據(jù)科學(xué)的首選工具。只要具備任何一門編程語言的基礎(chǔ)就能快速使用。
(2)與統(tǒng)計分析專業(yè)工具R語言和矩陣計算專業(yè)工具MATLAB相比,Python包含了數(shù)據(jù)分析過程需要的所有方法和工具,具有速度優(yōu)勢,能夠支持大數(shù)據(jù)處理。
(3)基于Python的教學(xué)環(huán)境,使用者重點關(guān)注分析的技術(shù)和方法,無須耗費大量精力掌握復(fù)雜的軟件編程技術(shù),代碼量少,適用于初學(xué)者,也適用于專家。
Python首選的科學(xué)計算環(huán)境是Anaconda(開源),集成了常用的NumPy、SciPy、pandas、Matplotlib、scikit-learn、NLTK等方法庫,滿足數(shù)據(jù)分析的基本需求,如需進行深度學(xué)習(xí),可安裝Tensorflow、Keras等框架。
如果教學(xué)主要面向文科、醫(yī)學(xué)等專業(yè),也可以采用集成的可視化工具軟件開展數(shù)據(jù)科學(xué)教學(xué),避免程序代碼的編寫。
數(shù)據(jù)科學(xué)的知識和技能,單純通過知識點講解很難掌握,需要通過大量的實踐案例來體會、理解,再到實際應(yīng)用。課程中的練習(xí)應(yīng)分3個層次。
(1)模仿類,延續(xù)教學(xué)案例中的數(shù)據(jù)集,提出類似的新分析目標(biāo),幫助學(xué)生掌握分析數(shù)據(jù)的基本數(shù)據(jù)組織方法和處理技術(shù)。
(2)應(yīng)用類,給出新應(yīng)用背景的數(shù)據(jù)案例,要求學(xué)生采用章節(jié)學(xué)習(xí)的分析方法實現(xiàn)分析目標(biāo)。
(3)開放項目,要求收集與學(xué)生本專業(yè)相關(guān)的實驗、生產(chǎn)或經(jīng)營等數(shù)據(jù),基于專業(yè)知識,制訂合理的分析目標(biāo),綜合運用各種分析方法和技術(shù)處理數(shù)據(jù),繪制分析圖表,解讀分析結(jié)果,撰寫分析報告。
課程考試可以全部采用實踐考核的方式,題型可分為兩大類:①基礎(chǔ)題,多個小問題卡和單一的分析方法;②綜合應(yīng)用題,1~2道大題考核綜合分析能力。由于分析實現(xiàn)需要通過Python編程調(diào)用各種分析庫函數(shù)實現(xiàn),因此在考試中應(yīng)給出庫函數(shù)幫助文件,避免學(xué)生陷入編程記憶的怪圈,將考核重點集中在分析方法的正確應(yīng)用上。
東華大學(xué)于2016年起開始在本科生計算機基礎(chǔ)教學(xué)的課程體系中加入數(shù)據(jù)科學(xué)課程,目前已有約300人選修了該課程。學(xué)生來自全校不同專業(yè),均選修過一門編程語言,但并不限于Python語言。大部分學(xué)生能夠掌握數(shù)據(jù)科學(xué)處理的基本方法,大約1/4的學(xué)生能夠較好地完成開放項目,在學(xué)科專業(yè)或自己學(xué)習(xí)生活中感興趣的領(lǐng)域中,收集數(shù)據(jù)、處理分析數(shù)據(jù),獲得有價值的分析報告,如材料學(xué)院、環(huán)境學(xué)院和管理學(xué)院的學(xué)生提交了水環(huán)境與水污染治理分析、金屬材料水中腐蝕性分析和景區(qū)酒店房價與入住率分析等項目報告。
東華大學(xué)課程組在4個學(xué)期的教學(xué)探索后,總結(jié)經(jīng)驗編寫了《數(shù)據(jù)科學(xué)技術(shù)與應(yīng)用》教材,獲得上海市以及全國多所高校的認可,未來上海多所高校將借鑒此教材開展教學(xué)。
大數(shù)據(jù)時代,處理數(shù)據(jù)的能力已成為當(dāng)代大學(xué)生的基本素養(yǎng),但目前各高校通識類的數(shù)據(jù)科學(xué)教學(xué)還處于探索階段。在綜合本科生知識背景以及梳理數(shù)據(jù)科學(xué)專業(yè)知識體系的基礎(chǔ)上,筆者設(shè)計了面向各學(xué)科大面積本科生的數(shù)據(jù)科學(xué)課程結(jié)構(gòu),圍繞數(shù)據(jù)科學(xué)工作流程各步驟的核心問題,介紹從數(shù)據(jù)中獲取知識的思維方法和技術(shù),在傳統(tǒng)的統(tǒng)計分析方法基礎(chǔ)上,增加了基于人工智能機器學(xué)習(xí)的建模分析方法,通過圖像、文本、語音等典型人工智能數(shù)據(jù)應(yīng)用領(lǐng)域?qū)嵗?,將?shù)據(jù)科學(xué)的前沿技術(shù)引入計算機基礎(chǔ)教學(xué),為大學(xué)生打開數(shù)據(jù)時代的創(chuàng)新之門。