-
Notifications
You must be signed in to change notification settings - Fork 1
/
后端代码说明.txt
18 lines (14 loc) · 1.33 KB
/
后端代码说明.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
后端说明文档
一、数据说明
我们使用了kaggle上北京房价数据集(地址:https://kaggle.com/ruiqurm/lianjia),该数据集采取自链家网站成交信息。我们对数据进行了清洗,并选取2016年以后的成交信息进行建模。经统计,没有缺漏重点字段、符合我们要求的成交条目数量共133019条。我们将其随机划分为训练数据和测试数据,比例为9:1。
最终,我们的训练数据共119717条,测试数据共13302条。字段数有16个,其中的totalPrice(房价)作为目标值,其他15个字段,包括经纬度、平方数、室数、厅数、厨房数、浴室数、楼层情况、建筑类型、建筑年份、装修情况、建筑结构、有无电梯、是否满五年、是否近地铁,作为模型的输入值。
对原始数据的处理参考house_prepare.py。
二、回归模型说明
影响房价的因素较多,简单的决策树可能不足以构建复杂的回归模型,我们选用随机森林算法。算法使用sklearn库进行编写。首先对数据进行标准化,然后进行训练。在测试集上的均方误差(Mean Square Error)为12188.01。
回归模型的建立过程参考house_reg.py。
三、服务器说明
我们使用tornado库实现了简单的服务器,它会对GET请求做出响应,对传递给服务器的参数进行解析,然后调用回归模型产生预估房价并返回。
具体地,后端程序会将GET请求中的城市、区县、小区信息解析成字符串,调用高德地图的地理编码API获得经纬度,其他字段也会解析成浮点数、整数,最终构建成一个长度为15的列表,输入给回归模型。
服务器的实现参考server.py。
四、运行方法
从kaggle上下载数据集到代码文件同一目录下,然后运行house_prepare.py生成训练数据和测试数据。然后执行python server.py即可开启服务器。