王渚,楊耀,符致翔
摘要:隨著教育信息化2.0的發(fā)布,各教育部門及中學都開始提高自身信息化的水平。尤其是在成績分析上。教育部門經常會匯總高考數(shù)據進行分析,學校同時也會根據分析結果決定教學策略。本文采用Python的Numpy、Pandas、Matplotlib、Wordcloud等第三方數(shù)據處理可視化庫,以2016年—2020年廣東省高考數(shù)據為案例進行數(shù)據可視化分析應用講解,為學校和教育部門做成績數(shù)據分析提供參考。
關鍵詞:高考成績;Python;數(shù)據分析;可視化
中圖分類號:TP391? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)33-0093-04
1 引言
在我國教育信息化2.0的深入推動下,信息技術已融入各個教育領域之中。尤其是智慧校園、成績分析等。在每年高考之后,教育部門及各中學都會對高考成績進行分析形成大量的高考數(shù)據,如考生信息、考試成績、報考信息、近5年錄取情況、近5年最低分等。不僅僅是加強教育考試信息化管理工作,同時學??梢愿鶕治鰯?shù)據分享給學生以此幫助他們更好的選擇高校。
而Python在海量相關數(shù)據信息快速準確獲取和數(shù)據分析過程中,具有較強的數(shù)據分析優(yōu)勢[1]。一是Python語言的簡易、便捷特點;二是自身有著強大的爬取網絡數(shù)據的模板;三是其自身有著大量用于數(shù)據可視化分析的第三方開源庫。而這些優(yōu)點可以快速準確獲取海量數(shù)據信息資源并且能夠完成數(shù)據相關信息的提取以及進行強有力的數(shù)據可視化分析。本文應用Python的數(shù)據處理技術及可視化技術,以廣東省2016—2020年高考成績?yōu)榱税咐M行分析以及可視化,分析廣東省高考分數(shù)線的趨勢。為之后教育部門及各中學做成績分析提供參考指導作用。
2 數(shù)據可視化分析原理及流程
2.1 數(shù)據可視化原理
數(shù)據可視化,是指將大量相關數(shù)據形成,通過圖像的形式表達,如:詞云圖、熱力圖、雷達圖等等。這樣能夠清晰有效地傳達與溝通信息。其基本思想,是將數(shù)據庫中每一個數(shù)據項作為單個圖元元素表示,大量的數(shù)據集構成數(shù)據圖像,同時將數(shù)據的各個屬性值以多維數(shù)據的形式表示,可以從不同的維度觀察數(shù)據,從而對數(shù)據進行更深入的觀察和分析[2]。其基本手段主要是借助圖形化的手段將數(shù)據表達處理,但在這一基礎上,考慮到一些相當稀疏而又復雜的數(shù)據集,因此又要加上了美學設計思維。
2.2 數(shù)據可視化流程
一切能夠用圖形或圖像表達的數(shù)據都能進行數(shù)據可視化,主要是看其自身需要用哪種圖表達數(shù)據。其一般流程如圖1:
2.2.1 數(shù)據采集
數(shù)據采集是數(shù)據可視化的第一步,正所謂“巧婦難為無米之炊”,要能實現(xiàn)數(shù)據可視化首先要有數(shù)據。數(shù)據采集的方式有很多,具體如下圖2。對于一些主觀性的數(shù)據或者地區(qū)集中性的數(shù)據一般采取問卷調查,線下訪談等形式;而對于龐大的開放性數(shù)據或者一些平臺數(shù)據一般采用爬蟲或者軟件API調取等方式。
2.2.2 數(shù)據處理和變換
數(shù)據處理和變換,是進行數(shù)據可視化的前提條件,主要分為數(shù)據預處理和數(shù)據挖掘兩個過程[3]。
數(shù)據預處理是指在數(shù)據進行主要處理之前對數(shù)據進行的處理,因為我們前期采集到的數(shù)據往往包含了一些重復的、亂填的等。這類數(shù)據的質量較低,為了保證數(shù)據的效度和信度,我們通常會選擇對數(shù)據進行預處理。預處理的方法一般有四種:數(shù)據清理、數(shù)據集成、數(shù)據變換、數(shù)據規(guī)約。
數(shù)據挖掘是因為數(shù)據的特征、模式往往隱藏在海量的數(shù)據中,需要進行更深一步的數(shù)據挖掘才能獲取到。比如數(shù)據的預測性分析、數(shù)據的方差、回歸分析等。
2.2.3 可視化映射
可視化映射是指把經過處理后的數(shù)據信息通過圖形、圖像表達出來的過程,目前市面上有很多做可視化分析的平臺如Smartbi。通常人們也會用Excel、Python、Matlab等技術實現(xiàn)來實現(xiàn)數(shù)據可視化。
3 Python數(shù)據可視化分析
Python語言是當下最熱門的語言之一。其自身語法易懂的特點深受人們的喜歡。主要用于Web開發(fā)、爬蟲、人工智能和科學計算等領域。
Python語言其自身攜帶多種用于數(shù)據分析及可視化映射的第三方開源庫,如:Numpy、pandas、Matplotlib、Scikit-learn等。
Numpy:Python用于實現(xiàn)的科學計算庫。其提供了許多高級的數(shù)值編程工具,如:矩陣數(shù)據類型、矢量處理,以及精密的運算庫。專為進行嚴格的數(shù)據處理而產生[4]。
Pandas:是基于NumPy的一種工具,該工具是為解決數(shù)據分析任務而創(chuàng)建的,其納入了大量庫和一些標準的數(shù)據模型,提供高效操作大型數(shù)據集所需的工具。pandas提供了大量能使我們快速便捷地處理數(shù)據的函數(shù)和方法。如DataFrame、isnull()、notnull()、dropna()、fillna))等函數(shù)[5]。
Matplotlib:Python語言中的可視化程序庫,其自身提供了完整的2D圖形以及部分3D圖像轉換支持,是目前Python語言中使用最廣泛的繪圖庫。
Scikit-learn:是針對Python 編程語言的免費軟件機器學習庫。它具有各種分類,回歸和聚類算法,包括支持向量機、隨機森林、梯度提升、k均值和DBSCAN,并且一般與Python數(shù)值科學庫NumPy和SciPy聯(lián)合使用[6]。
4 高考數(shù)據分析可視化應用
筆者這里采取用Python技術對高考數(shù)據進行分析應用。其目的是在之后各中學在為應屆生根據考試成績選擇院校或為應屆生做未來目標時提供一些參考技術指導。因此,在數(shù)據方面上采取了廣東省近5年的高考成績?yōu)榘咐M行分析,又因為考慮到2021年廣東省進行了高考改革,其數(shù)據量過少,再加上本身是做參考指導作用,所以最終數(shù)據確定為廣東省2016年至2020年的高考成績。
4.1 數(shù)據采集
廣東省2016年至2020年的高考數(shù)據過于龐大,外加上網絡上已經有大量對應的數(shù)據,因此本文的數(shù)據采集主要來源于互聯(lián)網上各大高考數(shù)據線上平臺,通過運用Python網絡爬蟲的技術獲取高考數(shù)據,主要步驟是找到存儲需要信息的網址,并根據網頁信息分析網頁結構,最后編寫合適的代碼進行數(shù)據采集。本文以采集高考網高考數(shù)據為例,具體代碼如下:
import pandas? ? ?#導入pandas庫
import requests? ? #導入reguests庫
#采集網頁信息
data=requests.get(r'http://www.gaokao.com/guangdong/fsx/')
#讀取網頁中以表格形式存在的信息
table_data = pd.read_html(html_data.content)
4.2 數(shù)據預處理
本文采用Python中的Pandas庫對采集的高考數(shù)據進行預處理,Pandas庫中專門提供了用于數(shù)據預處理的很多函數(shù)與方法,用于替換異常數(shù)據、合并數(shù)據、重塑數(shù)據等,是數(shù)據預處理的重要工具。本文將采集到的數(shù)據從數(shù)據表中導出,運用Pandas庫根據類型屬性轉化為DataFrame對象,并利用Pandas庫中的isnull()、notnull()、dropna()、fillna()等函數(shù)對高考數(shù)據進行空值的檢查以及填充或刪除處理。最后運用groupby(),agg()函數(shù)對處理好的數(shù)據進行分組與聚合,將高考數(shù)據分為廣東省高考投檔分數(shù)線以及各高校最低錄取分數(shù)線兩類,并以此數(shù)據形成易于進行可視化的數(shù)據結構。
4.3 可視化分析
4.3.1 2016~2020年廣東省高考文理科分數(shù)線分析
在分數(shù)線的分析中,以X軸代表年份,Y軸作為分數(shù),分別用兩條不一樣顏色的虛線標記優(yōu)先投檔線以及本科批分數(shù)線,繪制廣東近五年的高考分數(shù)線的變化的折線圖,繪制圖3和圖4的具體代碼如下:
#導入matplotlib.pyplot庫并命名為plt
import matplotlib.pyplot as plt
x = [2016,2017,2018,2019,2020]
#歷年優(yōu)先投檔線
data1 = [508, 485, 500, 495, 524]
#本科批投檔線
data2 = [402, 360, 376, 390, 410]
#年份坐標
plt.xticks([2016,2017,2018,2019,2020])? ?plt.ylim([300,600])
#插入圖例高考分數(shù)線和本科批并用不同的顏色表示
plt.plot(x,data1,label="高分優(yōu)投線", marker=">",color='r',linewidth=3,linestyle='--')
plt.plot(x, data2, label="本科批", marker="s", color='b', linewidth=3, linestyle='--')
for i, j in zip(x, data1):
plt.text(i, j, j, va='bottom', fontsize=20, ha='center')
for i, j in zip(x, data2):
plt.text(i, j, j, va='bottom', fontsize=20, ha='center')
plt.legend(loc=9)
plt.rcParams['font.sans-serif']=['Simhei']
plt.show()
從圖3和圖4的數(shù)據顯示,2016年到2020年間,理科分數(shù)線2020年優(yōu)先投檔線和本科批分數(shù)線分數(shù)最高,文科則是2018年一本分數(shù)線最高,2019年本科批分數(shù)線最高。近五年的分數(shù)線呈現(xiàn)出分數(shù)線震蕩遞增的趨勢。從折線圖表示,我們可以發(fā)現(xiàn)理科的本科批分數(shù)線從2017年開始就一直向上增,這對選理科的同學來說需要下更大的努力,按這種趨勢預判之后的本科批分數(shù)會更高,而對于文科生來說雖存在一定的波動,但波動范圍不大。
折線圖是用直線段將各數(shù)據點連接起來而組成的圖形,以折線的方式可視化顯示數(shù)據的變化趨勢,適用于顯示在相等時間間隔下數(shù)據變化的趨勢[7]。各中學可以通過折線圖看往年成績趨勢,去完善學校自身的教學計劃。學生同時也可以根據往年分數(shù)線來預測自己的學習狀況,進一步調整自己的復習計劃。
4.3.2 廣東省各高校最低錄取分數(shù)線分析(分數(shù)線與高校最低分數(shù)線的比較)
柱形圖是一種以長方形的長度為變量的統(tǒng)計圖表,同時柱形圖還能表示不同學校五年間的錄取分數(shù)平均分,以柱形的方式展現(xiàn)文理科在2016-2020年部分高校的錄取平均分,據圖5和圖6的數(shù)據顯示,2016-2020這五年間,重點大學之間文理科分數(shù)平均分差距較小,且大部分超過歷年分數(shù)線平均分,以中山大學為例,文理科平均分都比歷年分數(shù)線平均分高出將近六十分,普通大學文理科分數(shù)平均分差距較大,而且部分院校在文理科錄取分數(shù)線平均分上也有差距。近五年的錄取分數(shù)線平均分較為平穩(wěn),文科分數(shù)線平均分在530分上下波動,理科分數(shù)線平均分在490分上下波動,
柱形圖是大家做成績分析經常用的手段,其優(yōu)點是能直觀對比成績,并且有平均成績作為基線,學??梢酝ㄟ^展示預測平均分以此來激勵學生盡可能在每一次??嫉某煽兂^平均分。而且各考生可以根據近五年文理科分數(shù)線平均分預測高考錄取的分數(shù)線,確定心儀的院校并調整學習計劃。
4.3.3 廣東省各高校5年分數(shù)線差值詞云分析
詞云是對文本中呈現(xiàn)頻率較高的關鍵詞給予視覺上的沖擊,形成關鍵詞渲染,從而過濾掉大量頻率較低的文本信息,使人能更直觀地看到頻率高且重要的文本信息,將高校2016-2020年最低分數(shù)線的差值轉化為高校名字在文本出現(xiàn)的頻率,然后運用Wordcloud庫生成詞云圖。由圖7和圖8可知,在五年間,深圳大學理科最低錄取分數(shù)線的變化差值最大,北京理工大學珠海學院的文科最低錄取分數(shù)線的變化差值最大。同時,可以看出,在文科和理科的最低錄取分數(shù)線上,深圳大學和北京理工大學珠海學院的變化都是比較大的,這就需要廣東省考生在填報志愿的時候對這兩所學院進行進一步的考量,以免分數(shù)線變化較大導致填報志愿失敗。
5 總結展望
本文針對廣東省2016年—2020年高考數(shù)據可視化的統(tǒng)計、分析為案例進行參考分析。通過基于Python的第三方庫,對廣東省高考數(shù)據進行數(shù)據采集、數(shù)據預處理,以及使用Matplotlib、Wordcloud第三方數(shù)據可視化庫對廣東省高考數(shù)據進行了可視化處理,使考生能更直觀地看到近幾年高考的錄取數(shù)據情況,并能夠根據此數(shù)據了解廣東省高考分數(shù)線的變化趨勢以及各廣東省高校的最低錄取分數(shù)線和變化較大的院校,從而根據高考分數(shù)選擇心儀的院校。雖然本次案例分析的數(shù)據沒有用的最新的2021年高考成績,主要是因為2021年是廣東省新高考改革第一年,其數(shù)據量過少。再者是因為代碼是萬變不離其宗的,因此并不會有過多的誤差影響。
用Python語言進行成績可視化分析,從語言特點上來說,Python語言技術是相對比較容易學習的技術,外加國家最近在推動教育信息化2.0技術,因此學校和教育部門可以采納其技術,不僅能提高其自身信息化水平,同時操作也很簡易。而且對學校來說,在之后的考試成績分析用Python進行分析,能夠根據自己的需求生成相對應的可視化圖表,方便教師及學生參考,同時為之后學校決策提供科學依據。
參考文獻:
[1] 陶鵬,楊俊麗.基于Python的可視化數(shù)據分析平臺設計與實現(xiàn)[J].信息記錄材料,2021,22(8):38-39.
[2] 賀全兵.可視化技術的發(fā)展及應用[J].中國西部科技,2008,7(4):4-7.
[3] 陳海洋,陳聰.大數(shù)據技術應用考研數(shù)據可視化開發(fā)與設計[J].衛(wèi)星電視與寬帶多媒體,2021(11):69-70.
[4] 鞠文飛. Python結合大數(shù)據技術分析教務數(shù)據[J]. 環(huán)球市場,2019(28):374-375.
[5] 王申. 大數(shù)據時代下的圖書館建設與應用研究--個性化實時推薦系統(tǒng)的建立[C]. //2017年全國圖書館新型服務能力建設學術研討會論文集. 2017:49-61.
[6] 秦臻.基于上下文感知回歸森林模型的X射線頭影測量圖像解剖標志點自動定位和分析系統(tǒng)研究[D].南京:南京郵電大學,2019.
[7] 周奕洋,錢慶.腫瘤流行病數(shù)據可視化系統(tǒng)設計[C]//中華醫(yī)學會第二十一次全國醫(yī)學信息學術會議論文匯編.鄭州,2015:579-585.
【通聯(lián)編輯:王力】