• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于XGBoost的協(xié)同過濾算法在民宿推薦系統(tǒng)中的應(yīng)用

      2024-09-15 00:00:00董慧慧
      電腦知識(shí)與技術(shù) 2024年24期

      摘要:針對(duì)武漢市各區(qū)民宿房東定價(jià)預(yù)測(cè)問題,利用XGBoost回歸模型訓(xùn)練價(jià)格預(yù)測(cè)模型,結(jié)合基于用戶-物品混合的協(xié)同過濾算法為房東推薦相似民宿。在研究過程中,首先采集數(shù)據(jù)并進(jìn)行數(shù)據(jù)預(yù)處理;其次使用多種模型和XGBoost模型進(jìn)行訓(xùn)練,得出XGBoost回歸模型最優(yōu);最后使用交叉驗(yàn)證和網(wǎng)格搜索等方法尋找最優(yōu)參數(shù),完成民宿價(jià)格預(yù)測(cè)模型的構(gòu)建,預(yù)測(cè)精準(zhǔn)度達(dá)到94.49%,為民宿房東提供指導(dǎo)定價(jià)、運(yùn)營管理和決策支持等服務(wù)。

      關(guān)鍵詞:協(xié)同過濾算法;數(shù)據(jù)預(yù)處理;XGBoost回歸模型;價(jià)格預(yù)測(cè);民宿推薦系統(tǒng)

      中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號(hào):1009-3044(2024)24-0067-03

      開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID)

      0 引言

      《攜程鄉(xiāng)村旅游振興白皮書(2023)》報(bào)告顯示,2023年攜程平臺(tái)鄉(xiāng)村旅游訂單量恢復(fù)到疫情前2.6倍,同時(shí)民宿行業(yè)的發(fā)展不僅重啟增長,還創(chuàng)造了過去5年來民宿數(shù)量最大增幅,達(dá)到歷史高點(diǎn)。民宿的快速發(fā)展迫切需要民宿平臺(tái)提供精準(zhǔn)高效的推薦服務(wù),目前民宿推薦系統(tǒng)中主要為游客用戶提供房源推薦,而為房東提供定價(jià)指導(dǎo)、運(yùn)營管理和決策支持等方面的個(gè)性化推薦服務(wù)仍是空白。

      在推薦系統(tǒng)中,基于協(xié)同過濾的推薦算法是最基本的算法,其分為兩類:一是基于用戶的協(xié)同過濾算法(UserCF),二是基于物品的協(xié)同過濾算法(ItemCF)。協(xié)同過濾算法主要通過用戶與用戶之間或者物品和物品之間相似度,來向用戶推薦物品?;趨f(xié)同過濾的推薦算法已在我國的電商平臺(tái)、個(gè)性化網(wǎng)站、在線學(xué)習(xí)、音樂、視頻、新聞等各個(gè)領(lǐng)域中得到廣泛應(yīng)用。基于協(xié)同過濾的推薦算法具有以下的優(yōu)勢(shì):一是推薦對(duì)象的范圍比較廣,對(duì)推薦對(duì)象無特殊要求,能夠過濾難以進(jìn)行機(jī)器自動(dòng)基于內(nèi)容分析的信息[1]。二是能夠基于一些復(fù)雜的,難以表達(dá)的概念進(jìn)行過濾[2]。因此在民宿推薦系統(tǒng)[3]中,只要結(jié)合民宿的特征信息進(jìn)行改進(jìn)協(xié)同過濾推薦算法[4],使之可以在最短的時(shí)間內(nèi)高效率地幫助民宿房東在指導(dǎo)定價(jià)、運(yùn)營管理和決策支持等方面提供服務(wù),就可以大大提高民宿的入住率。

      本文從民宿房東的角度出發(fā),獲取了2024年4月武漢市各區(qū)民宿房源數(shù)據(jù),數(shù)據(jù)來源某民宿網(wǎng)站,通過交叉驗(yàn)證下XGBoost回歸模型算法訓(xùn)練民宿價(jià)格預(yù)測(cè)模型,再通過參數(shù)調(diào)優(yōu),使用均方根誤差對(duì)模型進(jìn)行評(píng)估,同時(shí)結(jié)合用戶-物品的混合協(xié)同過濾算法計(jì)算民宿相似度,輔助房東用戶綜合各方面的因素進(jìn)行價(jià)格指導(dǎo)和科學(xué)決策。

      1 數(shù)據(jù)采集和預(yù)處理

      1.1 數(shù)據(jù)采集

      傳統(tǒng)的數(shù)據(jù)采集模式是通過走訪或者專業(yè)機(jī)構(gòu)購買,不僅時(shí)間成本高,效率低,經(jīng)濟(jì)花費(fèi)也較大。隨著計(jì)算機(jī)技術(shù)的發(fā)展,人們通常通過網(wǎng)絡(luò)來獲取大量真實(shí)的數(shù)據(jù)。因此,在明確民宿價(jià)格預(yù)測(cè)模型的構(gòu)建所需要的特征后,對(duì)于民宿房源信息的獲取,本文通過Python+Selenium網(wǎng)絡(luò)爬蟲技術(shù)進(jìn)行高效的自動(dòng)化獲取數(shù)據(jù),數(shù)據(jù)來源于某民宿網(wǎng)站武漢市4月份的994個(gè)樣本數(shù)據(jù),僅用于模型的訓(xùn)練與預(yù)測(cè)。民宿數(shù)據(jù)的基本特征包括武漢區(qū)域名、街道、小區(qū)、民宿類型、面積、評(píng)分、價(jià)格、房間設(shè)施、周邊環(huán)境等,部分?jǐn)?shù)據(jù)如表1所示。

      1.2 數(shù)據(jù)預(yù)處理與特征工程

      為了更好地對(duì)民宿數(shù)據(jù)進(jìn)行構(gòu)建模型,需要對(duì)采集的數(shù)據(jù)進(jìn)行預(yù)處理。主要使用基于 jupyter notebook 和 python3 工具,導(dǎo)入pandas、numpy 庫,利用 head()、value_counts()、describe()、isnull()、unique()等函數(shù)以及通過 matplotlib 作圖對(duì)數(shù)據(jù)特征分析。關(guān)鍵技術(shù)包括:去噪聲去重,處理異常值缺失值,數(shù)據(jù)標(biāo)準(zhǔn)化正則化處理,歸一化處理,數(shù)據(jù)變換、數(shù)據(jù)規(guī)約和數(shù)據(jù)集成等。其中區(qū)域、設(shè)施、周邊等文本類型的數(shù)據(jù)使用LabelEncoder()進(jìn)行重新編碼,轉(zhuǎn)化為可用的數(shù)值表示形式,通過地理編碼(如經(jīng)緯度)實(shí)現(xiàn)小區(qū)信息轉(zhuǎn)換,以便構(gòu)建用戶-物品評(píng)分矩陣。

      通過使用seaborn的scatterplot()繪制不同特征與價(jià)格特征之間的關(guān)系,進(jìn)行特征抽取、特征預(yù)處理、特征降維等一系列過程將原始數(shù)據(jù)轉(zhuǎn)換為更好地代表數(shù)據(jù)以供推薦算法使用。

      數(shù)據(jù)清洗處理后的信息如圖1所示。

      2 民宿價(jià)格預(yù)測(cè)回歸模型

      數(shù)據(jù)預(yù)處理之后,使用StandardScala將數(shù)據(jù)進(jìn)一步做標(biāo)準(zhǔn)化處理。接下來分別使用LinearRegression、RandomForestRegression、LightGBM和XGBoost模型對(duì)房源進(jìn)行價(jià)格預(yù)測(cè),以便輔助民宿房東對(duì)民宿定價(jià)。

      2.1 XGBoost回歸模型

      XGBoost(Extreme Gradient Boosting)算法是陳天奇博士于2016年發(fā)表的論文《XGBoost:AScalable Tree Boosting System》中正式提出的。XGBoost在GBDT算法的基礎(chǔ)上作出了一系列的優(yōu)化,如在損失函數(shù)的計(jì)算中增加了二階導(dǎo)數(shù),增加了正則項(xiàng),一定程度上的并行計(jì)算等。XGBoost算法是一種基于梯度提升樹的集成學(xué)習(xí)算法。它是一類由基函數(shù)與權(quán)重進(jìn)行組合形成對(duì)數(shù)據(jù)擬合效果佳的合成算法,在處理大規(guī)模數(shù)據(jù)集和復(fù)雜模型時(shí)更高效,能夠防止過擬合并提高泛化能力。在機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)中,它被廣泛用于分類和回歸問題。該算法適用在民宿價(jià)格預(yù)測(cè)方面。

      本文實(shí)驗(yàn)采用XGBoost算法進(jìn)行回歸。首先加載武漢各區(qū)預(yù)處理之后的數(shù)據(jù)集,將其劃分為訓(xùn)練集和測(cè)試集。其次,利用XGBoost的XGBRegressor類定義一個(gè)回歸模型,并使用訓(xùn)練集進(jìn)行模型訓(xùn)練。然后,利用訓(xùn)練好的模型對(duì)測(cè)試集進(jìn)行預(yù)測(cè),并計(jì)算預(yù)測(cè)結(jié)果與實(shí)際結(jié)果之間的均方根誤差。最后,根據(jù)實(shí)際情況調(diào)整模型的超參數(shù),以獲取更好的預(yù)測(cè)效果。

      2.2 模型訓(xùn)練和評(píng)估

      民宿價(jià)格預(yù)測(cè)模型訓(xùn)練之前,武漢各區(qū)源數(shù)據(jù)已經(jīng)做過預(yù)處理,預(yù)測(cè)特征值為價(jià)格。為了找到最優(yōu)模型,在模型建立的過程中,先后采用了sklearn的KFold、mean_squared_error、LinearRegression、RandomForestRegression、lightgbm、xgboost等包,進(jìn)行實(shí)驗(yàn)并使用模型評(píng)價(jià)指標(biāo)RMSE的值進(jìn)行對(duì)比。其中以使用XGBoost構(gòu)建模型過程為例,首先初始化XGBRegressor類的一個(gè)實(shí)例,然后使用.fit()方法訓(xùn)練模型,傳入特征(X)和目標(biāo)變量(y)。關(guān)鍵代碼如下:

      for train_indices,test_indices in kf.split(X):

      X_train,X_test=X[train_indices],X[test_indices]

      y_train,y_test=y[train_indices],y[test_indices]

      XGBR=xgb.XGBRegressor()

      XGBR.fit(X_train,y_train)

      y_pred=XGBR.predict(X_test)

      rmse=np.sqrt(mean_squared_error(y_test,y_pred))

      rmse_scores.append(rmse)

      經(jīng)過訓(xùn)練,對(duì)于默認(rèn)參數(shù)下的線性回歸模型、隨機(jī)森林模型、LightGBM模型[5]和XGBoost模型,它們的均方根誤差值的對(duì)比結(jié)果如表2所示。

      均方根誤差(Root Mean Squared Error, RMSE)是一種常用的預(yù)測(cè)模型性能評(píng)價(jià)指標(biāo),特別是在回歸問題中。它衡量的是預(yù)測(cè)值與實(shí)際值之間的平均差異大小。RMSE 的值越小,通常表示模型的預(yù)測(cè)性能越好。均方根誤差計(jì)算方法為:

      經(jīng)過表2對(duì)比,XGBoost模型在本文數(shù)據(jù)集中的民宿價(jià)格預(yù)測(cè)上更為適合。

      2.3 參數(shù)調(diào)優(yōu)

      選擇XGBoost模型之后,使用交叉驗(yàn)證和網(wǎng)格搜索等技術(shù)來優(yōu)化模型的超參數(shù)。交叉驗(yàn)證是一種常用的評(píng)估模型性能和選擇參數(shù)的方法。迭代中使用其中一部分作為驗(yàn)證集,其他部分作為訓(xùn)練集。通過多次交叉驗(yàn)證,可以得到模型在不同參數(shù)組合下的平均性能,從而選擇最優(yōu)的參數(shù)組合。網(wǎng)格搜索XGBoost最佳模型參數(shù),對(duì)模型泛化能力有敏感影響的參數(shù)進(jìn)行多次調(diào)整。本文實(shí)驗(yàn)中,主要通過設(shè)置learning_rate、n_estimators、max_depth、subsample、colsample_bytree、min_child_weight、gamma、reg_alpha、reg_lambda、seed、nthread 等參數(shù)的不同組合值,并觀察模型性能的變化。其中l(wèi)earning_rate學(xué)習(xí)率、n_estimators評(píng)估器數(shù)量、max_depth樹的最大深度、min_child_weight最小葉子節(jié)點(diǎn)權(quán)重等參數(shù)對(duì)模型的預(yù)測(cè)結(jié)果有重要影響。經(jīng)過多輪實(shí)驗(yàn)的結(jié)果,最終對(duì)各超參數(shù)調(diào)整后的模型準(zhǔn)確率可達(dá)到94%,RMSE的值平均能夠達(dá)到5.504 72。最優(yōu)超參數(shù)如表3所示。

      3 結(jié)束語

      針對(duì)本次研究采集的武漢市各區(qū)民宿價(jià)格數(shù)據(jù),通過使用XGBoost回歸模型進(jìn)行訓(xùn)練和調(diào)優(yōu),構(gòu)建出一個(gè)適合民宿房東定價(jià)的預(yù)測(cè)模型,預(yù)測(cè)精準(zhǔn)度達(dá)到了94.49%。在民宿推薦系統(tǒng)中,結(jié)合基于用戶-物品混合的協(xié)同過濾算法為房東推薦相似民宿,最終可以在輔助民宿房東定價(jià)、運(yùn)營管理和決策支持等服務(wù)方面起到良好的作用。

      參考文獻(xiàn):

      [1] 黃立威,江碧濤,呂守業(yè),等.基于深度學(xué)習(xí)的推薦系統(tǒng)研究綜述[J].計(jì)算機(jī)學(xué)報(bào),2018,41(7):1619-1647.

      [2] 張宜浩,朱小飛,徐傳運(yùn),等.基于用戶評(píng)論的深度情感分析和多視圖協(xié)同融合的混合推薦方法[J].計(jì)算機(jī)學(xué)報(bào),2019,42(6):1316-1333.

      [3] 路丹,陳占芳.基于協(xié)同過濾的個(gè)性化民宿推薦系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2018,24(32):97-100.

      [4] 郭偉,王佳偉,唐曉亮,等.基于置信度加權(quán)的單類協(xié)同過濾推薦算法[J].計(jì)算機(jī)應(yīng)用研究,2018,35(12):3618-3623,3627.

      [5] 顧桐,許國良,李萬林,等.基于集成LightGBM和貝葉斯優(yōu)化策略的房價(jià)智能評(píng)估模型[J].計(jì)算機(jī)應(yīng)用,2020,40(9):2762-2767.

      【通聯(lián)編輯:王 力】

      常州市| 德令哈市| 祁连县| 镇坪县| 达拉特旗| 定安县| 肥西县| 宕昌县| 怀集县| 黄骅市| 吉林市| 奉贤区| 监利县| 芷江| 龙川县| 康乐县| 冀州市| 河津市| 沙湾县| 马山县| 武鸣县| 高雄市| 巴中市| 伽师县| 和林格尔县| 偏关县| 嵩明县| 剑川县| 绥棱县| 临猗县| 资溪县| 冕宁县| 邯郸市| 渝北区| 勃利县| 资源县| 志丹县| 庐江县| 漳平市| 北流市| 三门峡市|