卿楓 韓耀 唐明鳳 田甜



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