999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于元算法Django架構(gòu)下社團(tuán)推薦系統(tǒng)的設(shè)計(jì)

2019-10-21 09:21:29趙琳徐明昊
微型電腦應(yīng)用 2019年6期

趙琳 徐明昊

摘 要: 高校社團(tuán)管理系統(tǒng)所采用的B/S方式鮮有智能推薦功能,推廣效率低,資源浪費(fèi)明顯,依賴(lài)熟人系統(tǒng)。為了克服這些問(wèn)題,應(yīng)用聚類(lèi)和KNN算法集成為元算法,并設(shè)計(jì)和實(shí)現(xiàn)了基于Django框架的智能社團(tuán)推薦系統(tǒng)。

關(guān)鍵詞: Django; 聚類(lèi); KNN算法; 社團(tuán)推薦

中圖分類(lèi)號(hào): TP277

文獻(xiàn)標(biāo)志碼: A

文章編號(hào):1007-757X(2019)06-0122-04

Abstract: There are few intelligent recommendation functions in the B/S mode used in college community management systems. The way isolated introduced by the president campus publicity results in inefficiency and obvious waste of resources. For this reason, this paper chooses clustering KNN algorithm, and designs and implements an intelligent community recommendation system based on Django framework.

Key words: Django; Python language; Clustering; KNN algorithm; Community recommendation

0?引言

社團(tuán)在大學(xué)生第二課堂成長(zhǎng)中起著重要作用。目前,高校社團(tuán)系統(tǒng)管理模式多采用B/S方式。王翠香、邵星等人[1]設(shè)計(jì)了一種基于Android 手機(jī)OS平臺(tái)的社團(tuán)管理系統(tǒng).鈕永莉、戴子?xùn)|等人[2]使用JSP技術(shù)設(shè)計(jì)了一種MVC框架的社團(tuán)管理系統(tǒng)。張明東、戴丹丹等人[3]提出了一種基于Java EE的社團(tuán)管理方案。王金龍、孫月興等人[4]實(shí)現(xiàn)了一種基于Python的社團(tuán)管理系統(tǒng)。這些系統(tǒng)通過(guò)主流技術(shù)滿足了社團(tuán)管理增、刪、改、查等基本要求,對(duì)于大學(xué)生個(gè)性化智能推薦的需求沒(méi)有涉及。

李嘉琪、李俊、李婷、付麟惠等人[5]通過(guò)為每個(gè)社團(tuán)添加類(lèi)型標(biāo)簽匹配學(xué)生用戶愛(ài)好的方法實(shí)現(xiàn)社團(tuán)推薦。該方法策略單一不能滿足多需求精準(zhǔn)推薦。石鎧、任濼錕、彭一鳴、李慧嘉等人[6]通過(guò)圖理論構(gòu)建最優(yōu)的重疊社團(tuán)結(jié)構(gòu)的方法聚類(lèi)領(lǐng)袖社團(tuán)實(shí)現(xiàn)推薦,但計(jì)算復(fù)雜度受限于特定帶寬,影響了應(yīng)用范圍。王玙、劉東蘇等人[7]提出了聯(lián)合聚類(lèi)協(xié)同過(guò)濾算法,通過(guò)提取相似用戶偏好的方法建立屬性相似性與打分相似性相結(jié)合的推薦算法,此方法用戶與社團(tuán)屬性的耦合還不高,依賴(lài)于熟人環(huán)境,對(duì)于新生群體的陌生群體應(yīng)用效果有限。

綜上所述,本文針對(duì)現(xiàn)有社團(tuán)管理系統(tǒng)智能推薦功能薄弱,著眼強(qiáng)化用戶與社團(tuán)屬性耦合,提出了一種將聚類(lèi)、kNN算法集成為元算法的Django架構(gòu)下的智能社團(tuán)推薦系統(tǒng),針對(duì)大學(xué)生群體,提高推薦效率。

1?相關(guān)技術(shù)

1.1?系統(tǒng)架構(gòu)

Django是Python web中最流行和應(yīng)用最多的輕量級(jí)開(kāi)發(fā)框架之一[9]。他是一種基于MTV模式的架構(gòu),核心包括:數(shù)據(jù)模型(ORM)映射器,請(qǐng)求路由(url分發(fā)器),視圖(請(qǐng)求響應(yīng)處理模塊)和前端模板(用戶交互)。預(yù)設(shè)的用戶系統(tǒng)、賬號(hào)管理、安全防范等系統(tǒng)功能為web開(kāi)發(fā)帶來(lái)很大方便,大量減少了代碼編寫(xiě)量,提高了各類(lèi)應(yīng)用系統(tǒng)的開(kāi)發(fā)效率,其架構(gòu)如圖1所示。

1.2?其他技術(shù)

Bootstrap是一款基于HTML、CSS、JavaScript的前端開(kāi)發(fā)框架,擁有大量完備的Web組件。Jquery封裝了JavaScript常用的功能代碼。SQLite是一款輕量級(jí)嵌入型關(guān)系數(shù)據(jù)庫(kù)。Redis數(shù)據(jù)庫(kù)是一款高性能鍵-值數(shù)據(jù)庫(kù)。

2?需求設(shè)計(jì)[8]

從本應(yīng)用的具體需求看,智能社團(tuán)推薦系統(tǒng)需要社團(tuán)發(fā)布、新生注冊(cè)、愛(ài)好交流、匹配社團(tuán)推薦、系統(tǒng)管理等5個(gè)功能需求。核心功能為根據(jù)新生的信息進(jìn)行個(gè)性社團(tuán)推薦。如圖2所示。

3?元算法

3.1?算法思想

聚類(lèi)算法是一種無(wú)監(jiān)督的學(xué)習(xí),適合在未知分類(lèi)的情況下進(jìn)行全自動(dòng)分類(lèi)。該算法試圖將相似對(duì)象歸入同一簇。

本文采用k-均值聚類(lèi)算法。其具體思想是:隨機(jī)確定未知樣本集合中k個(gè)初始點(diǎn)作為質(zhì)心。為每個(gè)點(diǎn)找距離其最近的質(zhì)心,并將每個(gè)點(diǎn)分配至所對(duì)應(yīng)的簇中。然后更新該簇所有點(diǎn)的平均值。

K鄰近算法是指存在一個(gè)樣本數(shù)據(jù)集合,且樣本集中每個(gè)數(shù)據(jù)都存在標(biāo)簽,即我們知道樣本集中每一數(shù)據(jù)與所屬分類(lèi)的對(duì)應(yīng)關(guān)系。輸入沒(méi)有標(biāo)簽的新數(shù)據(jù)后,將新數(shù)據(jù)的每個(gè)特征與樣本集中數(shù)據(jù)對(duì)應(yīng)的特征進(jìn)行比較,然后算法提取樣本集中特征最相似數(shù)據(jù)(最近鄰)的分類(lèi)標(biāo)簽。一般只選擇樣本數(shù)據(jù)集中前k個(gè)最相似的數(shù)據(jù)。出現(xiàn)次數(shù)最多的分類(lèi),作為新數(shù)據(jù)的分類(lèi)。其缺點(diǎn)在于計(jì)算未知分類(lèi)樣本時(shí)要和已知集合中每個(gè)樣本進(jìn)行距離計(jì)算,對(duì)于大樣本空間時(shí)間復(fù)雜度高。

本文將以上兩種算法集成為元算法,首先在大學(xué)新生數(shù)據(jù)集上應(yīng)用k-均值聚類(lèi)算法進(jìn)行預(yù)分類(lèi)。再在每個(gè)子類(lèi)中的新生與社團(tuán)樣本集中與該類(lèi)新生類(lèi)別相似的社團(tuán)上應(yīng)用KNN算法,降低KNN算法應(yīng)用時(shí)的樣本數(shù)量,達(dá)到提高算法效率,在不依賴(lài)熟人的情況下進(jìn)行有效推薦。

3.2?關(guān)鍵問(wèn)題

(1) 新生數(shù)據(jù)抽象。新生關(guān)鍵屬性由用戶ID,興趣愛(ài)好,投入時(shí)間組成。數(shù)據(jù)模型偽代碼如下:

模型中User對(duì)象為Django內(nèi)置對(duì)象。

(2) 社團(tuán)數(shù)據(jù)抽象,社團(tuán)屬性主要由以下字段組成如表1所示。

(3) K-均值聚類(lèi)算法[10]

本應(yīng)用中,每個(gè)類(lèi)的聚類(lèi)中心取該類(lèi)樣本的平均值。用歐式距離式如式(1)進(jìn)行聚類(lèi)中心與樣本相似性計(jì)算,以各聚類(lèi)平方和最小為聚類(lèi)目標(biāo),如式(2)。

S1:隨機(jī)選取k個(gè)新生樣本作為聚類(lèi)中心

S2:按照公式(1)計(jì)算所有新生樣本的歐式距離

S3:將每個(gè)新生分配至與其距離最近的聚類(lèi)中

S4:用聚類(lèi)中所有新生樣本的均值更新聚類(lèi)中心,按照公式(2)計(jì)算目標(biāo)函數(shù)值;

S5:根據(jù)目標(biāo)函數(shù)值判斷結(jié)束事件觸發(fā)。

(4) 距離計(jì)算

分別從新生數(shù)據(jù)模型中和社團(tuán)數(shù)據(jù)模型中建立新生三元組和社團(tuán)三元組按照公式(1),進(jìn)行距離D=新生(Hobby, Inputtime, Clusterlabel)-社團(tuán)(Hobby, Inputtime, Class)計(jì)算。

(5) 聚類(lèi)中k值確定

由于預(yù)先不知新生數(shù)據(jù)可分為幾類(lèi),因此,本文根據(jù)肘部法則對(duì)聚類(lèi)數(shù)量進(jìn)行估計(jì)。隨機(jī)選取不同專(zhuān)業(yè)新生數(shù)據(jù)中的10人進(jìn)行評(píng)估,分別對(duì)這10個(gè)同學(xué)進(jìn)行k值為1-9的分類(lèi),以平均半徑做為簇指標(biāo),不同k值與其平均半徑的關(guān)系如圖3所示。

隨著k值的增大,平均半徑的畸變程度會(huì)減小;每個(gè)類(lèi)中的學(xué)生數(shù)伴隨減少,相反,隨著k值繼續(xù)增大,平均半徑畸變程度的改善效果會(huì)不斷減低。畸變程度下降幅度最大的位置即為肘部。從圖3中可估計(jì)得k為4。

3.3?算法分析

聚類(lèi)算法中k值即為預(yù)分類(lèi)的聚類(lèi)個(gè)數(shù),本文取4,KNN算法中k值是指被測(cè)分類(lèi)樣本最近的前k個(gè)樣本的個(gè)數(shù),本文為了提供更多選擇k取12。由于通過(guò)聚類(lèi)操作進(jìn)行了預(yù)分類(lèi),因此在進(jìn)行新生社團(tuán)推薦時(shí),不需要將所有新生與社團(tuán)進(jìn)行距離計(jì)算,只在每個(gè)新生子類(lèi)并與該類(lèi)標(biāo)簽相似的社團(tuán)上進(jìn)行距離計(jì)算,從而降低了KNN算法的時(shí)間復(fù)雜度。

3.4?算法流程圖

如圖4所示。

4?系統(tǒng)設(shè)計(jì)

社團(tuán)推薦系統(tǒng)框圖如圖5所示。

5?系統(tǒng)開(kāi)發(fā)

5.1?開(kāi)發(fā)環(huán)境:

(1) 操作系統(tǒng)及主語(yǔ)言:Windows 7 64位,python 3.7.2。

(2) 系統(tǒng)框架及第三方庫(kù):Django 2.1.5,numpy 1.16.1,matplotlib 3.0.2。

(3) 前端技術(shù):JavaScript,bootstrap-3.3.7-dist,jquery-1.11.1。

(4) 后端數(shù)據(jù)庫(kù):SQLite3,Redis-x64-3.2.100。

5.2?開(kāi)發(fā)過(guò)程

(1) 建立工程:創(chuàng)建名為mysite的工程項(xiàng)目并進(jìn)行項(xiàng)目manage.py,settings.py,

urls.py等文件配置;

(2) 創(chuàng)建應(yīng)用:本項(xiàng)目共創(chuàng)建兩個(gè)應(yīng)用,即Freshmen應(yīng)用和Association應(yīng)用;

(3) 設(shè)計(jì)Modle:本項(xiàng)目分別在Freshmen和Association應(yīng)用中設(shè)計(jì)新生數(shù)據(jù)模型和社團(tuán)數(shù)據(jù)模型;

(4) 創(chuàng)建數(shù)據(jù)庫(kù):設(shè)置settings數(shù)據(jù)庫(kù)屬性,SQLite3數(shù)據(jù)庫(kù)為主主數(shù)據(jù)庫(kù)用于兩個(gè)應(yīng)用的數(shù)據(jù)存儲(chǔ),Redis數(shù)據(jù)庫(kù)用于社團(tuán)瀏覽次數(shù)的鍵值對(duì)數(shù)據(jù)存儲(chǔ);

(5) 設(shè)計(jì)前端模板:在Freshmen應(yīng)用和Association應(yīng)用中分別設(shè)計(jì)用戶管理、社團(tuán)管理、社團(tuán)瀏覽、社團(tuán)介紹、社團(tuán)推薦等前端頁(yè)面。通過(guò)bootstrap技術(shù)和query技術(shù)用于前端頁(yè)面布局、樣式設(shè)計(jì)以及數(shù)據(jù)提交等功能實(shí)現(xiàn);

(6) 視圖處理:分別在兩個(gè)應(yīng)用的Views.py文件中編寫(xiě)視圖處理函數(shù),響應(yīng)request請(qǐng)求,并進(jìn)行處理;

(7) url路由:本別在項(xiàng)目url、Freshmen應(yīng)用url和Association應(yīng)用url中分配前端頁(yè)面請(qǐng)求和處理代碼之間的映射。

6?系統(tǒng)測(cè)試

本文以某學(xué)院80名新生為例進(jìn)行測(cè)試,對(duì)這80名新生進(jìn)行統(tǒng)一注冊(cè),首先應(yīng)用k均值聚類(lèi)算法進(jìn)行預(yù)分類(lèi)(k取4),聚類(lèi)結(jié)果如圖6所示。分類(lèi)后每個(gè)新生記錄會(huì)產(chǎn)生一個(gè)類(lèi)別標(biāo)簽,用于和社團(tuán)集合中的向量進(jìn)行距離計(jì)算。

本系統(tǒng)通過(guò)該學(xué)院的50個(gè)社團(tuán)進(jìn)行測(cè)試供新生選擇。經(jīng)對(duì)新生進(jìn)行聚類(lèi)預(yù)分類(lèi)后,將每個(gè)類(lèi)別的新生與社團(tuán)集合

中相應(yīng)類(lèi)別的向量應(yīng)用KNN算法,將推薦的社團(tuán)數(shù)量降低,結(jié)果如表2所示。

本系統(tǒng)新生社團(tuán)推薦結(jié)果頁(yè)面如圖7所示。

7?總結(jié)

本文針對(duì)現(xiàn)有B/S社團(tuán)管理系統(tǒng)中智能推薦功能不足的缺點(diǎn),通過(guò)python web技術(shù)設(shè)計(jì)了一款基于Django框架的社團(tuán)推薦系統(tǒng)。并以降低歐式距離為基礎(chǔ)的KNN算法計(jì)算樣本量為目的,將k均值聚類(lèi)算法與kNN算法集成為元算法,同時(shí)彌補(bǔ)了傳統(tǒng)社團(tuán)推薦依賴(lài)于熟人系統(tǒng)的不足,擴(kuò)大了社團(tuán)推薦在新生群體的應(yīng)用范圍。經(jīng)測(cè)試,算法有效降低了計(jì)算樣本量,社團(tuán)推薦系統(tǒng)功能有效。

參考文獻(xiàn)

[1]?王翠香,邵星. 面向Android應(yīng)用的大學(xué)生社團(tuán)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 國(guó)際IT傳媒品牌,2015(36):52-55.

[2]?鈕永莉,戴子?xùn)|. 基于MVC框架的高校社團(tuán)管理系統(tǒng)研究與實(shí)現(xiàn)[J].西安文理學(xué)院學(xué)報(bào)(自然科學(xué)版),2018(7):84-87.

[3]?張明東,戴丹丹. Java EE下學(xué)生信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 才智,2018(3):164.

[4]?王金龍,孫月興. 基于Python的高等學(xué)校社團(tuán)信息管理系統(tǒng)[J]. 數(shù)字技術(shù)與應(yīng)用,2017(8):105-107.

[5]?李嘉琪,李俊,李婷,等. 基于大數(shù)據(jù)的社團(tuán)個(gè)性化推薦系統(tǒng)[J]. 電腦知識(shí)與技術(shù),2017(13):60-71.

[6]?石鎧,任濼錕,彭一鳴,等. 基于多節(jié)點(diǎn)社團(tuán)意識(shí)系統(tǒng)的屬性圖聚類(lèi)算法[J]. 計(jì)算機(jī)科學(xué),2017(6):433-437.

[7]?王玙,劉東蘇. 基于聯(lián)合聚類(lèi)與用戶特征提取的協(xié)同過(guò)濾推薦算法[J]. 情報(bào)學(xué)報(bào),2017(8):853-858.

[8]?雷曉薇. 基于Django框架的教學(xué)管理系統(tǒng)的研究與實(shí)現(xiàn)[J]. 電子設(shè)計(jì)工程,2018(18): 39-43.

[9]?楊志慶. 基于的系統(tǒng)的開(kāi)發(fā)與實(shí)現(xiàn)[J]. 機(jī)電一體化,2013(9):70-72.

[10]?Peter Harrington,《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》[M]. 北京:人民郵電出版社,2017:187-188.

[11]?張俊暉. Django框架在web開(kāi)發(fā)中的應(yīng)用[J]. 農(nóng)業(yè)網(wǎng)絡(luò)信息,2015(2):51-52.

(收稿日期: 2018.11.23)

主站蜘蛛池模板: 久久一本精品久久久ー99| 亚洲精品不卡午夜精品| A级全黄试看30分钟小视频| 国产成人AV男人的天堂| 99热最新在线| 亚洲男人在线| 国产h视频在线观看视频| 国产乱子伦精品视频| 久久综合五月| 国产精品2| 欧美日韩中文国产| 欧美日韩成人| 五月天丁香婷婷综合久久| 狠狠做深爱婷婷久久一区| 一级片一区| 国产成人综合欧美精品久久| 色视频久久| 高清国产va日韩亚洲免费午夜电影| 国产精品无码一二三视频| 毛片网站免费在线观看| 国产精品偷伦在线观看| 亚洲中文字幕97久久精品少妇| 国产精品原创不卡在线| 喷潮白浆直流在线播放| 久久综合九色综合97网| 亚洲国产精品成人久久综合影院 | 国产高清不卡| 久久国产高潮流白浆免费观看| 91欧美亚洲国产五月天| 国产SUV精品一区二区6| 久久精品最新免费国产成人| 久久婷婷国产综合尤物精品| 国产99视频在线| 国产91精品调教在线播放| 在线视频一区二区三区不卡| 欧美97色| 亚洲视频二| 国产在线精品香蕉麻豆| 成人久久精品一区二区三区| 在线日本国产成人免费的| 亚洲国产天堂久久综合226114 | 免费在线看黄网址| 国产91熟女高潮一区二区| 亚洲天堂区| 亚洲h视频在线| 青青青草国产| 制服丝袜亚洲| 成人一级黄色毛片| 一级毛片免费观看久| 国产精品网址在线观看你懂的| 在线五月婷婷| 992tv国产人成在线观看| 国产亚洲视频中文字幕视频| 国内自拍久第一页| 99成人在线观看| 久久久成年黄色视频| 国产亚洲视频中文字幕视频 | 欧美一级高清片欧美国产欧美| 又猛又黄又爽无遮挡的视频网站| 日韩无码白| 狠狠干欧美| 伦精品一区二区三区视频| 国产精品深爱在线| 亚洲成人动漫在线| 亚洲天堂在线视频| 狠狠做深爱婷婷久久一区| 夜精品a一区二区三区| jizz国产在线| 一级不卡毛片| 亚洲Va中文字幕久久一区| 91久久偷偷做嫩草影院| 精品三级网站| 国产午夜福利在线小视频| 国产精品专区第1页| 中文一区二区视频| 3344在线观看无码| 热99精品视频| 五月天天天色| 久久亚洲国产视频| 成人国产免费| 99热这里只有免费国产精品| 亚洲电影天堂在线国语对白|