# movie_recommendation_APP_question **Repository Path**: xv514/movie_recommendation_app_question ## Basic Information - **Project Name**: movie_recommendation_APP_question - **Description**: 使用sklearn的KNN实现电影推荐应用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 316 - **Created**: 2025-09-12 - **Last Updated**: 2025-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电影推荐应用 ## 项目简介 本项目是一个基于KNN(K-最近邻)算法的电影推荐系统模拟。用户可以为两部电影进行评分,系统会根据用户的评分和历史数据预测用户可能偏好的电影类型(动作片或喜剧片)。该项目适合初学者学习机器学习基础和Python界面开发。 ## 功能说明 - 支持用户为两部电影分别打分(1-5分)。 - 用户可选择自己偏好的电影类型(动作片或喜剧片)。 - 用户评分和偏好会被记录到本地CSV文件中,作为训练数据。 - 系统可根据已有数据和新评分,预测用户可能喜欢的电影类型。 - 支持数据可视化,展示所有用户评分分布及预测结果。 - 提供清空数据功能,方便重新实验。 ## 软件架构 ### 主要技术与库 - **Python**:主程序语言 - **tkinter**:用于构建图形化用户界面 - **pandas**:用于数据读取、存储和处理 - **scikit-learn**:实现KNN算法,进行模型训练与预测 - **matplotlib**:用于数据可视化 - **Pillow**:用于图片处理和显示 ### 主要文件说明 - `2_movie_rating_APP.py`:主程序文件,包含界面、数据处理、模型训练与预测等全部功能。 - `ratings.csv`:用户评分和偏好数据文件,自动生成和维护。 - `post1_relie.jpg`、`post2_family.jpg`:电影海报图片,用于界面展示。 - `1_movie_KNN.ipynb`:KNN算法原理与实验演示Jupyter Notebook。 ### 主要类和方法 - `MovieRatingApp`:主应用类,负责界面布局、事件响应、数据处理、模型训练与预测。 - `confirm()`:保存用户评分和偏好 - `clear_plot()`:清空所有评分数据 - `plot_ratings()`:可视化所有评分数据 - `predict_preference()`:根据评分预测用户偏好类型 ## 安装与运行 1. 安装 Python 3.x 及以下依赖库(可用命令安装): ``` pip install pandas scikit-learn matplotlib pillow ``` 2. 下载本项目所有文件,并确保图片文件与主程序在同一目录下。 3. 补全所有代码中的 `#TODO` 部分(见代码注释)。 4. 在命令行中运行: ``` python 2_movie_rating_APP.py ``` 即可启动应用。 ## 使用方法 1. 启动后,界面左侧显示两部电影的图片和评分选项。 2. 选择每部电影的评分(1-5分)。 3. 选择你偏好的电影类型(动作片或喜剧片)。 4. 点击“Confirm”按钮,保存你的评分和偏好到本地数据文件。 5. 点击“Predict”按钮,系统会根据你的评分和历史数据预测你可能喜欢的电影类型,并在界面上显示结果。 6. 可点击“Clear”按钮清空所有评分数据,重新开始实验。 7. 右侧图表会实时展示所有用户评分分布和预测点。 ## 数据说明 - 用户每次评分和偏好选择都会被记录到 `ratings.csv` 文件中,作为KNN模型的训练数据。 - 预测时,系统会用所有历史数据进行KNN推理,推荐最可能的电影类型。 ## 适用场景 - 机器学习入门实验 - Python界面开发练习 - 推荐系统原理演示 ## 个人信息 - 学号:202352320224 - 年级:2023 - 专业:智能科学与技术 - 班级:二班