戴培山 范敏
摘要:R語言數(shù)據(jù)分析編程課程是數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)的重要專業(yè)課程,大數(shù)據(jù)專業(yè)及其相關(guān)課程建設(shè)尚處于探索階段。以《R語言數(shù)據(jù)分析編程》為例分析了大數(shù)據(jù)專業(yè)教學(xué)中存在的問題。并針對存在的問題,提出了相應(yīng)的解決方案,包括建立完善的課程教學(xué)資源,突出實踐環(huán)節(jié)在人才培養(yǎng)中的重要作用,利用競賽提高學(xué)有余力同學(xué)的數(shù)據(jù)分析能力和綜合素質(zhì)。
關(guān)鍵詞:大數(shù)據(jù)專業(yè)課程;課程教學(xué)資源;實踐環(huán)節(jié);數(shù)據(jù)分析競賽
中圖分類號:TP311? ? ? ? ? ?文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)30-0191-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
Exploration on Teaching Reform of Big Data Major—Data Analysis Programming With R
DAI Pei-shan1, FAN Min2*
(1. School of Computer Science and Engineering, Central South University, Changsha 410083, China; 2. School of Social Development and Management, Hunan Womens University, Changsha 410083, China)
Abstract: The course of data analysis programming with R is an important professional course for data science and big data technology major, and the construction of big data major and its related courses is still in the exploratory stage. This paper takes the course of data analysis programming with R as an example to analyze the existing problems in the teaching of big data major. In view of the existing problems, this paper puts forward the corresponding solutions, including the establishment of perfect teaching resources, highlighting the important role of practice in personnel training, and using the competition to improve the data analysis ability and comprehensive quality of the students who are willing to learn.
Key words: big data professional course; course teaching resources; practice link; data analysis competition
隨著數(shù)據(jù)獲取技術(shù)的飛速發(fā)展,數(shù)據(jù)處理在國民經(jīng)濟(jì)和生產(chǎn)生活中起著越來越重要的作用。應(yīng)運而生的數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)旨在培養(yǎng)具有大數(shù)據(jù)思維、運用大數(shù)據(jù)思維及分析應(yīng)用技術(shù)的高層次大數(shù)據(jù)人才[1-2]。中南大學(xué)是全國第一批開設(shè)數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)的高校。該專業(yè)從2016年獲批以來,教育教學(xué)和人才培養(yǎng)還處于探索階段,對該專業(yè)相關(guān)課程的教育教學(xué)改革具有重要的意義。數(shù)據(jù)分析知識與技能是該專業(yè)的基本知識和能力要求,《R語言數(shù)據(jù)分析編程》課程是數(shù)據(jù)分析知識與技能訓(xùn)練的重要載體。據(jù)我們所知,我?!禦語言數(shù)據(jù)分析編程》課程是全國唯一將R語言與數(shù)據(jù)分析編程結(jié)合起來的一門課程。該課程教學(xué)體系的建立需要不斷進(jìn)行探索和實踐。數(shù)據(jù)分析技能的培養(yǎng)需要在實踐中培養(yǎng),實踐環(huán)節(jié)和授課環(huán)節(jié)具有同等重要的作用。因此,探討了《R語言數(shù)據(jù)分析編程》課程的教學(xué)實踐新方法。
1 國內(nèi)外研究現(xiàn)狀
R是一個優(yōu)秀的數(shù)據(jù)分析和制圖的軟件環(huán)境。R語言在國際和國內(nèi)的發(fā)展現(xiàn)狀差異非常大,國際上R語言已然是專業(yè)數(shù)據(jù)分析領(lǐng)域的標(biāo)準(zhǔn),但在國內(nèi)R語言的應(yīng)用領(lǐng)域還比較小眾[3-7]。造成這種情況的原因是多方面,這與版權(quán)意識,語言障礙,國際交流,知識普及等都有關(guān)。國外在R語言方面有大量的教學(xué)視頻和教學(xué)書籍可供使用。經(jīng)典書籍有《R語言實戰(zhàn)》,《R語言編程藝術(shù)》,《數(shù)據(jù)挖掘與R語言》和《機(jī)器學(xué)習(xí):實用案例解析》等。Coursera等慕課系統(tǒng)中也有許多R相關(guān)的在線課程。而國內(nèi)高水平的教材和教學(xué)資源非常少,代表性的有薛毅的《統(tǒng)計建模與R軟件》和《R語言實用教程》,其他R語言數(shù)據(jù)分析的視頻主要源于收費不菲的線上或線下培訓(xùn)班。
2 教學(xué)方法的改革
從國內(nèi)外R語言教學(xué)的發(fā)展現(xiàn)狀來看主要存在兩大問題:
(1)大多數(shù)的R語言課程以介紹R語言語法結(jié)構(gòu)為主,與R語言的強(qiáng)大數(shù)據(jù)分析功能特點脫節(jié)。由于該課程開設(shè)在大二和大三年級,在學(xué)R語言類課程之前會學(xué)習(xí)C語言,C++和Java等編程語言課程,因此會造成學(xué)生在學(xué)R語言編程知識時興趣缺乏。
(2)R語言教學(xué)以上課講授為主,實踐環(huán)節(jié)薄弱。從數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)角度來看《R語言數(shù)據(jù)分析編程》應(yīng)該是理論與實踐緊密結(jié)合的一門課程。新知識和新技術(shù)的飛速發(fā)展,導(dǎo)致各個專業(yè)課程越來越多,一個結(jié)果是各門課程的課時大幅壓縮。導(dǎo)致在課程教學(xué)中由于課時的限制,實踐環(huán)節(jié)往往被壓縮甚至忽略。R語言的學(xué)習(xí)曲線是比較陡峭的,入門難。僅憑課堂講授很難融會貫通的將其應(yīng)用于數(shù)據(jù)分析與處理。
針對以上的問題,采取了如下教學(xué)改革措施:
1)制作了完整的《R語言數(shù)據(jù)分析編程》課程教學(xué)課件,填補(bǔ)了該課程教學(xué)課件的空白。教學(xué)課件章節(jié)明確,層次清晰。數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)專業(yè)的核心技能是數(shù)據(jù)分析技能。根據(jù)這一專業(yè)特點,在教學(xué)課件制作過程中始終將R語言語法知識與實際的數(shù)據(jù)處理問題緊密相連,做到理論與實踐相結(jié)合。制作課件內(nèi)容包括基本的數(shù)據(jù)集建立管理和圖形繪制,還包括統(tǒng)計分析技術(shù)介紹,以及數(shù)據(jù)分析中常用的機(jī)器學(xué)習(xí)算法。
2)制作了針對各個章節(jié)內(nèi)容的源代碼資源。R語言集成開發(fā)環(huán)境RStudio有一個非常好的功能就是在代碼區(qū)域,只要按一個按鈕代碼就可以自動執(zhí)行一條語句,光標(biāo)選中一個語句片段后,就可以直接運行該語句片段。這種功能非常適合課堂演示代碼的運行過程。針對每一個章節(jié)的數(shù)據(jù)處理實例,制作各章節(jié)教學(xué)內(nèi)容的源代碼資源,供教學(xué)演示和學(xué)生課下實踐使用。
3)在課程教學(xué)過程中,緊密結(jié)合大數(shù)據(jù)與數(shù)據(jù)科學(xué)專業(yè)的特點,始終圍繞數(shù)據(jù)分析這個核心任務(wù),將R語言的語法結(jié)構(gòu)知識與數(shù)據(jù)分析案例相結(jié)合,增加教學(xué)案例。首先,將數(shù)據(jù)分析的各個環(huán)節(jié)按照先后次序進(jìn)行模塊化分析,將數(shù)據(jù)處理的整個過程分為數(shù)據(jù)采集和創(chuàng)建,數(shù)據(jù)集管理,數(shù)據(jù)的分析和數(shù)據(jù)可視化四個環(huán)節(jié)。教學(xué)過程緊扣數(shù)據(jù)處理的四個環(huán)節(jié)展開,教學(xué)過程中知識的講授和數(shù)據(jù)處理的演示操作穿插進(jìn)行,促進(jìn)學(xué)生理論與實踐的結(jié)合。
這里以R語言進(jìn)行基本的數(shù)據(jù)可視化為例來說明案例教學(xué)的實施過程。之所以選擇數(shù)據(jù)可視化(圖形的繪制)為例是因為在數(shù)據(jù)分析和處理的過程中一圖勝千言,而R語言具有非常強(qiáng)大的繪圖和數(shù)據(jù)可視化功能。在介紹本部分的內(nèi)容的時候,首先,介紹R語言中四種圖形系統(tǒng),分別介紹他們的發(fā)展歷史,優(yōu)缺點。使同學(xué)們對于R語言數(shù)據(jù)可視化有一個宏觀的了解。然后,聚焦到基礎(chǔ)圖形的繪制,對圖形的繪制離不開數(shù)據(jù),要有一個使用的數(shù)據(jù)集,數(shù)據(jù)集的選取也要遵循:1)數(shù)據(jù)集要滿足展示數(shù)據(jù)可視化知識的數(shù)據(jù)特性;2)數(shù)據(jù)集不能太大,容易獲取;3)學(xué)生對數(shù)據(jù)集的信息比較熟悉。滿足這樣的基本條件才能使學(xué)習(xí)將主要的精力集中在數(shù)據(jù)可視化的方法上。這里選取R語言自帶的數(shù)據(jù)集mtcars。該數(shù)據(jù)是從1974年美國汽車趨勢雜志中提取的,包括燃油消耗和32輛汽車(1973-74型)的汽車設(shè)計和性能的11個指標(biāo)。本次實驗用的指標(biāo)是:車身重量(wt)與油耗(mpg)。接下,來給同學(xué)們展示一幅包含本章節(jié)課程主要知識點的數(shù)據(jù)可視化的結(jié)果圖片,啟發(fā)同學(xué)們根據(jù)圖片分析在數(shù)據(jù)可視化中包含的基本元素,主要有:點和線,坐標(biāo)軸,題注,文本,圖例和數(shù)學(xué)公式等。這些元素又有線條特征和顏色等參數(shù)。在分析完數(shù)據(jù)可視化的基本元素后,需要了解一下數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容??梢栽赗Studio平臺運行以下代碼進(jìn)行數(shù)據(jù)結(jié)構(gòu)和內(nèi)容的查看,以及繪制帶連線的散點圖。然而,這樣繪制出來的線條是雜亂的,并不是我們預(yù)期的結(jié)果。接下來就可以引導(dǎo)學(xué)生思考出現(xiàn)這種情況的原因。
問題出在哪里?因為圖中的第一個點可能并不在wt軸的最左邊,如果第二個點的wt軸比第一個點的值大,那么就會出現(xiàn)線條由左往右畫的情況,造成線條交叉。解決的辦法是將mtcars數(shù)據(jù)框按照wt的值從小到大重新排序。代碼如下:
mymtcars<-mtcars[order(mtcars[,6]),]
plot(mymtcars$wt, mymtcars$mpg, type="b")
后面再以以上的繪圖為基礎(chǔ),進(jìn)一步擴(kuò)展??梢愿淖兙€條和點的類型和顏色,這樣的代碼在課堂上直接演示并實施觀看運行結(jié)果,可以提高學(xué)生學(xué)習(xí)的興趣,避免課程講授模式與C語言,C++和Java等編程語言課程類似的教學(xué)模式造成的學(xué)生學(xué)習(xí)興趣缺乏。改變上圖繪制的折線顏色為彩虹色。首先,設(shè)置彩虹色的顏色數(shù)目為n= 6,調(diào)用rainbow(n)函數(shù)生成彩虹色。在繪制圖像時,col=mycolors參數(shù)引入剛生成的彩虹色。其他設(shè)置不變(其線條類型為點線,寬度為默認(rèn)寬度的5倍,點的符號為空心六邊形,大小為默認(rèn)符號大小的2倍)。
為提高學(xué)生的學(xué)習(xí)參與度,在授課的過程中要求學(xué)生分小組重復(fù)老師上課講解示例的代碼,加深體會。另外,在授課過程中還會穿插課堂測驗,了解學(xué)生學(xué)習(xí)效果。在本章節(jié)的授課過程中,課堂測驗的題目主要設(shè)計在圖形上數(shù)學(xué)公式的顯示和圖形的組合函數(shù)layout()函數(shù)的用法。主要原因是這兩個知識點比較抽象,通過實例和課堂測驗的雙重刺激加深學(xué)生對這兩個知識點的理解,學(xué)會靈活運用。
4)建立實踐教學(xué)云平臺,使學(xué)生在學(xué)習(xí)了理論知識后,可以在實踐平臺上及時運用自己所學(xué)的知識解決數(shù)據(jù)分析問題,提高知識的掌握和運用。在線實驗云平臺解決了實驗環(huán)境的限制,可以不用固定時間地點。實現(xiàn)實驗批改自動化,可以實時反饋實驗結(jié)果,存檔查詢方便,批改結(jié)果客觀,減少教師重復(fù)勞動。構(gòu)建的云平臺實踐教學(xué)系統(tǒng)對每一章節(jié)都設(shè)計了大量緊扣教學(xué)內(nèi)容代碼實踐題目,題目做完后,系統(tǒng)會根據(jù)學(xué)生提交結(jié)果自動批改。
例如聚類分析這一章中對于生成的二維坐標(biāo)數(shù)據(jù)和鳶尾花數(shù)據(jù)集分別進(jìn)行了層次聚類和K-means聚類的實踐教學(xué)。在生成二維坐標(biāo)進(jìn)行聚類中,利用引導(dǎo)和提示語句讓學(xué)生逐步完成聚類的整個過程。這里僅以生成數(shù)據(jù)為例做一下說明。
生成數(shù)據(jù)點:這里生成12個二維點, 這12個點中前4個的距離較近,中間四個的聚類較近,最后4個的聚類較近. 并繪制出這12個點在二維平面的分布圖。
在mycluster.R腳本里追加以下代碼:
1.(? ? )#生成數(shù)據(jù)點
2. (? )#設(shè)置圖像邊緣距離
3.(? ?)#數(shù)據(jù)點的x軸由正態(tài)分布產(chǎn)生12個隨機(jī)數(shù),前四個數(shù)的均值為1,
#接下來四個數(shù)的均值為2,最后四個數(shù)的均值為3,方差都為0.2
4.(? ? ? )? #數(shù)據(jù)點的y軸由正態(tài)分布產(chǎn)生12個隨機(jī)數(shù),前四個數(shù)的均值為1,
#接下來四個數(shù)的均值為2,最后四個數(shù)的均值為1,方差都為0.2
5.(? ? ? )#繪制x與y關(guān)系的散點圖
6.(? ? ?)#給個點加上標(biāo)號
檢測條件: 檢測在RStudio控制臺是否有如下代碼的輸入:
1.( set.seed(1234)? );2.(par(mar = c(2, 2, 2, 2))? ?);3.(x <- rnorm(12, mean = rep(1:3, each = 4), sd = 0.2)? ?);4.(y <- rnorm(12, mean = rep(c(1, 2, 1), each = 4), sd = 0.2)? ?):5.(? plot(x, y, col = "blue", pch = 19, cex = 2)? );6.(? text(x + 0.05, y + 0.05, labels = as.character(1:12))? )
5)精心設(shè)計課程實驗。本課程有兩個課程實驗。其中之一為基于R語言機(jī)器學(xué)習(xí)算法的鳶尾花數(shù)據(jù)分析。實驗對鳶尾花數(shù)據(jù)各個特征的相關(guān)性進(jìn)行分析,接下來實驗幾種常用的機(jī)器學(xué)習(xí)算法對該數(shù)據(jù)進(jìn)行分類的效果,最后選出分類效果較好的方法。通過該實驗使學(xué)生理解觀察和分析數(shù)據(jù)的過程,學(xué)會使用常見的機(jī)器學(xué)習(xí)方法(如線性判別分析(LDA),分類和回歸樹(CART),k-最近鄰居(kNN),帶有線性內(nèi)核的支持向量機(jī)(SVM),隨機(jī)森林(RF)和人工神經(jīng)網(wǎng)絡(luò))進(jìn)行鳶尾花數(shù)據(jù)的分類,并評判分類效果。
6) 對學(xué)有余力的同學(xué),以競賽帶動學(xué)生創(chuàng)新精神。國內(nèi)外已經(jīng)有一些著名的數(shù)據(jù)分析競賽平臺,參與其中的競賽可以極大的提高學(xué)生學(xué)時的積極性和主動性。國外著名的平臺有Kaggle(https://www.kaggle.com/),阿里的天池大數(shù)據(jù)科研平臺,數(shù)據(jù)城堡(DataCastle大數(shù)據(jù)競賽平臺)等。
大數(shù)據(jù)專業(yè)是新興專業(yè),在專業(yè)的發(fā)展過程中,需要不斷地進(jìn)行探索,鑒于該專業(yè)直接面向國民生產(chǎn)生活,學(xué)生專業(yè)技能的培養(yǎng)需要通過大量的數(shù)據(jù)處理訓(xùn)練完成。通過以上教學(xué)改革措施的實施,突出了課程實踐環(huán)節(jié)的重要性,利用線上實驗項目解決課時限制與實踐環(huán)節(jié)需要加強(qiáng)之間的矛盾。因材施教,利用競賽提高學(xué)有余力同學(xué)的數(shù)據(jù)分析能力和綜合素質(zhì)。
參考文獻(xiàn):
[1] 周黎鳴,林英豪,李征,等.新工科背景下大數(shù)據(jù)專業(yè)課程建設(shè)[J].計算機(jī)時代,2021(1):102-105.
[2] 王元卓,隋京言.應(yīng)用型大數(shù)據(jù)人才培養(yǎng)[J].高等工程教育研究,2021(1):44-49.
[3] 陽紅英.案例教學(xué)在《數(shù)據(jù)挖掘與R語言》課程教學(xué)中實踐與思考[J].中國多媒體與網(wǎng)絡(luò)教學(xué)學(xué)報(上旬刊),2020(8):106-107.
[4] 商豪.淺議本科教學(xué)中R語言的教學(xué)模式[J].理科愛好者(教育教學(xué)),2018(12):23,49.
[5] 柯朝甫.醫(yī)學(xué)本科生R語言教學(xué)初探[J].教育現(xiàn)代化,2018,5(48):233-234,245.
[6] 巴音達(dá)拉.淺談R語言在高等學(xué)校教學(xué)當(dāng)中的重要性[J].教育教學(xué)論壇,2018(7):252-253.
[7] 郭念國.大數(shù)據(jù)時代R語言模擬在概率統(tǒng)計課程教學(xué)中的應(yīng)用[J].河南教育(高教),2017(12):80-81.
【通聯(lián)編輯:唐一東】