PythonAI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

本篇文章給大家分享的是有關(guān)Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

專業(yè)從事企業(yè)網(wǎng)站建設(shè)和網(wǎng)站設(shè)計服務(wù),包括網(wǎng)站建設(shè)、域名注冊、網(wǎng)絡(luò)空間、企業(yè)郵箱、微信公眾號開發(fā)、微信支付寶微信平臺小程序開發(fā)、app軟件開發(fā)公司、軟件開發(fā)、等服務(wù)。公司始終通過不懈的努力和以更高的目標(biāo)來要求自己,在不斷完善自身管理模式和提高技術(shù)研發(fā)能力的同時,大力倡導(dǎo)推行新經(jīng)濟(jì)品牌戰(zhàn)略,促進(jìn)互聯(lián)網(wǎng)事業(yè)的發(fā)展。

一、回歸預(yù)測

今天我們來具體了解一下使用機(jī)器學(xué)習(xí)算法進(jìn)行回歸預(yù)測。

回歸預(yù)測主要用于預(yù)測與對象關(guān)聯(lián)的連續(xù)值屬性,得到數(shù)值型的預(yù)測數(shù)據(jù)?;貧w預(yù)測的應(yīng)用場景有各類的價格預(yù)測、相關(guān)性的反應(yīng)預(yù)測等。

下面,我們就使用sklearn模塊,以一個sklearn中集成的波士頓房價數(shù)據(jù)集來演示如何進(jìn)行回歸預(yù)測。

二、波士頓房價預(yù)測

1、引入數(shù)據(jù)集

在sklearn中內(nèi)置的數(shù)據(jù)集都位于datasets子模塊下,我們可以直接進(jìn)行導(dǎo)入:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

導(dǎo)入之后,看看數(shù)據(jù)集中的內(nèi)容:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

其中有五個鍵,從字面意思上理解,可以發(fā)現(xiàn)data是數(shù)據(jù)集中所有的數(shù)據(jù)特征,DESCR是數(shù)據(jù)集的描述信息,target是數(shù)據(jù)集特征對應(yīng)的目標(biāo)值,feature_name則是數(shù)據(jù)特征的名稱。

我們先來看看數(shù)據(jù)特征的名稱:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

可以發(fā)現(xiàn)數(shù)據(jù)集中有13個特征,每個特征具體是什么意思,倒不清楚,我們可以在DESCR描述中找到具體意思:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

最后可以知道每個數(shù)據(jù)特征的含義如下:

  • CRIM:人均犯罪率 ;

  • ZN:住宅用地超過兩萬五千平方英尺的比例 ;

  • INDUS:城鎮(zhèn)的非零售營業(yè)比例;

  • CHAS:河流分界;

  • NOX:一氧化氮濃度 ;

  • RM:住宅平均房間數(shù);

  • AGE:1940年之前建造的房屋業(yè)主比例;

  • DIS:距離波士頓五個就業(yè)中心的加權(quán)距離;

  • RAD:徑向公路的可達(dá)指數(shù);

  • TAX :每一萬美元財產(chǎn)的全額財產(chǎn)稅率

  • PTRATIO :城鄉(xiāng)教師比例;

  • B :黑人比例

  • LSTAT :低層人群比例

  • MEDV :房屋價格中值

再來看看具體的數(shù)據(jù)特征和目標(biāo)數(shù)據(jù)值:


數(shù)據(jù)特征形狀:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

數(shù)據(jù)特征概覽:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

數(shù)據(jù)特征一共有506行,13列,正好對應(yīng)13個數(shù)據(jù)特征。而目標(biāo)數(shù)據(jù)值的也正好是506個:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

相當(dāng)于是已經(jīng)處理好的數(shù)據(jù)了。

但是對于初學(xué)者來說,這樣處理好的數(shù)據(jù)看起來不是太直觀,我們使用Pandas將其還原為DataFrame的形式,可以直觀地看出這個數(shù)據(jù)集到底是什么樣的:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

對于熟悉使用pandas的同學(xué)來說,這樣看這個數(shù)據(jù)集是不是親切多了。

好了,我們可以直接進(jìn)行下一步。

2、分割訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)

為了檢驗我們創(chuàng)建和訓(xùn)練好的機(jī)器學(xué)習(xí)模型的效果,將數(shù)據(jù)集分割為訓(xùn)練集和測試集是必須的。

而在sklearn中,也有一個專門的接口方法用于分割數(shù)據(jù)集的訓(xùn)練集和測試集——train_test_split,我們首先導(dǎo)入它:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

然后將我們的數(shù)據(jù)集data傳入,并設(shè)置測試集的比例為15%:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

3、選擇一個回歸算法估計器

在sklearn中,所有的機(jī)器學(xué)習(xí)算法都以“估計器”的形式來呈現(xiàn),每一個估計器都是一個類,機(jī)器學(xué)習(xí)模型通過實例化一個估計器的類來進(jìn)行創(chuàng)建。比如線性回歸的算法估計器:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

每一個算法估計器,無論是監(jiān)督學(xué)習(xí)算法還是非監(jiān)督學(xué)習(xí)算法,都擁有一個fit()方法,用于接收訓(xùn)練數(shù)據(jù)集來訓(xùn)練數(shù)據(jù),比如這樣:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

同時每一個算法估計器都有用一個predict()方法,用于接收數(shù)據(jù)來進(jìn)行預(yù)測,比如這樣:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

在sklearn中,各類機(jī)器學(xué)習(xí)算法的API設(shè)計根據(jù)不同的用途的算法進(jìn)行劃分,我們可以方便地調(diào)用自己想要的算法,每一個監(jiān)督學(xué)習(xí)算法,都由一個單獨的子模塊構(gòu)成,其下包含算法的具體類,比如廣義的線性回歸算法:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

其中根據(jù)用途,有的算法 可細(xì)分為用于回歸的估計器和用于分類的估計器。

在此,我們選擇隨機(jī)森林算法的用于回歸的估計器:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

首先,導(dǎo)入算法估計器:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

接著,實例化隨機(jī)森林回歸估計器,設(shè)置算法的參數(shù)并將訓(xùn)練集傳入進(jìn)行訓(xùn)練:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

訓(xùn)練好模型之后,再使用predict()方法對訓(xùn)練集進(jìn)行預(yù)測:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

這樣,我們就獲得了使用隨機(jī)森林回歸模型對測試集進(jìn)行預(yù)測的數(shù)據(jù)了,其為一個一維數(shù)組,我們可以直接打印出來看到:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

還記得我們分割訓(xùn)練測試集的時候,有過一個y_test的數(shù)組吧?它是測試集x_test數(shù)據(jù)特征對應(yīng)正確的房價結(jié)果,我們也來看看其數(shù)據(jù):

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

如何比較正確數(shù)組和預(yù)測出來的數(shù)組的值的正確度呢?一個比較蠢的方法是通過遍歷這兩個數(shù)組進(jìn)行對比,查看其差值:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

如果測試數(shù)據(jù)集少的話,這樣來比較似乎工作量還不大,要是測試集很大那就沒辦法了。幸而,sklearn中也提供了對模型的評估方法,所有的評估方法都集成在sklearn.metrics子模塊中。針對回歸模型,我們可以使用平均絕對誤差MAE和均方差MSE以及R2分?jǐn)?shù)來對回歸模型評估:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

然后在評估方法中傳入預(yù)測數(shù)組和正確數(shù)組:

Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價

最終得到了我們的平均絕對誤差值、均方差值和R2分?jǐn)?shù)。其中,R2分?jǐn)?shù)理論最佳值為1,平均絕對誤差理論最佳值為0.0,均方差理論最佳值也為0.0.

嗯,這個機(jī)器學(xué)習(xí)隨機(jī)森林回歸模型的效果如何?大家自己評估,也可以自己調(diào)用其他的回歸模型來測試,看看哪個算法對這個數(shù)據(jù)集的預(yù)測效果較好。

以上就是Python AI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:PythonAI中如何使用機(jī)器學(xué)習(xí)回歸模型預(yù)測房價
網(wǎng)站鏈接:http://bm7419.com/article22/igcccc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、外貿(mào)建站網(wǎng)站內(nèi)鏈、微信小程序、服務(wù)器托管、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站