當前位置:
首頁 > 最新 > 機器學習項目:建立一個酒店推薦引擎

機器學習項目:建立一個酒店推薦引擎

編譯:yxy

出品:ATYUN訂閱號

所有在線旅行社都在爭先恐後地滿足亞馬遜和網飛(Netflix)設定的AI驅動的個性化標準。此外,在線旅遊已經成為一個競爭激烈的領域,品牌試圖通過推薦,對比,匹配和分享來吸引我們的注意力(和錢包)。

在本文中,我們的目標是為在Expedia上搜索和預定酒店的用戶創建最佳的酒店推薦。我們將此問題建模為多類別的分類問題,並構建SVM和決策樹集成的方法,根據用戶的搜索細節,預測用戶可能預定酒店的簇(cluster)。


數據是匿名的,幾乎所有欄位都是數字格式。數據集可以在Kaggle上找到(鏈接在文末),我們將使用train.csv捕獲用戶行為的日誌,destination.csv包含包含用戶對酒店評論的相關信息。

下面的圖提供了train.csv的概要:

下面的圖提供了destinations.csv的概要:

為了能夠在本地處理,我們隨機抽取樣本為記錄的1%。然後,我們有241,179條記錄。

(241179,24)


目標是根據用戶搜索中的信息預測用戶將預訂哪個hotel_cluster。共有100個簇。換句話說,我們正在處理100個類的分類問題。

數據非常好地分布在所有100個簇上,並且數據是偏態的。

日期時間,簽入日期和簽出日期列不能直接使用,我們將從中提取年份和月份。首先,我們定義了幾個函數來實現它,我們還定義了一個合併destination.csv的函數。

處理date_time列:

處理srch_ci列:

處理srch_co列:

在創建新特徵並刪除無用的特徵之後,我們想知道是否有任何與hotel_cluster相關的內容。這可以讓我們了解是否應該更加關注某些特定的特徵。

沒有列與hotel_cluster線性相關,這意味著對特徵之間的線性關係建模的方法可能不適合該問題。


經過簡單的谷歌搜索,不難發現,對於已知的搜索目的地組合,酒店所在國家,酒店的行情肯定有助於找到酒店簇。我們這樣做:

合併目標表和新創建的聚合數據透視表。

(241179,276)


我們只關注預訂活動。

獲取特徵和標籤。

隨機森林分類器

我們通過k折交叉驗證報告性能度量,而Pipeline可以更輕鬆地組成估計量。

SVM分類器

SVM非常耗時。但是,我們取得的成績更好。

Github:https://github.com/susanli2016/Machine-Learning-with-Python/blob/master/Hotel%20recommendation.ipynb

數據集:https://www.kaggle.com/c/expedia-hotel-recommendations/data


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

誰說選擇機器學習演算法沒有套路的?
最強神器!用Excel實踐機器學習演算法

TAG:機器學習 |