Skip to content

This project develops a Yelp-based restaurant rating prediction algorithm using NLP to analyze review texts and generate a weighted unified rating. It then employs methods like SVD, ALS, SGD, and Random Forest to recommend restaurants based on these ratings.

Notifications You must be signed in to change notification settings

Sandman-R/YelpRecommendation

 
 

Repository files navigation

基于多模型协同过滤的机器学习方法

项目概述

本项目致力于开发一个餐厅评分预测算法,专注于通过多种机器学习技术对Yelp数据集上的餐厅进行评分预测。我们使用了包括奇异值分解SVD、余弦相似度、交替最小二乘法ALS、随机梯度下降SGD和随机森林等方法,以提供准确的评分预测并增强推荐系统的性能。

项目配置方法

  1. (推荐)安装Anaconda

  2. 进入项目目录

    • 使用命令行界面,导航到您的项目文件夹。
  3. 创建并激活虚拟环境

    • 创建虚拟环境:在命令行中输入以下命令:

      conda create -n Yelp_env python=3.11
    • 激活虚拟环境:

      conda activate Yelp_env
  4. 安装项目依赖

    • 使用pip安装依赖。在项目目录中,有requirements.txt文件,列出了所有必需的Python库,使用以下命令安装依赖:

       pip install -r requirements.txt
    • 如果在中国大陆,考虑使用清华大学PyPI镜像加速依赖安装:

   pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

项目结构

$ tree
.
├── README-SC.md
├── README.md
├── assets
│   ├── Palette.json
│   ├── PingFang.ttc
│   ├── yelp_business_dtype.json
│   └── yelp_dtype.json
├── data
│   ├── README-SC.md
│   ├── README.md
│   ├── Yelp_final.csv
│   ├── yelp_academic_dataset_business.csv
│   └── yelp_academic_dataset_review.csv
├── images
│   ├── 01_每个城市的商家数量.png
│   ├── 02_最受欢迎的商家类别.png
│   ├── 03_城市和商家类别组合数量.png
│   ├── 04_获得评论最多的城市和商家类别组合.png
│   ├── Phoenix
│   │   ├── 01_SVD奇异值分布_前20个主成分.png
│   │   ├── 02_不同奇异值数量下的训练集和验证集误差.png
│   │   ├── 03_不同奇异值数量下验证集误差.png
│   │   ├── 04_前两个主成分散点图.png
│   │   ├── 05_去除偏差后的SVD_奇异值分布(前1000个).png
│   │   ├── 06_去除偏差后SVD_验证集重构误差.png
│   │   ├── 07_去除偏差后的SVD_奇异值分布.png
│   │   ├── 08_去除偏差后的SVD_验证集重构误差.png
│   │   ├── 09_余弦相似度模型_不同K值对评分预测MSE的影响.png
│   │   ├── 10_ALS_特征数量与均方误差的关系.png
│   │   ├── 11_ALS_正则化系数对MSE的影响.png
│   │   ├── 12_带偏差修正的SGD_MSE与迭代次数的关系.png
│   │   └── 13_带偏差修正的SGD_特征数量与MSE关系.png
│   └── Scottsdale
│       ├── 01_SVD奇异值分布_前20个主成分.png
│       ├── 02_不同奇异值数量下验证集误差.png
│       ├── 03_不同奇异值数量下验证集误差.png
│       ├── 04_前两个主成分散点图.png
│       ├── 05_去除偏差后的SVD_奇异值分布(前1000个).png
│       └── 06_去除偏差后的SVD_验证集重构误差.png
├── notebooks
│   ├── 01_数据预处理.ipynb
│   ├── 02_Phoenix餐厅.ipynb
│   └── 03_Scottsdale餐厅.ipynb
├── reference
│   ├── 1404.1100v1.pdf
│   ├── Wikipedia.md
│   ├── 奇艺值分解.md
│   ├── 【学长小课堂】什么是奇异值分解SVD--SVD如何分解时空矩阵.mp4
│   └── 【学长小课堂】什么是奇异值分解SVD--SVD如何分解时空矩阵.srt
└── src
    ├── __init__.py
    ├── color_generator.py
    ├── evaluation.py
    ├── model.py
    └── preprocessing.py

9 directories, 47 files

贡献者

孙逸青

张颢南

About

This project develops a Yelp-based restaurant rating prediction algorithm using NLP to analyze review texts and generate a weighted unified rating. It then employs methods like SVD, ALS, SGD, and Random Forest to recommend restaurants based on these ratings.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 97.9%
  • Python 2.1%