房价大数据分析模型构建方法
2017-05-17陆红
陆红
摘要:大数据分析有很多方法,由于大数据的特点、数据量大、非结构化、属性不确定等特点,建立大数据分析模型比较困难,本文通过房价大数据分析案例,介绍如何通过机器学习构建大数据分析模型的途径和方法,文章重点介绍了如何准备大数据分析模型的训练数据方法,介绍了房价大数据分析模型机器学习算法、机器学习路径,大数据分析模型构建方法等,为从事大数据分析的研究人员提供一些可借鉴的经验和方法。
关键词:大数据;分析模型;房价
中图分类号:TP399 文献标识码:A 文章编号:1007-9416(2017)03-0137-02
1 引言
大数据分析首先要建立一个分析模型,分析模型是大数据分析的基石,只有先建立了模型才能对大数据进行分析。构建大数据分析模型传统的方法很难实现,大数据非结构化、属性很难预知,通过数学、统计学等方法构建大数据分析模型都比较困难,机器学习是构建大数据分析模型最有效的方法之一。机器学习通过不断地学习优化、不断地迭代逼近所要的模型。
2 训练数据准备
机器学习构建大数据分析模型的方法是通过训练数据将模型训练出来。从要研究的大数据对象中找出训练集。机器学习分为监督学习和非监督学习,监督学习需要教师,监督机器学习的结果,事先设定好学习目标,期望的结果。非监督学习的数据一般都无标签,学习结果事先也无法预知,通过数据可视化等方法观察学习结果。
房价大数据分析模型机器学习属于监督学习,期望预测值极大地逼近真实值。首先需要采集房价数据作为训练数据,然后设计房价大数据分析模型机器学习算法,计算机通过机器学习算法和学习路径学习训练数据,学习目标是预测的结果极大地逼近真实数据,通过反复迭代,不断地接近目标,训练出所希望的模型。
3 数据清洗
清洗后的训练数据如下:
间数(x1) x1 2 x1 2 x1 3 x1 3 x1 3 x1 3 x1 2 x1 2 x1 2 x1 3 x1 3 x1 3 x1 2 x1 2 x1 1 x1 3 x1 3 x1 3 x1 3 x1 1 x1 2 x1 2 x1 2 x1 2 x1 2 x1 3 x1 2 x1 3 x1 2 x1 2 x1 3 x1 2 x1 2 x1 3 x1 3 x1 3 x1 2 x1 3 x1 2 x1 1 x1 2 x1 2 x1 2 x1 2
面積(x2) x2 126 x2 99 x2 134 x2 137 x2 135 x2 138 x2 104 x2 99 x2 105 x2 126 x2 112 x2 116 x2 88 x2 90 x2 79 x2 120 x2 155 x2 158 x2 161 x2 66 x2 108 x2 88 x2 111 x2 103 x2 104 x2 131 x2 105 x2 130 x2 102 x2 105 x2 148 x2 98 x2 100 x2 128 x2 110 x2 101 x2 121 x2 127 x2 103 x2 67 x2 78 x2 71 x2 81 x2 77
价格(y1) y1 460 y1 425 y1 515 y1 580 y1 630 y1 600 y1 425 y1 439 y1 435 y1 608 y1 460 y1 460 y1 410 y1 380 y1 340 y1 520 y1 685 y1 680 y1 630 y1 328 y1 532 y1 405 y1 495 y1 470 y1 480 y1 690 y1 480 y1 690 y1 462 y1 495 y1 540 y1 440 y1 510 y1 599 y1 395 y1 450 y1 455 y1 595 y1 403 y1 295 y1 315 y1 345 y1 355 y1 335
4 房价大数据分析模型机器学习算法
机器学习首先要设计机器学习学习算法,设计机器学习学习路径,机器学习解决的问题通常可分为预测和分类两类问题。首先我们分析一下要解决的问题是属于预测问题还是分类问题,然后选择相应的学习算法,设计学习路径,通过训练数据训练和机器学习构建大数据分析模型。模型通过训练数据训练出来以后,对模型进行检验,然后不断进行优化,以达到我们所期望的精度。
以下是梯度下降机器学习算法和学习路径:
首先建立一个估值函数(模型)如下:
x为自变量(特征参数),h(x)为应变量(房价的估值),希望求出此函数的系数θ0、θ1,构成一个完整的函数,此函数就是我们要构建的大数据分析模型。
我们建立一个成本函数,希望预测值与真实值的差趋近于0,也就是成本函数值趋近于0。
J(Θ0, Θ1)=
其中:
X(I)表示向量X中的第i个元素;
Y(I)表示向量Y中的第i个元素;
表示已知的假设函数;
m为训练集的数量;
Gradient Descent梯度下降方法机器学习步骤:
(1)先随机选定一个初始点;
(2)确定梯度下降方向;
(3)通过实验确定下降步伐,学习率Learning rate;
(4)通过不断地递归,收敛到极小值;
通过梯度下降法使成本函数趋于0,在此条件下求得自变量的系数θ0和θ1,将此θ0和θ1带入到函数中得到我们要的模型。
下面是介绍如何运用梯度下降法,经过反复迭代求出θ0和θ1:
梯度下降是通过不停的迭代,最后沿梯度下降到最低点,收敛到一个我们满意的数据,误差趋近于0时迭代结束,此时的θ0和θ1正是我们要求的函数自变量的系数,有了θ0和θ1,这个假设的函数就建立起来了,这个函数就是我们要建的大数据分析模型。
梯度下降法分为批量梯度下降法和随机梯度下降法,批量梯度下降法速度较慢,每次迭代都要所有训练数据参与;随机梯度下降精度差一些,容易在极值周围震荡;房价大数据分析模型采用的是实时数据梯度下降法(Real Time Online Gradient Descent),可以随着房价的变化随时修正模型的参数。
5 构建房价大数据分析模型
通过数据可视化,我们可以看到房价数据趋于线性,所以我们采用线性回归构建房价大数据分析模型。采用监督学习,先给定一个训练集,根据这个训练集学习出一个线性函数,然后检验这个函数训练的好坏,即此函数是否足够拟合训练集数据,不断优化模型减少残差,最大限度地接近真实值。
假设房价大数据分析模型:
y=aX1+bX2
通过梯度下降法,不断递归,最后使假设值与实际值之差趋近于0,求得此时的模型变量系数a、b,构建线性函数(房价大数据分析模型)。模型通过回归诊断、交叉验证不断进行优化,直到误差达到要求。
以下是采用机器学习算法构建的房价大数据分析模型,用R语言编写房价大数据分析模型程序如下:
令:a=q1;b=q2;
将训练数据以数据框的形式存储。
pricedata<-data.frame(
x1<-c(2,2,3,3,3,3,2,2,2,3,3,3,3,2,2,1,3,3,3,3,1,2,2,2,2,2,3,2,3,2,2,3,2,2,3,3,3,2,3,2,1,2,2,2,2),
x2<-c(126, 99, 134 , 137 , 135 , 138 , 104 , 99 , 105 , 105 , 126 , 112 , 116 , 88 , 90 , 79 , 120 , 155 , 158 , 161 , 66 , 108 , 88 , 111 , 103 , 104 , 131 , 105 , 130 , 102 , 105 , 148 , 98 , 100 , 128 , 110 , 101 , 121 , 103 , 67 , 78 , 71 , 81 , 77),
y<-c(460, 425, 515 , 580 , 630 , 600 , 425 , 439 , 435 , 435 , 608 , 460 , 460 , 410 , 380 , 340 , 520 , 685 , 680 , 630 , 328 , 532 , 405 , 495 , 470 , 480 , 690 , 480 , 690 , 462 , 495 , 540 , 440 , 510 , 599 , 395 , 450 , 595 , 403 , 295 , 315 , 345 , 355 , 335));
構造梯度下降算法函数,初始点q1=0、q2=0;下降速率d=0.0001。
grd2<-function(){
q1=0;
q2=0;
d=0.0001;
i=0;
m=9;
plot(y~x1+x2,data=pricedata,pch=16,col='red');
通过反复迭代得出估值函数系数q1、q2。
while (i<100000)
{
i=i+1;
q1=q1-d/m*(q1*x1+q2*x2-y)*x1;
q2=q2-d/m*(q1*x1+q2*x2-y)*x2;
}
return(q1);
return(q2);
}
grd2();
model2<-grd2();
summary(model2);
通过summary(model2)汇总出模型变量系数。
plot(model2);
通过数据可视化检验拟合情况,不断优化房价大数据分析模型。