陸紅
摘要:大數(shù)據(jù)分析有很多方法,由于大數(shù)據(jù)的特點、數(shù)據(jù)量大、非結(jié)構(gòu)化、屬性不確定等特點,建立大數(shù)據(jù)分析模型比較困難,本文通過房價大數(shù)據(jù)分析案例,介紹如何通過機器學習構(gòu)建大數(shù)據(jù)分析模型的途徑和方法,文章重點介紹了如何準備大數(shù)據(jù)分析模型的訓練數(shù)據(jù)方法,介紹了房價大數(shù)據(jù)分析模型機器學習算法、機器學習路徑,大數(shù)據(jù)分析模型構(gòu)建方法等,為從事大數(shù)據(jù)分析的研究人員提供一些可借鑒的經(jīng)驗和方法。
關(guān)鍵詞:大數(shù)據(jù);分析模型;房價
中圖分類號:TP399 文獻標識碼:A 文章編號:1007-9416(2017)03-0137-02
1 引言
大數(shù)據(jù)分析首先要建立一個分析模型,分析模型是大數(shù)據(jù)分析的基石,只有先建立了模型才能對大數(shù)據(jù)進行分析。構(gòu)建大數(shù)據(jù)分析模型傳統(tǒng)的方法很難實現(xiàn),大數(shù)據(jù)非結(jié)構(gòu)化、屬性很難預(yù)知,通過數(shù)學、統(tǒng)計學等方法構(gòu)建大數(shù)據(jù)分析模型都比較困難,機器學習是構(gòu)建大數(shù)據(jù)分析模型最有效的方法之一。機器學習通過不斷地學習優(yōu)化、不斷地迭代逼近所要的模型。
2 訓練數(shù)據(jù)準備
機器學習構(gòu)建大數(shù)據(jù)分析模型的方法是通過訓練數(shù)據(jù)將模型訓練出來。從要研究的大數(shù)據(jù)對象中找出訓練集。機器學習分為監(jiān)督學習和非監(jiān)督學習,監(jiān)督學習需要教師,監(jiān)督機器學習的結(jié)果,事先設(shè)定好學習目標,期望的結(jié)果。非監(jiān)督學習的數(shù)據(jù)一般都無標簽,學習結(jié)果事先也無法預(yù)知,通過數(shù)據(jù)可視化等方法觀察學習結(jié)果。
房價大數(shù)據(jù)分析模型機器學習屬于監(jiān)督學習,期望預(yù)測值極大地逼近真實值。首先需要采集房價數(shù)據(jù)作為訓練數(shù)據(jù),然后設(shè)計房價大數(shù)據(jù)分析模型機器學習算法,計算機通過機器學習算法和學習路徑學習訓練數(shù)據(jù),學習目標是預(yù)測的結(jié)果極大地逼近真實數(shù)據(jù),通過反復(fù)迭代,不斷地接近目標,訓練出所希望的模型。
3 數(shù)據(jù)清洗
清洗后的訓練數(shù)據(jù)如下:
間數(shù)(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 房價大數(shù)據(jù)分析模型機器學習算法
機器學習首先要設(shè)計機器學習學習算法,設(shè)計機器學習學習路徑,機器學習解決的問題通常可分為預(yù)測和分類兩類問題。首先我們分析一下要解決的問題是屬于預(yù)測問題還是分類問題,然后選擇相應(yīng)的學習算法,設(shè)計學習路徑,通過訓練數(shù)據(jù)訓練和機器學習構(gòu)建大數(shù)據(jù)分析模型。模型通過訓練數(shù)據(jù)訓練出來以后,對模型進行檢驗,然后不斷進行優(yōu)化,以達到我們所期望的精度。
以下是梯度下降機器學習算法和學習路徑:
首先建立一個估值函數(shù)(模型)如下:
x為自變量(特征參數(shù)),h(x)為應(yīng)變量(房價的估值),希望求出此函數(shù)的系數(shù)θ0、θ1,構(gòu)成一個完整的函數(shù),此函數(shù)就是我們要構(gòu)建的大數(shù)據(jù)分析模型。
我們建立一個成本函數(shù),希望預(yù)測值與真實值的差趨近于0,也就是成本函數(shù)值趨近于0。
J(Θ0, Θ1)=
其中:
X(I)表示向量X中的第i個元素;
Y(I)表示向量Y中的第i個元素;
表示已知的假設(shè)函數(shù);
m為訓練集的數(shù)量;
Gradient Descent梯度下降方法機器學習步驟:
(1)先隨機選定一個初始點;
(2)確定梯度下降方向;
(3)通過實驗確定下降步伐,學習率Learning rate;
(4)通過不斷地遞歸,收斂到極小值;
通過梯度下降法使成本函數(shù)趨于0,在此條件下求得自變量的系數(shù)θ0和θ1,將此θ0和θ1帶入到函數(shù)中得到我們要的模型。
下面是介紹如何運用梯度下降法,經(jīng)過反復(fù)迭代求出θ0和θ1:
梯度下降是通過不停的迭代,最后沿梯度下降到最低點,收斂到一個我們滿意的數(shù)據(jù),誤差趨近于0時迭代結(jié)束,此時的θ0和θ1正是我們要求的函數(shù)自變量的系數(shù),有了θ0和θ1,這個假設(shè)的函數(shù)就建立起來了,這個函數(shù)就是我們要建的大數(shù)據(jù)分析模型。
梯度下降法分為批量梯度下降法和隨機梯度下降法,批量梯度下降法速度較慢,每次迭代都要所有訓練數(shù)據(jù)參與;隨機梯度下降精度差一些,容易在極值周圍震蕩;房價大數(shù)據(jù)分析模型采用的是實時數(shù)據(jù)梯度下降法(Real Time Online Gradient Descent),可以隨著房價的變化隨時修正模型的參數(shù)。
5 構(gòu)建房價大數(shù)據(jù)分析模型
通過數(shù)據(jù)可視化,我們可以看到房價數(shù)據(jù)趨于線性,所以我們采用線性回歸構(gòu)建房價大數(shù)據(jù)分析模型。采用監(jiān)督學習,先給定一個訓練集,根據(jù)這個訓練集學習出一個線性函數(shù),然后檢驗這個函數(shù)訓練的好壞,即此函數(shù)是否足夠擬合訓練集數(shù)據(jù),不斷優(yōu)化模型減少殘差,最大限度地接近真實值。
假設(shè)房價大數(shù)據(jù)分析模型:
y=aX1+bX2
通過梯度下降法,不斷遞歸,最后使假設(shè)值與實際值之差趨近于0,求得此時的模型變量系數(shù)a、b,構(gòu)建線性函數(shù)(房價大數(shù)據(jù)分析模型)。模型通過回歸診斷、交叉驗證不斷進行優(yōu)化,直到誤差達到要求。
以下是采用機器學習算法構(gòu)建的房價大數(shù)據(jù)分析模型,用R語言編寫房價大數(shù)據(jù)分析模型程序如下:
令:a=q1;b=q2;
將訓練數(shù)據(jù)以數(shù)據(jù)框的形式存儲。
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));
構(gòu)造梯度下降算法函數(shù),初始點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');
通過反復(fù)迭代得出估值函數(shù)系數(shù)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)匯總出模型變量系數(shù)。
plot(model2);
通過數(shù)據(jù)可視化檢驗擬合情況,不斷優(yōu)化房價大數(shù)據(jù)分析模型。