卿楓 韓耀 唐明鳳 田甜



摘 要 由于近幾年線上教學網(wǎng)課的盛行,所以通過對如何根據(jù)教育平臺的線上用戶信息和學習信息,提供精準的課程推薦服務就成為線上教育的熱點問題。 本次我們使用了python中的pandas和numpy對數(shù)據(jù)進行了數(shù)據(jù)預處理,通過pyecharts對數(shù)據(jù)進行可視化分析,并且通過其不同的登錄次數(shù)和登錄時間制作了基于網(wǎng)課登錄次數(shù)的世界地圖和中國地圖。并且根據(jù)各個課程的學生登錄數(shù)據(jù)和各個課程的觀看完成度進行了流失性分析和線上課程推薦分析最終對線上課程提出了綜合策略與管理決策建議。
關鍵詞 python pyecharts 數(shù)據(jù)可視化
中圖分類號:G434;TP311.131 文獻標識碼:A 文章編號:1007-0745(2020)04-0022-06
1 問題描述
1.1 問題背景
近年來,隨著互聯(lián)網(wǎng)與通信技術的高速發(fā)展,學習資源的建設與共享呈現(xiàn)出新的發(fā)展趨勢,各種網(wǎng)課、慕課、直播課等層出不窮,各種在線教育平臺和學習 應用紛紛涌現(xiàn)。尤其是2020年春季學期,受新冠疫情影響,在教育部“停課不停學”的要求下,網(wǎng)絡平臺成為“互聯(lián)網(wǎng)+教育”成果的重要展示陣地。因此,如何根據(jù)教育平臺的線上用戶信息和學習信息,通過數(shù)據(jù)分析為教育平臺和用戶提供精準的課程推薦服務就成為線上教育的熱點問題。本賽題提供了某教育平臺近兩年的運營數(shù)據(jù),希望參賽者根據(jù)這些數(shù)據(jù),為平臺制定綜合的線上課程推薦策略,以便更好地服務線上用戶。[1]
1.2 任務
1.分析平臺用戶的活躍情況,計算用戶的流失率。
2.分析線上課程的受歡迎程度,構建課程智能推薦模型,為教育平臺的線上 推薦服務提供策略。
1.3 具體任務
任務 1.1 應包含每個表中缺失值和重復值的記錄數(shù)以及有效數(shù)據(jù)的記錄數(shù)。
任務 1.2 應包含 recently_logged 字段的“--”值的記錄數(shù)以及數(shù)據(jù)處 理的方法。
任務 2.1 應包含各省份與各城市的熱力地圖以及主要省份和主要城市的數(shù)據(jù)表格,并進行分析。
任務 2.2 應包含工作日與非工作日各時段的柱狀圖,并進行分析。
任務 2.3 應包含對流失率的定義,并給出流失率的結果。
任務 2.4 應根據(jù)計算結果給出合理的建議。
任務 3.1 應包含最受歡迎的前 10 門課程的參與人數(shù)、受歡迎程度及柱狀圖。
任務3.2應包含相應推薦算法的描述,并給出總學習進度最高的5個用戶的課程推薦數(shù)據(jù)。
任務 3.3 應包含數(shù)據(jù)分析的方法、算法描述以及主要結果。
2 數(shù)據(jù)預處理
2.1 數(shù)據(jù)來源
數(shù)據(jù)時間:2020年11月14日
2.2 數(shù)據(jù)處理
數(shù)據(jù)處理是應用數(shù)據(jù)分析前極其重要的一步,通常包括了對異常數(shù)據(jù)的處理、缺失值的處理和重復值的處理。只有處理了才能夠進行模型的建立與訓練,最終得到相關的結果。
2.2.1 異常數(shù)據(jù)處理
針對附件所給數(shù)據(jù)的study_information文件,對其進行處理。
2.2.2 缺失數(shù)據(jù)處理
針對附件所給數(shù)據(jù)的study_information文件,首先讀取原始數(shù)據(jù)(如下圖1),然后再對其price一欄的缺失值進行處理,我們利用python的pands庫的數(shù)據(jù)處理功能先將缺失價格的課程統(tǒng)計出來course_id中的課程51與課程96的價格數(shù)據(jù)缺失,且課程51缺失4011個,課程96缺失227個。針對study_information文件總數(shù)據(jù)數(shù)來說,這缺失值的占比不足2%,由此我們將其價格統(tǒng)一補0處理。
通過python的布爾索引找出有缺失值的某列數(shù)據(jù),如下圖2:
由此可見price列存在缺失值,由此利用fillina將缺失值的課程進行統(tǒng)計分析得到缺失值的課程id為課程51與課程96,在統(tǒng)計其缺失個數(shù)得到課程51缺失4011個,課程96缺失227個。得到圖3:
再對缺失值進行補0操作得到如下圖數(shù)據(jù):
至此將study_information文件中的所有缺失值處理完成。
針對附件給出的users文件中的用戶id欄存在缺失數(shù)據(jù)通過python的pandas庫將缺失用戶id的那一欄數(shù)據(jù)全部提取出來,提取圖4:
由于此數(shù)據(jù)量占總數(shù)據(jù)量的比例小因此采取了剔除處理,將以上的67個缺失用戶id全部移除。得到新的數(shù)據(jù)如圖5:
由此文件users文件中的缺失用戶id全部解決。
通過已經(jīng)進行了缺失值和重復值處理的文件users,再將login文件中的最近登陸時間的那一列數(shù)據(jù)進行時間戳類型轉化,找到最近的時間,再通過用戶id匹配users文件中的相同的用戶id上將最近登陸的時間補為login文件找到的最近的時間。但是經(jīng)過此種方式進行匹配后依然未完全補全。由此確定某些用戶再注冊后并沒有使用,故將其最近的登陸時間修改為注冊的時間。最后補全數(shù)據(jù)如圖6所示:
2.2.3 重復數(shù)據(jù)處理
通過對已經(jīng)進行過數(shù)據(jù)缺失處理的users文件進行數(shù)據(jù)分析,發(fā)現(xiàn)文件users的某些行存在重復的數(shù)據(jù)如圖7所示:
在經(jīng)過python的將user的重復值刪除保留其中的一行有用的數(shù)據(jù),處理后如圖8所示:
由此解決了文件user中的數(shù)據(jù)重復的問題。
3 數(shù)據(jù)分析與可視化
3.1 數(shù)據(jù)分析可視化簡介
數(shù)據(jù)可視化主要旨在借助于圖形化手段,清晰有效地傳達與溝通信息。但是,這并不就意味著數(shù)據(jù)可視化就一定因為要實現(xiàn)其功能用途而令人感到枯燥乏味,或者是為了看上去絢麗多彩而顯得極端復雜。[2]為了有效地傳達思想概念,美學形式與功能需要齊頭并進,通過直觀地傳達關鍵的方面與特征,從而實現(xiàn)對于相當稀疏而又復雜的數(shù)據(jù)集的深入洞察。然而,設計人員往往并不能很好地把握設計與功能之間的平衡,從而創(chuàng)造出華而不實的數(shù)據(jù)可視化形式,無法達到其主要目的,也就是傳達與溝通信息。[3]
3.2 平臺用戶活躍度分析
3.2.1 熱力地圖
統(tǒng)計login文件中不同的登陸地點的登陸次數(shù)然后通過python的pyecharts庫進行熱力地圖的繪制。通過對數(shù)據(jù)的分析及處理,得到不同登陸地點的登陸次數(shù)。
3.2.2 登陸次數(shù)柱狀圖
通過對users文件中的最近訪問時間那一列數(shù)據(jù)進行時間戳轉化然后通過匹配星期的方式將每個時間進行分類,將為工作日的數(shù)據(jù)標記為0,非工作日的標記為1。然后再將統(tǒng)計的數(shù)據(jù)進行分類處理,在劃分時間段統(tǒng)計登陸次數(shù),最后利用python的matplotlib庫繪制成柱狀圖。
3.2.3 流失率分析
先統(tǒng)計users文件中的最近登陸時間與2020年6月18日的時間差,當時間差大90天的時間時將此項標記為1,將時間差小于等于90天的標記為0,最后將標記欄求和就得到流失的人數(shù)為22474,在于總人數(shù)相比得到最后的流失率為51.18%。
3.3 線上課程推薦分析
3.3.1 受歡迎程度分析
根據(jù)用戶參與學習的記錄,統(tǒng)計每門課程的參與人數(shù),計算每門課 程的受歡迎程度,列出最受歡迎的前 10 門課程,并繪制相應的柱狀圖。通過數(shù)據(jù)處理過后的study_information文件用python提取出每一個課程的選人數(shù)量然后在對他的選課人數(shù)進行排序。
3.3.2 相似度分析
根據(jù)用戶選擇課程情況,構建用戶和課程的關系表(二元矩陣),使用基于物品的協(xié)同過濾算法計算課程之間的相似度。[4]通過數(shù)據(jù)預處理study_information的文件,利用python的pandas庫得到:得到協(xié)同過濾后的數(shù)據(jù)如圖9所示:
4 線上課程的綜合策略與管理決策建議
通過數(shù)據(jù)分析得到的活躍程度的柱狀圖,然后柱狀圖表明非工作日時早上8:00點到晚上20:00的活躍度最高,由此可以建議在工作日時將課程開放時間調(diào)整在早上8:00到晚上20:00。然而非工作日活躍度有延長的趨勢,所以在非工作日時把課程開放時間可以適當延長。
通過對課程之間的相似度分析與付費和免費課程統(tǒng)計得到圖10、圖11:
由此得到付費課程的學習人數(shù)較多,而免費課程的學習人數(shù)較少。由此,為促進學習可以適當將一部分課程進行收費,同時來提高課程的學習率。
5 總結
通過對附件所給的數(shù)據(jù)進行預處理,對缺失數(shù)據(jù)和重復數(shù)據(jù)的處理,再到對問題的分析以及對各個任務的處理,其中運用了python的pandas庫、datetime庫、matplotlib庫、numpy庫、pyecharts庫,最后得到的線上課程的綜合策略與管理決策建議。
參考文獻:
[1] 馬輝.基于python 的數(shù)據(jù)分析可視化研究與實現(xiàn)[J].理論前沿技術,2020,09(11):289.
[2] 李天輝.基于python的數(shù)據(jù)分析可視化研究與實現(xiàn)[J].電子測試,2020(20):78-79.
[3] 孫東偉,劉濱.數(shù)據(jù)可視化研究與技術實現(xiàn)[J].產(chǎn)業(yè)與科技論壇,2020,19(19):40-42.
[4] 楊露,葛文謙.基于Python的制造業(yè)數(shù)據(jù)分析可視化平臺設計[J].信息化研究,2018,44(05):56-61.
(西華大學 電氣與電子信息學院,四川 成都 610039)