




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