博主介绍:✌ 专注于VUE,小程序,安卓,Java,python,物联网专业,有18年开发经验,长年从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。
一、研究目的
本研究旨在构建一套基于SpringBoot框架与XGBoost算法相结合的房价预测可视化系统,以解决传统房价预测方法在实时性、可解释性与扩展性方面的不足。当前市场上多数预测模型仅提供静态预测结果,缺乏对输入特征重要性的直观展示,且难以满足大规模数据处理需求。通过采集房地产挂牌信息、人口统计数据以及宏观经济指标等多源异构数据,本研究将对原始数据进行清洗、归一化及特征工程,包括空间编码、时间序列平滑与交互作用项构造,以提升模型的泛化能力。XGBoost模型将采用交叉验证技术对超参数进行网格搜索与贝叶斯优化,力求在保持高预测精度的同时降低过拟合风险。后端服务将基于SpringBoot实现RESTful API接口,提供模型推理、数据查询与模型管理等功能,从而实现系统的模块化与易部署性。前端可视化层将利用D3.js或ECharts技术展示预测结果、特征重要性分布以及不确定性估计,使用户能够直观理解模型决策过程。系统的最终目标是为投资者、开发商与政策制定者提供可操作的决策支持,帮助其在复杂多变的房地产市场中做出更为精准的判断。性能评估将采用均方根误差(RMSE)、平均绝对误差(MAE)以及决定系数(R²)等指标,并通过用户体验研究评估可视化界面的易用性与信息传递效果。研究还将探讨将SHAP值等可解释AI技术嵌入可视化层的可行性,以进一步提升模型透明度。综上所述,本项目旨在弥合先进机器学习技术与实际房地产决策工具之间的鸿沟,为学术界提供新的研究案例,也为行业实践提供具有实用价值的技术方案。
二、研究意义
本研究在学术层面具有重要意义,首先它为房地产价格预测领域提供了一种基于XGBoost的高效算法框架,能够显著提升预测精度与模型鲁棒性;其次,通过将SpringBoot作为后端技术栈,实现了服务化部署与微服务化管理,为后续大规模数据处理与模型迭代提供了可扩展的技术基础;再次,本研究在特征工程方面引入空间编码、时间序列平滑以及交互作用项构造等方法,丰富了多源异构数据的利用方式,为机器学习模型在非结构化与半结构化数据环境下的应用提供了经验借鉴。与此同时,本研究在可解释性方面采用SHAP值与特征重要性可视化技术,使得模型决策过程透明化,满足学术界对模型可解释性日益增长的需求。由此,本研究不仅填补了传统房价预测方法在实时性、可解释性与扩展性方面的空白,也为相关研究提供了一套完整的技术路线与实现细节,可直接用于后续学术探索与工业应用。
从应用层面看,本系统能够为房地产投资者提供精准的价格预测结果,帮助其在买卖决策中降低风险;对开发商而言,系统可用于项目选址与定价策略制定,从而提升资金使用效率;对政府与规划部门,该系统能够实时监测区域房价波动,为宏观调控与住房保障政策提供数据支持。更为重要的是,系统的可视化界面将预测结果、特征重要性以及不确定性估计直观呈现,使非技术决策者能够快速理解模型输出,从而提升决策效率与透明度。综上所述,本研究在推动房地产行业数字化转型、提升市场透明度与促进学术研究进步方面均具有显著价值。
三、国内外研究现状
国内外在房地产价格预测领域的研究已形成多条主线,涵盖传统统计模型、机器学习方法以及深度学习技术,并在数据来源、特征工程与模型可解释性方面取得显著进展。首先,早期国内研究多聚焦于基于回归分析与时间序列模型的房价预测,利用宏观经济指标与地区人口数据进行线性回归或ARIMA建模,取得了基本的预测效果。然而,这类方法对非线性关系的捕捉能力有限,且在处理大规模异构数据时存在显著缺陷。随后,国内学者引入随机森林与梯度提升树等集成学习算法,对房价预测精度进行提升,并通过特征重要性排序为决策提供参考。与此同时,随着大数据技术的普及,研究者开始利用空间信息系统(GIS)数据,将地理位置、交通便利度、公共设施分布等空间特征纳入模型,进一步提升预测准确率。
在国际研究层面,早期工作多以传统统计方法为主,但随着机器学习技术的成熟,学术界迅速转向基于树模型的梯度提升算法(如XGBoost、LightGBM)以及支持向量回归(SVR)。这些方法在公开数据集(如Kaggle房价预测竞赛)中表现出色,并在论文中被广泛引用。近年来,深度学习技术的引入为房价预测提供了新的视角。卷积神经网络(CNN)被用于处理房屋图片与卫星图像,提取视觉特征;循环神经网络(RNN)与长短期记忆网络(LSTM)则用于建模时间序列的动态变化;图神经网络(GNN)被用于捕捉城市空间结构中的邻接关系,提升对区域房价波动的解释力。与此同时,学术界对模型可解释性的关注日益增强,SHAP值、LIME以及局部线性模型等方法被广泛应用于揭示特征对预测结果的贡献,从而提升模型透明度。
在数据集方面,国内研究多依赖地方政府公开的房地产交易数据与统计年鉴,数据规模相对有限;而国际研究则借助大型公开平台(如Zillow、Redfin)提供的海量交易记录,能够构建更为细粒度的模型。为解决跨地区数据差异,学者提出了多任务学习与迁移学习框架,将不同城市或国家的房价预测任务映射到共享表示空间,实现知识迁移与泛化能力提升。
总体而言,国内外研究在方法论上已从单一回归模型逐步过渡到集成学习与深度学习相结合的多模态框架,并在特征工程、空间信息融合与可解释性方面取得突破。然而,仍存在数据异构性、特征选择效率低下、模型部署与实时推理成本高等挑战。针对这些问题,未来研究将进一步探索自动化特征工程、轻量化模型压缩以及云原生部署技术,以实现更高效、更可靠的房价预测系统。
四、预期达到目标及解决的关键问题
预期目标主要聚焦于构建一套高效、可解释且易部署的房价预测可视化系统,该系统基于SpringBoot后端框架与XGBoost机器学习算法实现,并通过前端可视化技术呈现预测结果与特征重要性。首先,系统需在公开数据集与真实交易数据上实现均方根误差低于5%,平均绝对误差低于10%,从而满足行业对预测精度的基本要求;其次,系统需支持实时推理,即单次预测时间不超过200毫秒,以满足大规模并发访问场景;再次,系统需提供交互式可视化面板,展示预测值、置信区间以及各特征对预测结果的贡献度,并支持用户自定义筛选与对比分析;最后,系统需实现容器化部署与微服务治理,使其能够在多云环境下灵活扩展并实现持续集成与持续交付。通过上述目标的实现,预期可为房地产投资者、开发商及政策制定者提供可靠的数据支持,降低决策风险,并为学术界提供可复现的实验平台。
关键问题主要包括数据异构性与质量保障、特征工程自动化、模型解释性与透明度、系统性能优化以及安全合规。数据异构性方面,房地产领域涉及挂牌信息、交易记录、人口统计、宏观经济指标以及空间地理数据等多源异构信息,如何实现统一的数据抽取与清洗流程,并保证时间同步与空间一致性,是系统设计的首要挑战;特征工程自动化则需通过自动特征选择与组合技术,减少人工干预,提高模型泛化能力;模型解释性方面,XGBoost虽然具备较高预测精度,但其黑箱特性限制了业务人员对结果的信任,需要引入SHAP值或局部线性解释方法,并将解释结果可视化呈现;系统性能优化则需在模型训练与推理阶段采用梯度压缩、模型蒸馏以及GPU加速等技术,以满足实时推理需求;安全合规方面,涉及个人隐私与交易数据的合规存储与访问控制,需要实现基于角色的权限管理与数据脱敏机制。解决上述关键问题,将为系统的可靠性、可扩展性与行业应用奠定坚实基础。
五、研究内容
本研究的整体内容围绕构建一套基于SpringBoot与XGBoost的房价预测可视化系统展开,主要分为数据获取与预处理、特征工程与模型构建、模型解释性分析、后端服务实现、前端可视化展示以及系统评估与部署等六大模块。首先,数据获取阶段将从地方政府公开的房地产交易记录、城市规划数据库、人口统计年鉴以及宏观经济指标等多源渠道同步采集原始数据,并通过ETL流程实现结构化存储;在预处理过程中,将对缺失值采用多重插补技术进行填补,对异常值利用箱线图与Z得分方法进行剔除,并对时间序列数据进行季节性分解与平滑处理,以消除周期性波动的干扰。其次,特征工程模块将结合空间编码技术,将地理坐标转换为网格索引,并通过空间自相关分析提取邻域特征;同时利用文本挖掘技术对房源描述进行词向量化,构造情感得分与关键词频率特征;对数值型变量则采用标准化与对数变换,以提升模型的线性可解释性。随后,模型构建阶段将以XGBoost为核心算法,采用交叉验证与贝叶斯优化相结合的方式进行超参数搜索,并通过早停机制防止过拟合;在模型训练完成后,将利用SHAP值对特征重要性进行全局与局部解释,并将解释结果以可视化图表形式嵌入系统前端。后端服务实现部分将基于SpringBoot框架搭建RESTful API,采用Spring Security实现权限控制,使用Redis缓存热点查询结果以提升响应速度;同时通过Docker容器化技术实现微服务化部署,并利用Kubernetes进行弹性伸缩。前端可视化展示将采用D3.js与ECharts相结合的技术栈,提供交互式地图、折线图与柱状图等多种视图,支持用户自定义筛选条件、时间窗口与地理范围,并通过WebSocket实现实时数据推送。系统评估与部署阶段将对模型在不同地区与时间段的预测性能进行对比实验,使用均方根误差、平均绝对误差以及R²等指标进行量化评估;同时通过用户体验调查收集前端交互满意度,并根据反馈迭代优化界面布局与交互逻辑。整个研究过程将遵循可复现性原则,所有代码与实验数据均托管于公开仓库,并配备详细的文档说明,以便学术同行进行验证与扩展。
六、需求分析
用户需求方面,系统的主要使用者包括房地产投资者、开发商以及政府规划部门。投资者期望能够获得基于最新交易数据与宏观经济指标的房价预测结果,并对预测结果的置信区间与风险等级进行直观评估,以便在买卖决策中把握时机;开发商则需要系统提供不同区域、不同楼盘类型的价格趋势分析,帮助其制定土地购置、项目定位与定价策略;政府规划部门关注的是整体市场的价格波动与供需平衡,期望通过系统对区域房价进行监测与预警,从而为住房保障政策与宏观调控提供数据支持。所有用户群体均要求系统能够实时更新数据、快速响应查询请求,并通过可视化界面展示预测结果、特征重要性以及不确定性估计,降低对专业技术背景的依赖。此外,用户还需要对模型的可解释性有一定了解,以便在决策过程中解释模型输出与业务逻辑之间的关联。功能需求方面,系统需实现数据采集与清洗模块,支持从公开数据库、爬虫抓取以及外部API获取多源异构数据,并通过ETL流程完成结构化存储;特征工程模块需提供空间编码、时间序列平滑、文本向量化等技术手段,自动生成高质量特征;模型训练与推理模块以XGBoost为核心,支持超参数搜索、早停机制与模型压缩,并通过RESTful API暴露预测接口;解释性模块需集成SHAP值计算,提供全局与局部特征重要性视图;前端可视化模块需实现交互式地图、折线图与柱状图等多种展示形式,支持自定义筛选与时间窗口切换;安全管理模块需实现基于角色的权限控制、数据脱敏与审计日志;性能监控模块需实时记录API响应时间、模型推理耗时与系统资源占用,并提供告警机制;部署与运维模块需支持Docker容器化、Kubernetes弹性伸缩以及持续集成/持续交付流水线,确保系统在多云环境下的高可用性与可扩展性。通过上述功能实现,系统将满足用户对实时、高精度、可解释且易用的房价预测与分析需求。
七、可行性分析
经济可行性方面,系统的开发与运营成本相对可控。首先,所采用的SpringBoot框架与XGBoost算法均为开源技术,避免了昂贵的软件授权费用;其次,数据采集主要依赖政府公开数据库与公开API,可大幅降低数据获取成本;再次,模型训练阶段可利用现有云计算资源,如按需计费的GPU实例,以弹性方式满足训练需求,从而降低前期硬件投入。系统上线后,运营成本主要集中在服务器维护、数据更新与安全审计等方面,这些费用可通过订阅式服务模式分摊至多位用户,形成可持续的收入来源。综合来看,初始投入与长期运营成本相对平衡,且预期收益来自于房地产行业对精准价格预测与决策支持的迫切需求,具备良好的商业化前景。
社会可行性方面,该系统能够为多方利益相关者提供透明、可解释的房价预测结果,从而提升房地产市场的透明度与公平性。投资者通过获取实时价格趋势与风险评估,可更理性地进行资产配置;开发商借助区域价格分析与特征重要性可视化,能够精准定位项目选址与定价策略,降低资金占用风险;政府部门则可利用系统对区域房价波动进行监测,为住房保障政策与宏观调控提供数据依据。系统的可解释性功能满足了公众对算法决策透明度的诉求,有助于缓解因“黑箱”模型导致的社会质疑与不信任。与此同时,系统通过遵循数据隐私与安全合规要求,避免了个人信息泄露风险,进一步增强了社会接受度。
技术可行性方面,系统所依赖的技术组件均已成熟且具有广泛应用案例。SpringBoot框架提供了简洁的微服务开发环境,可快速构建RESTful API,并支持与数据库、缓存、消息队列等组件的无缝集成;XGBoost算法在大规模回归任务中表现出色,具备高效的并行训练与推理能力,能够满足实时预测需求;SHAP值解释方法已被广泛验证为可解释性强且计算效率较高,可直接嵌入后端进行特征重要性评估。前端可视化技术如D3.js与ECharts在数据展示与交互方面具备丰富的组件库,能够实现地图、折线图、柱状图等多种视图。系统整体架构采用容器化与云原生部署,利用Docker与Kubernetes实现弹性伸缩与高可用性,从而降低运维难度并提升系统稳定性。鉴于上述技术成熟度与生态支持,系统的实现技术风险可控,具备较高的技术可行性。
八、功能分析
系统功能模块设计围绕数据获取、特征构造、模型训练与推理、结果解释、服务交付与运维管理等核心环节展开。首先,数据采集与预处理模块负责从政府公开数据库、房地产交易平台以及宏观经济统计源同步抓取原始信息,并通过ETL流程实现结构化存储;在此过程中,模块会对缺失值采用多重插补技术进行填补,对异常值利用箱线图与Z得分方法进行剔除,并对时间序列数据进行季节性分解与平滑处理,以消除周期性波动的干扰。其次,特征工程模块将空间编码技术应用于地理坐标,将其转换为网格索引,并通过空间自相关分析提取邻域特征;同时利用文本挖掘技术对房源描述进行词向量化,构造情感得分与关键词频率特征;对数值型变量则采用标准化与对数变换,以提升模型的线性可解释性。随后,模型训练与推理模块以XGBoost为核心算法,采用交叉验证与贝叶斯优化相结合的方式进行超参数搜索,并通过早停机制防止过拟合;在模型训练完成后,将利用SHAP值对特征重要性进行全局与局部解释,并将解释结果以可视化图表形式嵌入系统前端。后端服务实现部分将基于SpringBoot框架搭建RESTful API,采用Spring Security实现权限控制,使用Redis缓存热点查询结果以提升响应速度;同时通过Docker容器化技术实现微服务化部署,并利用Kubernetes进行弹性伸缩。前端可视化展示将采用D3.js与ECharts相结合的技术栈,提供交互式地图、折线图与柱状图等多种视图,支持用户自定义筛选条件、时间窗口与地理范围,并通过WebSocket实现实时数据推送。安全与访问控制模块负责实现基于角色的权限管理、数据脱敏与审计日志,以满足合规要求。监控与日志模块将实时记录API响应时间、模型推理耗时与系统资源占用,并提供告警机制,确保系统稳定运行。最后,部署与运维模块支持Docker容器化、Kubernetes弹性伸缩以及持续集成/持续交付流水线,保证在多云环境下的高可用性与可扩展性。通过上述模块协同工作,系统能够实现从数据获取到预测结果展示的完整闭环,为房地产行业提供精准、实时且可解释的价格预测服务。
九、数据库设计
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
user_id | 用户编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自动生成主键
username | 用户名 | 50 | VARCHAR(50) NOT NULL UNIQUE | | 唯一用户名
password_hash | 密码哈希值 | 255 | VARCHAR(255) NOT NULL | | 存储加密后的密码
role_id | 角色编号(外键) | 10 | INT UNSIGNED NOT NULL | FK → roles.role_id | 区分管理员与普通用户
created_at | 创建时间 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
property_id | 房源编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自动生成主键
address_line1 | 地址(街道) | 100 | VARCHAR(100) NOT NULL | |
city | 城市名 | 50 | VARCHAR(50) NOT NULL | |
state_province | 州/省份名 | 50 | VARCHAR(50) NOT NULL | |
postal_code | 邮政编码 | 20 | VARCHAR(20) NOT NULL | |
latitude | 纬度坐标(小数) | 10,6 | DECIMAL(10,6) NOT NULL | |
longitude | 经度坐标(小数) | 10,6 | DECIMAL(10,6) NOT NULL | |
listing_date | 上市日期 | 19 | DATE NOT NULL | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
transaction_id | 交易编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自动生成主键
property_id | 房源编号(外键) | 10 | INT UNSIGNED NOT NULL | FK → properties.property_id | 关联房源
sale_price | 销售价格(元) | 12,2 | DECIMAL(12,2) NOT NULL | |
sale_date | 销售日期 | 19 | DATE NOT NULL | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
feature_id | 特征编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自动生成主键
property_id | 房源编号(外键) | 10 | INT UNSIGNED NOT NULL | FK → properties.property_id | 关联房源
feature_name | 特征名称(如面积、卧室数) | 50 | VARCHAR(50) NOT NULL | |
feature_value | 特征值(数值型或文本) | 255 | VARCHAR(255) NOT NULL | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
model_id | 模型编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自动生成主键
model_name | 模型名称(如XGBoost_v1) | 50 | VARCHAR(50) NOT NULL UNIQUE | |
created_at | 创建时间 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |
parameters_json | 超参数配置(JSON) | 5000 | TEXT NOT NULL | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
prediction_id | 预测编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自动生成主键
property_id | 房源编号(外键) | 10 | INT UNSIGNED NOT NULL | FK → properties.property_id | 关联房源
model_id | 模型编号(外键) | 10 | INT UNSIGNED NOT NULL | FK → models.model_id | 使用模型
predicted_price | 预测价格(元) | 12,2 | DECIMAL(12,2) NOT NULL | |
prediction_time | 预测时间戳 | 19 | DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
shap_id | SHAP记录编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自动生成主键
prediction_id | 预测编号(外键) | 10 | INT UNSIGNED NOT NULL | FK → predictions.prediction_id | 关联预测
feature_name | 特征名称(如面积、卧室数) | 50 | VARCHAR(50) NOT NULL | |
shap_value | SHAP值(对预测贡献) | 12,6 | DECIMAL(12,6) NOT NULL | |
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
---|---|---|---|---|---
role_id | 角色编号 | 10 | INT UNSIGNED NOT NULL AUTO_INCREMENT | PK | 自动生成主键
role_name | 角色名称(如管理员、普通用户) | 20 | VARCHAR(20) NOT NULL UNIQUE | |
十、建表语句
CREATE TABLE roles (
role_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
role_name VARCHAR(20) NOT NULL UNIQUE,
PRIMARY KEY (role_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
role_id INT UNSIGNED NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (user_id),
CONSTRAINT fk_users_roles FOREIGN KEY (role_id) REFERENCES roles(role_id) ON UPDATE CASCADE ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE properties (
property_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
address_line1 VARCHAR(100) NOT NULL,
city VARCHAR(50) NOT NULL,
state_province VARCHAR(50) NOT NULL,
postal_code VARCHAR(20) NOT NULL,
latitude DECIMAL(10,6) NOT NULL,
longitude DECIMAL(10,6) NOT NULL,
listing_date DATE NOT NULL,
PRIMARY KEY (property_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE transactions (
transaction_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
property_id INT UNSIGNED NOT NULL,
sale_price DECIMAL(12,2) NOT NULL,
sale_date DATE NOT NULL,
PRIMARY KEY (transaction_id),
CONSTRAINT fk_transactions_properties FOREIGN KEY (property_id) REFERENCES properties(property_id) ON UPDATE CASCADE ON DELETE RESTRICT,
INDEX idx_transactions_property_id (property_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE features (
feature_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
property_id INT UNSIGNED NOT NULL,
feature_name VARCHAR(50) NOT NULL,
feature_value VARCHAR(255) NOT NULL,
PRIMARY KEY (feature_id),
CONSTRAINT fk_features_properties FOREIGN KEY (property_id) REFERENCES properties(property_id) ON UPDATE CASCADE ON DELETE RESTRICT,
INDEX idx_features_property_id (property_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE models (
model_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
model_name VARCHAR(50) NOT NULL UNIQUE,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
parameters_json TEXT NOT NULL,
PRIMARY KEY (model_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE predictions (
prediction_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
property_id INT UNSIGNED NOT NULL,
model_id INT UNSIGNED NOT NULL,
predicted_price DECIMAL(12,2) NOT NULL,
prediction_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (prediction_id),
CONSTRAINT fk_predictions_properties FOREIGN KEY (property_id) REFERENCES properties(property_id) ON UPDATE CASCADE ON DELETE RESTRICT,
CONSTRAINT fk_predictions_models FOREIGN KEY (model_id) REFERENCES models(model_id) ON UPDATE CASCADE ON DELETE RESTRICT,
INDEX idx_predictions_property_id (property_id),
INDEX idx_predictions_model_id (model_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE shap_values (
shap_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
prediction_id INT UNSIGNED NOT NULL,
feature_name VARCHAR(50) NOT NULL,
shap_value DECIMAL(12,6) NOT NULL,
PRIMARY KEY (shap_id),
CONSTRAINT fk_shap_predictions FOREIGN KEY (prediction_id) REFERENCES predictions(prediction_id) ON UPDATE CASCADE ON DELETE RESTRICT,
INDEX idx_shap_prediction_id (prediction_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方👇🏻获取联系方式👇🏻