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