江门职业技术学院 郭亚东
信息科技创新应用赋能产业,促进社会数字化发展,建设数字社会是“十四五”规划重点说明的内容。大数据、机器学习算法、人工智能的创新应用是促进传统产业与数字技术融合的突破口。住房作为百姓重要资产,合理的房价关乎人民福祉,是保持经济健康稳定发展的重中之重。关于房价影响因素分析、房价预测方面的研究开展的比较早,但多侧重于理论研究,国内房屋交易平台提供的小区均价参考价值有限。本文重点研究大数据、人工智能在房价预测场景的落地应用,以市场房屋数据为蓝本,经过数据清洗、评估、提取、分析处理形成数据集,基于AdaBoost算法拟合,使用分布式系统部署,公布HTTP API方式提供服务。
基于AdaBoost算法的房价预测服务平台按照分层设计,分别是对外接入层、标准算法层、并行平台层、基础资源层,层间功能划分清晰不耦合,便于模块化开发。公共组件模块作为平台支撑贯穿各层次,为平台提供日志监控、权限控制、集群管理和环境切换方法,增强系统稳定性和易用性。系统架构如图1所示。
图1 系统架构
对外接入层用于公布房价预测服务平台访问方式,HTTP通信协议简单易用,拥有较高的跨平台特性和通用性,因此对外接入层采用HTTP API方式提供服务,依靠Authorization Header传递授权Token,实现鉴权。依据访问压力动态调整集群规模,提高节点使用率,有效控制成本。
标准算法层研究并实现房价预测模型核心算法,获取市场房屋数据后,通过数据清洗检查数据一致性,处理无效值、缺失值情况数据;应用数据评估进行数据集主成分分析得到数据集主要特征分量,将数据集映射到K维上完成数据提取;将数据集划分为训练集和测试集输入到模型算法模块实现最优模型拟合。对类别性特征应用One-Hot Encoding进行编码,使用GridSearchCV算法调参获取AdaBoostRegressor模型最优参数,并持久化保存。
并行平台层为房价预测模型部署落地提供开发、运营、管理服务,使用Flask搭建HTTP API服务框架,通过Docker安装分布式镜像实现标准算法层服务模型弹性部署,应用MongoDB创建房屋数据非关系型数据库,用来保存结构复杂的房屋数据。
基础资源层为上层提供所需的存储和计算等资源,通过远程Internet进行管理,保障服务快速部署和平台资源按需分配。
经过对比多种算法的评估性能和稳定性后选择AdaBoostRegressor算法作为核心算法,AdaBoost算法是最具代表的提升(Boosting)算法,其中心思想是经过多次迭代得到n个弱学习器,最后将n个弱学习器通过集合测量整合成强学习器。在房价预测模型中算法训练过程如图2所示,输入n_estimators、learning_rate、learning_rate参数集,使用GirdSearchCV算法遍历参数获取最优参数组合,模型性能评估指标选择R2_Score,一次参数组合性能评估中,第i次迭代输出弱学习器Gi(x),第i+1次训练调整样本权重使得弱学习器i中误差率高的样本在i+1弱学习器中得到重视,以此类推完成每次迭代。完成训练后持久化最优模型供房价预测服务平台部署使用。
图2 AdaBoost算法训练过程
房屋数据集按照城市进行分类,避免因城市房屋数量和价格分布不平衡引起误差,比如使用一个模型训练评估经济发达地区与欠发达地区房屋数据集,数据量和价格区间的不平衡会降低模型的预测性能。图3为各个城市最优模型调参过程R2_Score变化情况,横轴代表n_estimators,纵轴代表R2_Score,实线表示训练集,虚线表示测试集,图中标注了最优模型参数点。
图3 模型训练过程R2_Score变化
AdaBoostRegressor算法发布提供服务,使用容器云平台技术实现。首先需要使用Docker技术构建服务环境镜像。将镜像推送到远程仓库中,便于平台运行实例规模扩容时自动化创建实例。集群管理采用开源Kubernetes系统实现,使用ClusterAutoScaler扩展实现集群缩容和扩容,配置定期检测任务每20s检查节点资源利用率,长时间低于50%时自动停止资源所在实例,在剩余节点间完成调度提供服务,实现缩容。当资源紧缺时,自动触发CloudProvider服务接口使用远程镜像创建新的节点,实现扩容。将模型训练过程构建为镜像发布到远程仓库,在Kubernetes中配置定期任务,考虑到房价在短时间内不会出现剧烈震荡,任务配置为按月触发,定期使用市场房屋数据训练模型,更新最优模型参数,从而达到房价预测服务平台按照市场变化自动更新。在发生特殊情况比如城市建设规划、周边配套升级时也可以采用手动触发的方式执行计算更新模型参数。部署完成后通过接口访问返回数据如图4所示。
图4 服务访问响应
基于AdaBoost算法的房价预测服务平台设计方案合理实现了人工智能在房价预测场景下的落地应用。设计并实现数据处理流程完成市场房屋数据的清洗、评估、主成分分析;完成使用GridSearchCV搜索AdaBoostRegressor模型最优参数,数据集按城市分类,做到一城市一模型;结合Docker容器技术构建房价预测模型服务镜像,使用Kubernetes实现云平台集群管理。部署完成后使用平台公布的HTTP API接口进行了访问测试,达到设计要求。系统架构设计对大数据、人工智能理论研究落地提供服务方面有重要意义。未来深入研究侧重两个方面,第一是提升模型预测准确度,第二是降低部署方案与算法耦合度,提升方案自动化成分,简化操作步骤,增加部署方案通用性适应多种应用场景。