基于Spark智能推荐算法的农业作物推荐系统,推荐算法使用Spark ML风格推荐引擎

农业作物推荐系统

项目概述

基于Spark智能推荐算法的农业作物推荐系统,为农民提供精准的作物种植建议。

技术栈

  • 后端框架: Flask 3.0
  • 数据库: SQLite + SQLAlchemy
  • 前端框架: Bootstrap 5
  • 可视化: ECharts 5.4
  • 推荐算法: Spark ML风格推荐引擎

核心功能

用户端功能

  1. 用户认证

    • 用户注册/登录
    • 会话管理
    • 安全认证
  2. 智能推荐

    • 基于土壤类型匹配
    • 基于气候条件分析
    • 基于季节适宜度评估
    • 基于经济效益计算
    • 多维度综合评分
  3. 作物库

    • 作物浏览和搜索
    • 作物详细信息
    • 分类筛选
    • 市场价格对比
  4. 收益计算器

    • 实时计算预估产量
    • 实时计算预估收益
    • 可调整种植面积
  5. 个人中心

    • 历史推荐记录
    • 用户信息管理

管理端功能

  1. 仪表盘

    • 实时统计数据
    • 关键指标展示
    • 快捷操作入口
  2. 用户管理

    • 用户列表查看
    • 用户信息编辑
    • 角色权限管理
  3. 作物管理

    • 作物增删改查
    • 批量管理
    • 分类管理
  4. 土壤管理

    • 土壤类型维护
    • 土壤参数管理
    • 养分数据管理
  5. 数据分析

    • 作物价格分布图
    • 类别占比饼图
    • 用户推荐统计
    • 产量分析柱状图
    • 系统数据总览

推荐算法

采用多维度加权评分的推荐算法:

评分维度

  1. 土壤匹配度 (30%)

    • 土壤类型匹配
    • 养分指标分析
    • 排水性能评估
  2. 气候适应度 (25%)

    • 温度范围匹配
    • 湿度条件分析
    • 降水需求评估
  3. 季节适宜度 (20%)

    • 种植季节匹配
    • 生长周期评估
    • 收获时间分析
  4. 经济效益 (25%)

    • 市场价格评估
    • 产量潜力分析
    • 综合收益预测

推荐流程

复制代码
用户输入条件
    ↓
提取作物特征
    ↓
计算各维度分数
    ↓
加权综合评分
    ↓
排序并返回Top-K
    ↓
生成推荐理由

数据库设计

核心数据表

  1. User(用户表)

    • 用户基本信息
    • 登录认证信息
    • 角色权限
  2. Crop(作物表)

    • 作物基本信息
    • 生长参数
    • 市场数据
    • 种植要求
  3. Soil(土壤表)

    • 土壤类型信息
    • 化学指标
    • 物理特性
  4. Climate(气候表)

    • 地区气候数据
    • 温湿度信息
    • 降水数据
  5. Recommendation(推荐表)

    • 推荐记录
    • 评分数据
    • 推荐理由
  6. UserSoil(用户土壤表)

    • 用户土地信息
    • 土壤关联
    • 面积数据

项目结构

复制代码
agricultural_recommendation_system/
├── app/
│   ├── __init__.py              # Flask应用工厂
│   ├── models.py                # 数据库模型定义
│   ├── routes/
│   │   ├── __init__.py
│   │   ├── user_routes.py       # 用户端路由
│   │   ├── admin_routes.py      # 管理端路由
│   │   └── api_routes.py        # API接口路由
│   ├── static/                  # 静态资源
│   │   ├── css/
│   │   ├── js/
│   │   └── images/
│   └── templates/               # HTML模板
│       ├── base.html            # 基础模板
│       ├── user/                # 用户端模板
│       │   ├── login.html
│       │   ├── register.html
│       │   ├── index.html
│       │   ├── recommendation.html
│       │   ├── crops.html
│       │   ├── crop_detail.html
│       │   └── profile.html
│       └── admin/               # 管理端模板
│           ├── base.html
│           ├── index.html
│           ├── users.html
│           ├── crops.html
│           ├── crop_form.html
│           ├── soils.html
│           ├── soil_form.html
│           └── analytics.html
├── config/
│   └── config.py                # 配置文件
├── database/
│   ├── __init__.py
│   └── init_db.py               # 数据库初始化脚本
├── spark_ml/
│   ├── __init__.py
│   └── recommender.py          # 推荐算法模块
├── utils/                       # 工具模块
├── run.py                       # 应用启动入口
├── requirements.txt             # Python依赖
├── .coze                        # 项目配置
├── README.md                    # 项目文档
└── 项目说明.md                  # 本文档

API接口

1. 推荐接口

URL : POST /api/recommend

请求参数:

json 复制代码
{
  "soil_type": "黑土",
  "climate": "温暖湿润",
  "season": "春季",
  "area_size": 1,
  "user_id": 2
}

响应示例:

json 复制代码
{
  "success": true,
  "recommendations": [
    {
      "crop_id": 1,
      "crop_name": "大豆",
      "score": 81.2,
      "reason": "土壤匹配优秀;气候适应优秀;季节适宜优秀;属于经济作物",
      "market_price": 4800.0,
      "yield_per_acre": 3000.0,
      "estimated_revenue": 14400.0
    }
  ]
}

2. 作物列表

URL : GET /api/crops

3. 作物详情

URL : GET /api/crops/<id>

4. 统计数据

URL : GET /api/stats

5. 用户推荐历史

URL : GET /api/recommendations/<user_id>

快速开始

1. 安装依赖

bash 复制代码
pip install -r requirements.txt

2. 初始化数据库

bash 复制代码
python database/init_db.py

3. 启动应用

bash 复制代码
python run.py

4. 访问系统

打开浏览器访问: http://localhost:5000

测试账号

普通用户

  • 用户名: farmer1
  • 密码: password123

管理员

  • 用户名: admin
  • 密码: admin123

特色亮点

  1. 智能推荐引擎

    • 多维度综合评分
    • 可配置权重参数
    • 详细的推荐理由
  2. 数据可视化

    • ECharts图表展示
    • 实时数据更新
    • 多种图表类型
  3. 用户体验

    • 响应式设计
    • Bootstrap 5美观界面
    • 流畅的交互体验
  4. 系统架构

    • 前后端分离
    • RESTful API
    • 模块化设计

功能实现










相关推荐
清平乐的技术专栏14 小时前
HBase集群连接方式
大数据·数据库·hbase
喵手15 小时前
Python爬虫零基础入门【第九章:实战项目教学·第15节】搜索页采集:关键词队列 + 结果去重 + 反爬友好策略!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·搜索页采集·关键词队列
梁下轻语的秋缘15 小时前
Prompt工程核心指南:从入门到精通,让AI精准响应你的需求
大数据·人工智能·prompt
Suchadar15 小时前
if判断语句——Python
开发语言·python
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大15 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
福客AI智能客服15 小时前
工单智转:电商智能客服与客服AI系统重构售后服务效率
大数据·人工智能
喵手15 小时前
Python爬虫零基础入门【第九章:实战项目教学·第14节】表格型页面采集:多列、多行、跨页(通用表格解析)!
爬虫·python·python爬虫实战·python爬虫工程化实战·python爬虫零基础入门·表格型页面采集·通用表格解析
2601_9496130216 小时前
flutter_for_openharmony家庭药箱管理app实战+药品分类实现
大数据·数据库·flutter
0思必得016 小时前
[Web自动化] 爬虫之API请求
前端·爬虫·python·selenium·自动化
AIGC合规助手16 小时前
AI智能硬件I万亿市场预测+算法、大模型备案合规手册
大数据·人工智能·智能硬件