基于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
    • 模块化设计

功能实现










相关推荐
2501_941875281 天前
从日志语义到可观测性的互联网工程表达升级与多语言实践分享随笔
java·前端·python
2501_941879811 天前
在迪拜跨地域业务场景中构建多活数据中心架构的工程实践与系统治理思路
模拟退火算法·推荐算法
叫我:松哥1 天前
基于 Flask 的音乐推荐与可视化分析系统,包含用户、创作者、管理员三种角色,集成 ECharts 进行数据可视化,采用混合推荐算法
开发语言·python·信息可视化·flask·echarts·pandas·推荐算法
此剑之势丶愈斩愈烈1 天前
mybatis-plus乐观锁
开发语言·python·mybatis
vibag1 天前
LangGraph全家桶使用
python·语言模型·langchain·大模型·langgraph
ws2019071 天前
湾区引擎轰鸣:AUTO TECH China 2026广州汽车零部件展何以撬动全球汽车供应链?
大数据·人工智能·科技·汽车
勘察加熊人1 天前
python实现批量中英文文件翻译
开发语言·windows·python
电商API_180079052471 天前
获取淘宝商品视频API教程:从授权到落地实战
大数据·数据库·人工智能·数据分析·音视频
wyz1911 天前
第19章 数据治理的发展趋势
大数据·人工智能·数据治理·数据要素·数据资源