版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章緒論1.1課題背景及意義當(dāng)下社會倡導(dǎo)以人為本,而隨著科學(xué)技術(shù)的普及,大眾對于生活中方方面面的需求也越來越多元化、個(gè)性化。各種技術(shù)綜合發(fā)展使得人們對于終端上的應(yīng)用期盼值越來越高,希望其能提供更加具有針對性的服務(wù),相關(guān)計(jì)算機(jī)應(yīng)用從業(yè)人員對于其所能滿足需求的要求也越來越高。因此,多元化、個(gè)性化、人性化成為發(fā)展主旋律,這促使相關(guān)技術(shù)人員逐漸認(rèn)識到對用戶的對于各種行為分析的意義。受到文獻(xiàn)[7]的啟發(fā),了解到人性化設(shè)計(jì)的概念。而結(jié)合計(jì)算機(jī)應(yīng)用,對各種平臺訪問量的一系列基本數(shù)據(jù)進(jìn)行采集后,分析用戶的行為規(guī)律。一方面,根據(jù)分析得到的數(shù)據(jù)進(jìn)行結(jié)果分析,了解用戶切實(shí)的需求,從而才能為用戶提供具有差異性的服務(wù);另一方面,為營銷方提供參考。由于生活中人們的行為涉及方方面面,所以客觀來說,對于用戶行為分析應(yīng)有所側(cè)重點(diǎn)。結(jié)合多方面的考量,本課題選取用戶聽歌這一行為進(jìn)行分析。音樂,人類重大藝術(shù)的代表,作為人類情感的載體,對于人類而言,音樂一直是精神支柱般的存在。日常生活中,聽歌無疑成為了一項(xiàng)重要行為。而處于信息化時(shí)代,音樂市場的應(yīng)用也越發(fā)廣闊。于是乎,探究人們對于聽歌行為的切實(shí)需求,也有著重要意義。對于人們聽歌行為分析的數(shù)據(jù)處理和結(jié)果可以為發(fā)展數(shù)字時(shí)代音樂市場提供新的充足動(dòng)力;使音樂應(yīng)用能夠盡可能地滿足人們需求,提高人們對于體驗(yàn)感的“滿意度”,以至于“流連忘返”,增加效益,從而達(dá)到用戶與開發(fā)人員“雙贏”的效果??傮w而言,用戶聽歌行為分析是極具意義的一項(xiàng)工作。而本課題基于機(jī)器學(xué)習(xí),結(jié)合最恰當(dāng)?shù)乃惴?,完成用戶聽歌行為分析?.2國內(nèi)外研究概述1.2.1行為分析研究進(jìn)展用戶行為分析是一種針對用戶的研究方法,研究人的各類行為,許多人對它的了解還不夠到位,在理論方面也還存在些許漏洞,但是相關(guān)學(xué)術(shù)研究部門已經(jīng)將其作為重點(diǎn)研究的一個(gè)方向。在文獻(xiàn)[1]中了解到,美國某大學(xué)一新戰(zhàn)略研究的案例以及香港某課題通過觀察一些研究用戶的某些日常生活行為,了解人們在生活中的偏好取向和使用規(guī)律等信息,知曉用戶的基本需求,并將此作為公司開發(fā)產(chǎn)品和進(jìn)行服務(wù)的風(fēng)向標(biāo)。心理學(xué)家亨特提出行為分析這個(gè)概念,他對用戶行為進(jìn)行了闡述。與此同時(shí),在國內(nèi),有老師提出行為思維結(jié)合的新的創(chuàng)新模式。誠然,許多領(lǐng)域都需要對用戶行為進(jìn)行研究,但是目前很多產(chǎn)品還是存在著個(gè)性化程度不夠的缺點(diǎn),結(jié)果還是不盡如人意。1.2.2機(jī)器學(xué)習(xí)研究進(jìn)展為了提高生活效率、生活自動(dòng)化,關(guān)于計(jì)算機(jī)的機(jī)器學(xué)習(xí)概念被提出來,它是一門涉及多領(lǐng)域交叉的學(xué)科,結(jié)合了統(tǒng)計(jì)學(xué)、計(jì)算機(jī)科學(xué)、概率論等多門學(xué)科內(nèi)容,它能學(xué)習(xí)人類行為根據(jù)其研究結(jié)果將其轉(zhuǎn)化新的知識和技能,對本身已有的知識進(jìn)行重組再構(gòu)造,并且不斷提高學(xué)習(xí)能力。五十年代,機(jī)器學(xué)習(xí)初期從研究人工神經(jīng)網(wǎng)絡(luò)開始;六十年代至七十年代,開始采用某些計(jì)算機(jī)邏輯,對人類的概念學(xué)習(xí)過程進(jìn)行再學(xué)習(xí);七十年代至八十年代,開始努力探索各種學(xué)習(xí)方法及策略,并將應(yīng)用和學(xué)習(xí)系統(tǒng)結(jié)合;得益于神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)的再度興起以及實(shí)驗(yàn)和應(yīng)用研究的空前重視,九十年代,機(jī)器學(xué)習(xí)發(fā)展進(jìn)入另一高度。目前,研究機(jī)器學(xué)習(xí)的內(nèi)容主要分為三個(gè)部分,第一是面向任務(wù)的研究,主要是針對相關(guān)學(xué)習(xí)系統(tǒng)的分析和探究;第二是確定最恰當(dāng)?shù)恼J(rèn)知模型,利用計(jì)算機(jī)模仿人類學(xué)習(xí)行為;第三是進(jìn)行合理的理論分析,積極探尋各種算法。近年來,在應(yīng)用方面的發(fā)展速度令人嘆為觀止,比較典型的有語音識別、圖像識別等,經(jīng)典案例如2016年AlphaGo戰(zhàn)勝李世石、自動(dòng)車駕駛等。1.2.3流行音樂研究進(jìn)展由于本課題選取從網(wǎng)易云音樂平臺所爬取的數(shù)據(jù)進(jìn)行分析,所以針對網(wǎng)易云音樂排行榜得到的一些數(shù)據(jù)進(jìn)行整理,參考文獻(xiàn)[2],了解了當(dāng)下流行音樂的發(fā)展現(xiàn)狀以及用戶偏好現(xiàn)狀。通過曲風(fēng)、歌曲排名、歌手等信息的綜合分析,得到用戶的關(guān)注點(diǎn)和流行趨勢。發(fā)現(xiàn)以下三大趨勢,第一是歌曲曲風(fēng)多樣化,分類顯示包含了抒情、流行、rap、古典等類別,而同時(shí)人們對于不同風(fēng)格都能接受,而且大眾喜愛的風(fēng)格也不統(tǒng)一,呈現(xiàn)多元化,蘿卜青菜,各有所愛;第二是主流歌手和小眾歌手共同占有市場,平分秋色,呈現(xiàn)出歌手類別多樣化趨勢;第三從評論的分析看來,評論類型分為詞、曲、歌手本身、抒情等,發(fā)現(xiàn)絕大多數(shù)用戶選擇抒情,說明人們更注重情感上的表達(dá),這是馬斯洛需要層次理論在高層次的體現(xiàn)。1.3本文作者主要工作本文的目的是通過調(diào)用網(wǎng)易云官方API,爬取用戶聽歌的相關(guān)數(shù)據(jù),根據(jù)主觀分類的各類歌單mp3,形成數(shù)據(jù)集。再對音頻文件進(jìn)行處理,構(gòu)建合理的音樂分類器,基于機(jī)器學(xué)習(xí)的方式設(shè)計(jì)聽歌行為分析系統(tǒng),以此對所得到的用戶數(shù)據(jù)實(shí)現(xiàn)可視化。本課題的主要工作為以下三個(gè)方面:1.了解本課題研究的意義和相關(guān)背景,分析本課題展開的可行性,對課題所應(yīng)用到的理論知識進(jìn)行梳理;2.完成音樂分類器,首先是訓(xùn)練分類器,步驟是調(diào)用網(wǎng)易云API爬取mp3文件(根據(jù)主觀分類篩選的相關(guān)歌單),收集數(shù)據(jù)集;將音頻文件處理成適當(dāng)?shù)母袷?,提取特征向量,再用SVM算法進(jìn)行曲風(fēng)分類;3.實(shí)現(xiàn)系統(tǒng)的整體運(yùn)作,對用戶聽歌過程中的五種行為進(jìn)行數(shù)據(jù)分析,用Python可視化功能實(shí)現(xiàn)結(jié)果展示,設(shè)計(jì)完善系統(tǒng)功能。1.4本文組織結(jié)構(gòu)論文共分為四章,其余章節(jié)內(nèi)容如下:第二章,系統(tǒng)開發(fā)技術(shù)綜述部分。這部分對于本課題開展中的一些理論知識,如機(jī)器學(xué)習(xí)相關(guān)算法以及用戶行為分析模型進(jìn)行簡單介紹總結(jié)。第三章,基于機(jī)器學(xué)習(xí)的用戶聽歌系統(tǒng)。這是本課題的具體實(shí)現(xiàn)功能,構(gòu)建音樂分類器模型,實(shí)現(xiàn)整個(gè)系統(tǒng)的整體運(yùn)作;第四章,系統(tǒng)成果演示,UI界面展示;總結(jié)章節(jié)部分,對于本課題的工作展開后的總結(jié),以及接下來可以進(jìn)一步改進(jìn)的地方,對存在的不足進(jìn)行反思。第2章系統(tǒng)開發(fā)技術(shù)綜述2.1機(jī)器學(xué)習(xí)簡介機(jī)器學(xué)習(xí)是跨學(xué)科交融的成果,包括了概率論、統(tǒng)計(jì)學(xué)、計(jì)算機(jī)科學(xué)等等一系列學(xué)科相關(guān)內(nèi)容。隨著計(jì)算機(jī)硬件的提升,計(jì)算機(jī)運(yùn)算速度提高,機(jī)器學(xué)習(xí)開始進(jìn)入我們生活中。機(jī)器學(xué)習(xí)通過指引的方式,讓計(jì)算機(jī)模仿人類的\t"/item/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/_blank"學(xué)習(xí)行為,然后更新知識體系,使得對自身原有知識進(jìn)行重構(gòu),然后提高性能。從文獻(xiàn)[4]中了解到,現(xiàn)在,機(jī)器學(xué)習(xí)的核心可以分為半監(jiān)督學(xué)習(xí)、集成學(xué)習(xí)和遷移學(xué)習(xí)等。第一,半監(jiān)督學(xué)習(xí),由于現(xiàn)實(shí)生活中人工標(biāo)注存在很大的局限性,所以對于未標(biāo)記的數(shù)據(jù)的處理結(jié)果往往是只有一小部分能被標(biāo)記,于是會產(chǎn)生極少量的標(biāo)記數(shù)據(jù)和大量的標(biāo)記數(shù)據(jù),所以人們思考如何利用這些數(shù)據(jù)一起來訓(xùn)練模型,希望這樣的創(chuàng)新處理方式能促進(jìn)機(jī)器學(xué)習(xí)性能提升,于是半監(jiān)督學(xué)習(xí)應(yīng)運(yùn)而生;第二,集成學(xué)習(xí),它“博采眾長”,構(gòu)建多個(gè)機(jī)器學(xué)習(xí)器,通過一定的策略,生成一個(gè)準(zhǔn)確率更高的強(qiáng)學(xué)習(xí)器,來提高完成學(xué)習(xí)任務(wù)的效率;第三,遷移學(xué)習(xí),它是利用待解決任務(wù)和已經(jīng)分析過的任務(wù)存在的相似性,將后者向前者遷移,從而達(dá)到更好更高效地處理目的。本課題最終選擇本質(zhì)為監(jiān)督學(xué)習(xí)的支持向量機(jī)SVM算法來實(shí)現(xiàn)系統(tǒng)核心部分。2.2用戶行為分析在大數(shù)據(jù)的背景下,對用戶行為采集后,對于獲得的數(shù)據(jù)進(jìn)行分析研究,這樣的方法被稱為用戶行為分析,它可以了解用戶需求,從而在一些在經(jīng)營銷售、推廣方式等過程中發(fā)現(xiàn)優(yōu)化方向,從而精準(zhǔn)有效地改善,提高業(yè)務(wù)質(zhì)量,在文獻(xiàn)[6]和文獻(xiàn)[8]有一定了解。目前,用戶行為分析主要存在以下幾種方法:行為事件分析行為事件分析[8]法用來研究某一行為事件的發(fā)生,是否對企業(yè)或者組織價(jià)值造成影響并分析其影響程度。它具有極強(qiáng)的篩選、分聚能力,使用簡單,因此應(yīng)用范圍廣,一般分為三個(gè)環(huán)節(jié)。用戶行為路徑分析用戶路徑分析[8]指的就是對用戶在APP或網(wǎng)站中的使用路徑進(jìn)行分析,從中了解用戶使用順序、操作習(xí)慣和操作規(guī)律等,實(shí)現(xiàn)用戶流的可視化,從而較全面地掌握用戶的整體性行為,同時(shí),對于產(chǎn)品的優(yōu)化改進(jìn)有極大幫助,它能夠?yàn)槠髽I(yè)就數(shù)據(jù)以及布局調(diào)整等方面提供有效指導(dǎo)依據(jù)。頁面點(diǎn)擊分析點(diǎn)擊分析的特點(diǎn)就是直觀,效果一目了然,效率高,并且靈活,可操作性強(qiáng)。它采用的是可視化設(shè)計(jì)思想,將用戶所喜好熱衷的區(qū)域直觀地呈現(xiàn),幫助運(yùn)營人員和開發(fā)人員對網(wǎng)頁布局的合理規(guī)劃設(shè)計(jì)進(jìn)行評估。企業(yè)力求精細(xì)化管理,滿足用戶對于可視化的更高需求(圖2-1)。圖2-1頁面點(diǎn)擊熱力圖轉(zhuǎn)化分析轉(zhuǎn)化分析[8]是將數(shù)據(jù)分析的過程進(jìn)行流程化,它能反映從開始到結(jié)束每個(gè)環(huán)節(jié)之間的轉(zhuǎn)化率情況,通過數(shù)據(jù)對比,發(fā)現(xiàn)問題所在,更有針對性地處理問題,改善用戶體驗(yàn)(圖2-2)。2-2漏斗模型示例用戶畫像分析將用戶的一些信息,比如用戶屬性、用戶偏好取向、用戶行為等等進(jìn)行抽象化處理,將用戶模型進(jìn)行標(biāo)簽化,用來描述用戶的特征要保證精確精煉,便于計(jì)算機(jī)理解(圖2-3)。圖2-3用戶標(biāo)簽庫用戶健康度分析用戶健康度是從用戶角度對使用情況總體數(shù)據(jù)的綜合考慮全面評估的指標(biāo),能夠展示產(chǎn)品的基本運(yùn)營情況,對產(chǎn)品定位和發(fā)展預(yù)測有重要作用。用戶健康度指標(biāo)包括:使用時(shí)長、使用頻率、安裝量、激活量等等。統(tǒng)籌兼顧以上幾種模型的優(yōu)缺點(diǎn),本課題選取了前三種模型的綜合來完成用戶聽歌系統(tǒng)設(shè)計(jì)。2.3SVM算法概述SVM[5]即支持向量機(jī),是一種強(qiáng)大的算法。它源于統(tǒng)計(jì)學(xué)習(xí)理論,屬于分類精度較高的強(qiáng)學(xué)習(xí)器之一。SVM具體在算法文獻(xiàn)[3]和文獻(xiàn)[9]有闡述。它對樣本依賴性小,不會過擬合,文本分類、垃圾文本識別、圖像分類,用于圖像分割系統(tǒng)甚至蛋白質(zhì)分類等。SVM應(yīng)用廣泛,并且在處理這些實(shí)際問題的過程中表現(xiàn)優(yōu)秀,至今仍為褪色。之所以選擇SVM算法,是因?yàn)樗雌涞蓝?,與傳統(tǒng)解決方法不同,避開直面高維空間,利用核函數(shù),將復(fù)雜的高維問題轉(zhuǎn)化為線性可分的方式求解,對樣本適應(yīng)能力較好。svm.SVC函數(shù)(圖2-4):圖2-4SVM函數(shù)本課題Python中的Scikit-learn模塊,下面介紹一下sklearn庫的SVM的主要參數(shù)(表2-1)。表2-1SVM參數(shù)參數(shù)含義CSVC的懲罰參數(shù),默認(rèn)值為1.0,C越大,對分類錯(cuò)誤懲罰大,準(zhǔn)確率高,泛化能力弱;C越小,對分類錯(cuò)誤懲罰小,泛化能力強(qiáng)kernel核函數(shù),默認(rèn)是rbfdegreepoly函數(shù)的維度,默認(rèn)為3gamma三類核函數(shù)的參數(shù),默認(rèn)是‘a(chǎn)uto’tol停止訓(xùn)練的誤差大小,默認(rèn)為le-3random_state數(shù)據(jù)洗牌時(shí)的種子值,int值max_iter最大迭代次數(shù)。-1為無限制cache_size核函數(shù)cache緩存大小,默認(rèn)為200probability是否采用概率估計(jì),默認(rèn)為Falsecoef0核函數(shù)常數(shù)項(xiàng),對‘poly’,‘sigmoid’有效值得一提的是,SVM是針對兩個(gè)類別區(qū)分的任務(wù),但是實(shí)際上,絕大部分分類問題都不是二分類的,于是為了達(dá)到區(qū)分多個(gè)類別的目的,SVM采取將二類分類法組合的方式,以與本課題相關(guān)的音樂分類器來說,就有一對多和一對一兩種方法,參考文獻(xiàn)[10]。就分類效力而言,支持向量機(jī)無論是在現(xiàn)行還是非線性分類中,都是非常重要的存在。下圖就幾種常用算法在數(shù)據(jù)集上的準(zhǔn)確率進(jìn)行對比(圖2-5):圖2-5算法準(zhǔn)確率對比2.4本章小結(jié)本章主要對本課題所完成的系統(tǒng)開發(fā)中運(yùn)用到的技術(shù)進(jìn)行概括梳理,機(jī)器學(xué)習(xí)理論部分相關(guān)內(nèi)容,用戶行為分析中一些比較經(jīng)典的模型,并最終選定了三個(gè)模型的綜合使用,以及Scikit-Learn機(jī)器學(xué)習(xí)框架的SVM算法的使用說明。第3章基于機(jī)器學(xué)習(xí)的用戶聽歌分析系統(tǒng)本課題構(gòu)建一個(gè)基于機(jī)器學(xué)習(xí)的用戶聽歌系統(tǒng),目的是收集一部分音樂歌單(最好已經(jīng)有分類),下載相關(guān)音頻文件,對音頻文件進(jìn)行相關(guān)操作處理得到能夠支持計(jì)算機(jī)機(jī)器學(xué)習(xí)的格式文件,以機(jī)器學(xué)習(xí)的方法,構(gòu)建音樂分類器,形成最終聽歌分析系統(tǒng)?;谙到y(tǒng),對用戶聽歌行為數(shù)據(jù)進(jìn)行分析研究,實(shí)現(xiàn)數(shù)據(jù)可視化,以此了解用戶的偏好以及聽歌習(xí)慣。而有關(guān)于數(shù)據(jù)集的建立,在了解了一些目前現(xiàn)有的研究后,由于前人的數(shù)據(jù)集歌單分類類型局限性,綜合考量之后,決定自己爬取數(shù)據(jù),構(gòu)造數(shù)據(jù)集。參考文獻(xiàn)[2]對國內(nèi)現(xiàn)有幾大音樂平臺的對比分析,鑒于網(wǎng)易云調(diào)用接口的可操作性以及數(shù)據(jù)的全面性,最終本課題選擇調(diào)用網(wǎng)易云官方接口,爬取采集相關(guān)數(shù)據(jù)。3.1構(gòu)建音樂分類器模型本節(jié)內(nèi)容為構(gòu)造分類器模型,其流程大致如(圖3-1)所示,首先從網(wǎng)易云音樂平臺完成對用戶聽歌數(shù)據(jù)的爬取,對爬取到的數(shù)據(jù)預(yù)處理調(diào)整成合適的數(shù)據(jù)格式(如歌詞存儲到字典,MP3轉(zhuǎn)為wav格式),對處理過的數(shù)據(jù)利用MFCC特征向量提取,將數(shù)據(jù)分成訓(xùn)練集和測試集來訓(xùn)練得到最優(yōu)參數(shù),將參數(shù)代入模型,再講所有數(shù)據(jù)一起訓(xùn)練模型,生成分類器。圖3-1音樂分類器流程3.1.1音頻文件的采集通過對比,選擇網(wǎng)易云音樂官方API調(diào)用的原因是它能讓我們獲得的數(shù)據(jù)有效并且全面。要采集音頻文件,首先應(yīng)該先確定我們需要的音頻樣本類型,從網(wǎng)易云音樂榜單排行中,確定了七個(gè)用戶較偏好的曲風(fēng)類型進(jìn)行采集。按照github上指導(dǎo)運(yùn)行調(diào)用API的步驟,安裝NodeJS環(huán)境,啟動(dòng)相應(yīng)的項(xiàng)目服務(wù),將端口http://localhost:3000在瀏覽器中打開,就能得到數(shù)據(jù)。主要代碼:爬取音頻文件部分a.判斷對應(yīng)的歌曲MP3文件是否可下載,判斷歌曲是否存在(圖3-2)圖3-2爬取代碼b.下載單曲MP3文件(圖3-3)圖3-3下載MP3文件代碼c.獲取單首歌歌詞,將爬取得到的json字符串轉(zhuǎn)化為字典格式儲存,定位關(guān)鍵字提取內(nèi)容(圖3-4)圖3-4獲取歌詞代碼d.用類似方法,判斷用戶賬號密碼是否匹配,若正確,返回用戶id(圖3-5)圖3-5身份驗(yàn)證代碼3.1.2提取和處理音頻文件特征向量所得到的數(shù)據(jù)集不能為計(jì)算機(jī)所直接利用,因此必須轉(zhuǎn)化成機(jī)器學(xué)習(xí)所能操作的數(shù)據(jù)格式,對于音頻文件的特征提取以及處理是構(gòu)建音樂分類器最重要的一個(gè)環(huán)節(jié)。提取特征向量在嘗試了諸如變換FTT作為特征向量之后,綜合準(zhǔn)確率等因素的考量,本課題最終選擇對于音樂分類比較具有優(yōu)越性的梅爾頻率倒譜系數(shù)(MFCC)[3]進(jìn)行特征提取。MFCC是能夠?qū)θ说穆曇舴诸惖囊惶淄暾惴?,模擬耳朵對于聲音的處理,由于人耳的聽覺特性與梅爾頻率的增長基本擬合,因此用Mel倒譜系數(shù)作為音頻文件的特征向量來用于音樂分類,效果較為理想。參考文獻(xiàn)[11]和[12],提取流程大致如下(圖3-6):圖3-6特征向量處理流程圖預(yù)加重[5]。用一個(gè)高速濾波器過濾語音,提升輸入的語音中高頻部分,使得頻譜平緩化,能夠確保整段頻帶求頻譜的過程中信噪比相同。分幀[5]。一般采用交疊分段的方式,使幀與幀之間連貫。加窗[5]。窗函數(shù)可分為包括漢明窗在內(nèi)的多種窗函數(shù),根據(jù)不同需要選擇適當(dāng)?shù)拇昂瘮?shù)和窗口長度。每一幀乘以漢明窗快速傅里葉變換。將其經(jīng)過快速傅里葉變換轉(zhuǎn)化為頻域上的能量分布來觀察,以此得到各幀的頻譜。三角帶通濾波器。快速傅里葉變換后得到的能量圖譜,乘上一組m個(gè)的三角帶通濾波器來降低資料維度,平滑化頻譜。對數(shù)能量。將前一步所得的m個(gè)頻帶能量取對數(shù),得到對數(shù)能量。將前一步所得的對數(shù)能量帶入離散余弦變換,去除相關(guān)性,求出MFCC系數(shù)。主要代碼:MP3文件對于Python而言處理起來相對復(fù)雜,因此先將MP3文件讀取再轉(zhuǎn)化為wav格式(圖3-7);圖3-7轉(zhuǎn)為wav格式代碼處理特征向量上述所提取的MFCC特征向量結(jié)果為M*L矩陣,其中M為三角濾波器個(gè)數(shù),L為MFCC系數(shù)階數(shù),通常是12-16。要形成訓(xùn)練集,需要把這個(gè)矩陣轉(zhuǎn)化為一維矩陣。學(xué)習(xí)總結(jié)現(xiàn)有方法后,選擇mean和cov兩個(gè)函數(shù)。前者用來矩陣平均值,后者用來求協(xié)方差。補(bǔ)充介紹,librosa是一個(gè)用于音頻、音樂分析、處理的python工具包,功能強(qiáng)大,運(yùn)用于本課題的特征提取。主要代碼(圖3-8):圖3-8處理特征向量代碼對于上述得到的數(shù)據(jù)集提取MFCC特征向量后,存儲在本地文件內(nèi)。本課題采集的數(shù)據(jù)按照七種曲風(fēng)分類,每種類型大約150左右首歌,總數(shù)為1000個(gè)音樂文件。將這些數(shù)據(jù)進(jìn)行分配,其中八成為訓(xùn)練集,其余剩下的為測試集,以備后續(xù)過程使用。主要代碼(圖3-9):圖3-9存儲成txt文件代碼3.1.3構(gòu)造音頻分類器模型對于分類器算法的選取,參考文獻(xiàn)[13]中對于機(jī)器學(xué)習(xí)6種模型的對比,再加上對于KNN算法的評估,這些算法準(zhǔn)確度大致為:BP神經(jīng)網(wǎng)絡(luò)>SVM算法>RF分類模型>LR分類模型>KNN算法>CART決策樹模型。統(tǒng)籌兼顧了準(zhǔn)確率以及實(shí)現(xiàn)過程的可操作性,最終選擇SVM算法來構(gòu)建音樂分類器。尋找最優(yōu)參數(shù)在第二章中,對于Scikit-learn庫中SVM的一些主要參數(shù)有了相應(yīng)說明,那么怎樣找到最優(yōu)參數(shù),讓我們算法模型的準(zhǔn)確率盡量提高呢?學(xué)習(xí)文獻(xiàn)[14],本文采用基于交叉驗(yàn)證的網(wǎng)格參數(shù)尋優(yōu)方法來確定模型的最優(yōu)參數(shù),其核心原理是首先先確定所要搜索的參數(shù)區(qū)域,然后將區(qū)域網(wǎng)格化,而網(wǎng)格的一個(gè)個(gè)交叉點(diǎn)就是要評估的參數(shù)組合,然后用k-fold分別去測試每個(gè)組合的準(zhǔn)確率,準(zhǔn)確率最高的組合就是我們要找的最優(yōu)參數(shù)組合。主要代碼:用每種類型前130首歌做訓(xùn)練集,后20首歌做測試集,交叉網(wǎng)格驗(yàn)證尋找最優(yōu)參數(shù)(圖3-10);圖3-10尋找最優(yōu)參數(shù)代碼b.交叉網(wǎng)格驗(yàn)證部分(圖3-11);圖3-11交叉網(wǎng)格驗(yàn)證代碼c.測試結(jié)果(圖3-12):圖3-12準(zhǔn)確率測試結(jié)果代碼得到最優(yōu)參數(shù)結(jié)果:C:0.1decision_function_shape:ovoKernel:linearprobability:True生成分類器利用上一步驟得到的最優(yōu)參數(shù),結(jié)合數(shù)據(jù)集,進(jìn)行學(xué)習(xí)分類,生成分類器,最后存儲模型。主要代碼(圖3-13):圖3-13分類器模型代碼3.2數(shù)據(jù)信息處理對用戶聽歌行為中的五種表現(xiàn),進(jìn)行一個(gè)權(quán)重劃分,這是因?yàn)?,考慮到不同行為所反映用戶的偏好程度不一樣,細(xì)化權(quán)重比例能夠更貼切更真實(shí)地反映用戶偏好,對于用戶整體行為的分析準(zhǔn)確率才能提高。對于本課題分析的五種聽歌行為類型權(quán)重進(jìn)行解釋:其中循環(huán)播放以及片段播放行為綜合次數(shù)等于其自身原本次數(shù);對于查看評論行為,綜合次數(shù)等于評論時(shí)長和評論次數(shù)的比值;對于點(diǎn)贊評論行為,其綜合次數(shù)為原本次數(shù)的70%;對于歌曲的收藏行為,綜合次數(shù)為基數(shù)10。主要代碼(圖3-14):圖3-14權(quán)重計(jì)算代碼3.3實(shí)現(xiàn)可視化本課題選擇Python中的pyecharts庫來實(shí)現(xiàn)最直接的一個(gè)環(huán)節(jié)——對分析得到的數(shù)據(jù)的可視化操作。這一環(huán)節(jié)主要有三個(gè)部分,分別是用戶行為統(tǒng)計(jì)、用戶偏愛曲風(fēng)還有詞云展示。用戶行為統(tǒng)計(jì),包括用戶聽歌習(xí)慣中的循環(huán)播放和片段播放,聽歌行為中的查看評論和點(diǎn)贊評論,還有歌曲收藏。以條形圖和折線圖展示具體的綜合次數(shù),用餅圖展示各種行為的比例分布;用戶偏愛曲風(fēng),對于七種熱門類型,用戶取向和偏好情況進(jìn)行展示,如行為統(tǒng)計(jì),以條形圖和折線圖展示具體的綜合次數(shù),用餅圖展示各種行為的比例分布;詞云展示,利用jieba分詞庫輔以工具生成歌曲詞云圖。3.4用戶聽歌行為分析系統(tǒng)的實(shí)現(xiàn)這一部分,是本課題的系統(tǒng)功能的實(shí)現(xiàn)部分。大體上分為三個(gè)環(huán)節(jié),第一為收集用戶聽歌數(shù)據(jù),第二為用戶數(shù)據(jù)分析,第三為對分析數(shù)據(jù)實(shí)現(xiàn)可視化。按照功能,進(jìn)行系統(tǒng)模塊劃分。各模塊各得其所,功能不一,缺一不可。功能模塊的劃分(圖3-15):圖3-15模塊組成3.4.1數(shù)據(jù)庫的建立與實(shí)現(xiàn)建立數(shù)據(jù)庫表結(jié)構(gòu)整理了參考文獻(xiàn)的的一些對于用戶行為分析的研究,結(jié)合本課題針對用戶聽歌的這一行為,系統(tǒng)分析的用戶行為有:用戶循環(huán)播放的記錄、片段播放的記錄、點(diǎn)贊評論、查看評論、收藏歌曲。以這些數(shù)據(jù)為基礎(chǔ),搭建數(shù)據(jù)庫,最終用數(shù)據(jù)庫的形式存儲這些數(shù)據(jù)。最終創(chuàng)建三個(gè)表。數(shù)據(jù)結(jié)構(gòu):recoder表(表3-1)對個(gè)別屬性解釋:對于tag屬性,有1~5分別標(biāo)記五種聽歌過程中的行為;對于start_time表示歌曲開始播放時(shí)刻或者是查看評論開始時(shí)間(0);對于end_time則表示歌曲停止播放時(shí)刻或者是查看評論結(jié)束時(shí)間(時(shí)長)。表3-1recoder表屬性名別名數(shù)據(jù)類型長度recoder_idkeyint0user_id用戶idvarchar1000song_id歌曲idvarchar1000tag行為標(biāo)簽int0start_time開始時(shí)間int0end_time結(jié)束時(shí)間int0times總次數(shù)int0message備注text0inserttime插入數(shù)據(jù)時(shí)間datetime0songs表(表3-2)表3-2songs表屬性名別名數(shù)據(jù)類型長度song_id歌曲idchar1000song_name歌曲名字varchar1000song_author歌曲作者varchar1000song_lrc歌曲歌詞text0song_url歌曲路徑varchar1000users表(表3-3)表3-3users表屬性名別名數(shù)據(jù)類型長度user_id用戶idvarchar0antique古風(fēng)音樂類型double0classical古典音樂類型double0electronic電子音樂類型double0folk民謠音樂類型double0pop流行音樂類型double0rap說唱音樂類型double0rock搖滾音樂類型double0lasttime最近更新時(shí)間datetime0songs更新數(shù)量int0實(shí)現(xiàn)數(shù)據(jù)庫表對于本課題數(shù)據(jù)庫的實(shí)現(xiàn),選操作簡便的MySQL工具手動(dòng)存儲數(shù)據(jù);數(shù)據(jù)信息:a.recoder表(圖3-16)圖3-16recoder表數(shù)據(jù)b.songs表(圖3-17)圖3-17songs表內(nèi)容c.users表(圖3-18)圖3-18users表內(nèi)容3.4.2系統(tǒng)設(shè)計(jì)上文提到的本系統(tǒng)涵蓋的幾個(gè)主要模塊:用戶基本信息爬取模塊、訓(xùn)練音樂分類器模塊、用戶數(shù)據(jù)信息分析模塊以及可視化模塊。用戶信息爬取模塊,即上文所述的對于用戶聽歌行為信息的收集(如3.1.1),其功能為通過調(diào)用網(wǎng)易云API,按照曲風(fēng)類型不同的歌單下載歌曲MP3文件、歌詞、用戶播放記錄等等,建立數(shù)據(jù)集,是后續(xù)數(shù)據(jù)分析的保障工作。訓(xùn)練音樂分類器模塊,即上文(3.1.2和3.1.3)所述的對于數(shù)據(jù)集的處理,構(gòu)造最終的音樂分類器模型。其功能是通過機(jī)器學(xué)習(xí)完成對于音樂分類模型的擬合,盡可能地提高分類的準(zhǔn)確率,為后續(xù)曲風(fēng)分析、識別歌曲類型、歌單分析的功能實(shí)現(xiàn)做準(zhǔn)備。用戶數(shù)據(jù)信息分析模塊,如上文(3.2)所述,通過五種不同聽歌行為分別設(shè)置不同權(quán)重,以次數(shù)的形式呈現(xiàn)各種行為的比例關(guān)系。其功能可以可作為后續(xù)可視化部分的展示成果??梢暬K,如上文(3.3)所述,對于我們的分析成果如用戶曲風(fēng)喜好分析和各類行為統(tǒng)計(jì)以圖表等形式呈現(xiàn),直觀,一目了然,以達(dá)到我們設(shè)計(jì)該系統(tǒng)——用來了解用戶聽歌行為偏好的目的。以數(shù)據(jù)流動(dòng)方向來表現(xiàn)各模塊之間聯(lián)系,如(圖3-19)所示圖3-19數(shù)據(jù)流向3.5本章小結(jié)本章主要完成完整的聽歌分析系統(tǒng),首先通過支持向量機(jī)算法完成音樂分類器,對于分類的性能可圈可點(diǎn),準(zhǔn)確率差強(qiáng)人意。接著設(shè)計(jì)核心的系統(tǒng)結(jié)構(gòu)以及數(shù)據(jù)庫的構(gòu)建,本系統(tǒng)由最終大致有四個(gè)核心模塊構(gòu)成,對所分析的數(shù)據(jù)進(jìn)行可視化,最終實(shí)現(xiàn)識別單曲以及完整歌單的分析功能。系統(tǒng)成果展示4.1成果展示(1)登錄界面,主要元素有背景圖,用戶名、密碼標(biāo)簽,登錄、退出按鈕;其中用戶名為手機(jī)號碼(即網(wǎng)易云音樂賬號),系統(tǒng)會自動(dòng)檢測賬號密碼是否匹配,只有匹配才可以順利登錄(圖4-1);圖4-1登錄界面(2)系統(tǒng)界面(主界面),主要元素包括背景圖,五個(gè)按鈕,分別是三個(gè)可視化部分:歌詞詞云、用戶偏愛曲風(fēng)、用戶行為統(tǒng)計(jì);以及兩個(gè)系統(tǒng)功能部分:識別歌曲類型、歌單分析;這是用戶成功登錄之后所呈現(xiàn)的界面,用戶可根據(jù)需要點(diǎn)擊按鈕(圖4-2);圖4-2主界面(3)可視化展示界面,主要包括三部分:用戶聽歌過程中五種行為分別統(tǒng)計(jì)、七種曲風(fēng)用戶偏愛取向展示、歌詞詞云;以條形圖和折線圖展示具體的綜合次數(shù),用餅圖展示各種行為的比例分布;直觀地體現(xiàn)了本課題針對用戶聽歌這一行為分析之后的研究結(jié)果;詞云,主要是對歌詞進(jìn)行分析,對于詞頻等因素的一個(gè)反映,生動(dòng)形象。點(diǎn)擊主界面的三個(gè)按鈕會分別呈現(xiàn)(圖4-3、圖4-4、圖4-5);圖4-3用戶行為統(tǒng)計(jì)展示圖4-4用戶偏愛曲風(fēng)展示圖4-5詞云展示識別歌曲類型功能,點(diǎn)擊主界面的“識別歌曲類型”按鈕,則出現(xiàn)曲風(fēng)識別界面,輸入歌曲id,通過系統(tǒng)的音樂分類器對輸入歌曲進(jìn)行分類,彈出識別結(jié)果窗口,里面顯示該首歌曲的歌曲id、歌名、作者、所分析的曲風(fēng)類型結(jié)果以及歌曲的下載路徑(圖4-6、圖4-7);圖4-6曲風(fēng)識別界面圖4-7曲風(fēng)識別結(jié)果(5)歌單分析功能,點(diǎn)擊主界面的“歌單分析”按鈕,彈出歌單分析界面,輸入歌單id,系統(tǒng)通過利用音樂分類器,逐首分析歌單里的每一首單曲。如我們分析圖2的歌單,開始分析,執(zhí)行程序,會出現(xiàn)圖三的分析過程;分析結(jié)束之后,呈現(xiàn)歌單分析結(jié)果,對于歌單內(nèi)展示每首歌的歌曲id、歌名、作者、曲風(fēng)類型(圖4-8、圖4-9、圖4-10、圖4-11);圖4-8歌單分析界面圖4-9示例識別歌單圖4-10識別分析過程圖4-11歌單識別分析結(jié)果展示4.2本章小結(jié)本章是最終完成的系統(tǒng)成果的展示,以及UI界面的實(shí)現(xiàn),通過點(diǎn)擊按鈕的方式呈現(xiàn)最后可視化的數(shù)據(jù)分析結(jié)果,并且可以查看使用系統(tǒng)的核心功能——識別單曲和歌單分析。結(jié)論與展望本課題完成了一個(gè)基于機(jī)器學(xué)習(xí)的用戶聽歌行為分析的簡單系統(tǒng),音樂和我們的生活息息相關(guān),因此對用戶聽歌行為數(shù)據(jù)進(jìn)行處理和整合,從中探求每個(gè)人的取向偏好,切實(shí)了解用戶在聽歌這一方面的需求,從而能夠?yàn)橛脩籼峁﹤€(gè)性化服務(wù),針對不同曲風(fēng)愛好者,合理進(jìn)行差異化推薦。我認(rèn)為這具有一定的使用意義。總體來看,本課題所實(shí)現(xiàn)的系統(tǒng)完成基于SVM算法的音樂分類器,對從網(wǎng)易云音樂爬取的音樂數(shù)據(jù)曲風(fēng)的辨別,進(jìn)行準(zhǔn)確率較高的分析。利用python語言的強(qiáng)大的庫函數(shù),數(shù)據(jù)的可視化較為美觀,可讀性較高,通過登錄網(wǎng)易云音樂賬號,點(diǎn)擊曲風(fēng)分析按鈕,即可查看自己對于七種曲風(fēng)歌曲的喜愛程度,非常直觀清晰;一方面,對于用戶自身,他們可能也不清楚音樂的類別,曲風(fēng)分析結(jié)果可以幫助他們定位自己的曲風(fēng)取向,通過類別搜索同類歌曲,能發(fā)現(xiàn)更多符合自己品味的歌;另一方面,對于音樂平臺,可根據(jù)分析結(jié)果,智能化推薦,從而實(shí)現(xiàn)用戶與相關(guān)從業(yè)人員的“雙贏”;點(diǎn)擊行為統(tǒng)計(jì)按鈕,用戶即可對自己在網(wǎng)易云音樂平臺聽歌習(xí)慣有一些基本了解。當(dāng)然,由于本人對機(jī)器學(xué)習(xí)以及用戶行為分析相關(guān)知識的了解不夠深入,該系統(tǒng)還存在很多不足。首先,音樂分類器的準(zhǔn)確率還存在提高空間,對于有些歌曲曲風(fēng)分類不夠準(zhǔn)確會導(dǎo)致分析結(jié)果存在偏差;其次,系統(tǒng)實(shí)現(xiàn)的功能太過于單一,只是局限在對單曲和歌單的曲風(fēng)辨析,可以增加用戶行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中九年級地理(上冊)期末試卷(附答案)
- 壽光幼教考試真題及答案
- 深圳保安證考試題及答案
- 人工智能末考試題及答案
- 《GAT 1376-2017資源服務(wù)總線報(bào)文編號規(guī)則》專題研究報(bào)告
- 2026年深圳中考語文素材積累運(yùn)用試卷(附答案可下載)
- 2026年深圳中考數(shù)學(xué)圖形的平移試卷(附答案可下載)
- 2026年深圳中考生物綠色植物與生物圈的水循環(huán)試卷(附答案可下載)
- 2026年深圳中考?xì)v史蘇聯(lián)的社會主義建設(shè)試卷(附答案可下載)
- 康復(fù)醫(yī)學(xué)題庫及答案解析
- 2026年度內(nèi)蒙古自治區(qū)行政執(zhí)法人員專場招收備考題庫完整答案詳解
- 2026云南新華書店集團(tuán)限公司公開招聘34人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2026年人教版八年級語文上冊期末考試卷含答案
- 安全保密管理專題培訓(xùn)課件
- GB/T 17587.2-2025滾珠絲杠副第2部分:公稱直徑、公稱導(dǎo)程、螺母尺寸和安裝螺栓公制系列
- 鍋爐應(yīng)急預(yù)案演練(3篇)
- 2026中國數(shù)字化口腔醫(yī)療設(shè)備市場滲透率與增長動(dòng)力研究報(bào)告
- 2025中證信息技術(shù)服務(wù)有限責(zé)任公司招聘16人筆試參考題庫附答案
- 建筑工程決算編制標(biāo)準(zhǔn)及實(shí)例
- 安徽省江淮十校2025年高二數(shù)學(xué)第一學(xué)期期末質(zhì)量檢測試題含解析
- 電力工程項(xiàng)目預(yù)算審核流程
評論
0/150
提交評論