国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用線性回歸構(gòu)建波士頓房價預(yù)測模型

這篇具有很好參考價值的文章主要介紹了使用線性回歸構(gòu)建波士頓房價預(yù)測模型。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

使用線性回歸構(gòu)建波士頓房價預(yù)測模型

描述

波士頓房價數(shù)據(jù)集統(tǒng)計了波士頓地區(qū)506套房屋的特征以及它們的成交價格,這些特征包括周邊犯罪率、房間數(shù)量、房屋是否靠河、交通便利性、空氣質(zhì)量、房產(chǎn)稅率、社區(qū)師生比例(即教育水平)、周邊低收入人口比例等 。我們的任務(wù)是根據(jù)上述數(shù)據(jù)集建立模型,能夠預(yù)測房屋價格及其走勢。

本任務(wù)涉及的主要實踐內(nèi)容:

1、 線性回歸預(yù)測模型的構(gòu)建

2、 模型的預(yù)測與評估

3、 使用matplotlib繪制房價預(yù)測曲線

源碼下載

環(huán)境

  • 操作系統(tǒng):Windows 10、Ubuntu18.04

  • 工具軟件:Anaconda3 2019、Python3.7

  • 硬件環(huán)境:無特殊要求

  • 依賴庫列表

    matplotlib   	3.3.4
    numpy 			1.19.5
    pandas			1.1.5
    scikit-learn	0.24.2
    mglearn         0.1.9
    

分析

任務(wù)的輸出(房價)是個連續(xù)值,因此這是一個回歸問題,算法的目的是尋找房屋的特征數(shù)據(jù)和房價之間的規(guī)律(即回歸函數(shù))。

本任務(wù)涉及以下幾個環(huán)節(jié):

a)加載、查看波士頓房價數(shù)據(jù)集

b)將數(shù)據(jù)拆分為訓(xùn)練集與測試集

d)構(gòu)建線性回歸模型,擬合訓(xùn)練數(shù)據(jù)、

e)預(yù)測房價

f)評估模型

g)利用Matplotlib生成房價預(yù)測走勢曲線

實施

1、加載、查看波士頓房價數(shù)據(jù)集

from sklearn.datasets import load_boston # 引入load_boston函數(shù)
from sklearn.model_selection import train_test_split # 引入數(shù)據(jù)集拆分函數(shù)
from sklearn.linear_model import LinearRegression # 引入LinearRegression類

# 加載boston數(shù)據(jù)集
boston = load_boston()
print(boston.keys()) # 查看boston數(shù)據(jù)集的組成
print(boston.data.shape) # 查看輸入數(shù)據(jù)的形狀-(506套房屋數(shù)據(jù),每條數(shù)據(jù)包含13個特征值)
print(boston.target.shape) # 查看標(biāo)簽數(shù)組的形狀-(506套房屋的成交價格)
print(boston.feature_names) # 查看特征名稱(房屋的13個特征名稱)

輸出結(jié)果:

dict_keys(['data', 'target', 'feature_names', 'DESCR', 'filename'])
(506, 13)
(506,)
['CRIM' 'ZN' 'INDUS' 'CHAS' 'NOX' 'RM' 'AGE' 'DIS' 'RAD' 'TAX' 'PTRATIO'
 'B' 'LSTAT']

通過keys()函數(shù)可以查看數(shù)據(jù)集中有哪些Keys(即數(shù)據(jù)項),依次查看其數(shù)據(jù)項。

通過觀察,我們可以看到,波士頓數(shù)據(jù)集的特征數(shù)據(jù)(data數(shù)組)包含506套房屋的數(shù)據(jù),有“犯罪率”、“房間數(shù)量”、“房屋年齡”、“師生比”等13個特征值,這506套房屋對應(yīng)的成交價格(即數(shù)據(jù)的標(biāo)簽)存放在target數(shù)組中。我們的任務(wù)是基于這506套房屋的交易數(shù)據(jù)建立一個回歸模型,能夠?qū)Σㄊ款D地區(qū)的房價數(shù)據(jù)進(jìn)行預(yù)測。(即尋找房屋的特征與房價之間的線性規(guī)律)

2、數(shù)據(jù)集拆分

# 將data和target隨機(jī)拆分為訓(xùn)練集和測試集(test_size=0.25代表25%的數(shù)據(jù)作為測試集,75%為訓(xùn)練集)
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, 
                                                    test_size=0.25,  random_state=0)
print(X_train.shape, X_test.shape) # 查看拆分結(jié)果
print(y_train.shape, y_test.shape)

輸出結(jié)果:

(379, 13) (127, 13)
(379,) (127,) # 379+127=506

通過scikit-learn中的train_test_split函數(shù)將數(shù)據(jù)集隨機(jī)拆分成訓(xùn)練集與測試集。注意掌握train_test_split函數(shù)的參數(shù)含義及返回值定義。另外,在機(jī)器學(xué)習(xí)中,一般用大寫X_表示輸入數(shù)據(jù)(即特征數(shù)據(jù)),小寫的y_表示輸出數(shù)據(jù)(即標(biāo)簽)。

3、創(chuàng)建線性回歸模型,擬合訓(xùn)練數(shù)據(jù)

# 創(chuàng)建模型
model = LinearRegression()

# 擬合訓(xùn)練數(shù)據(jù)(即將特征數(shù)據(jù)和標(biāo)簽數(shù)據(jù)交給模型去訓(xùn)練)
model.fit(X_train, y_train)

# 注意:上面兩步也可以合并寫成這樣
# model = LinearRegression().fit(X_train, y_train)

注意:Scikit-learn中所有模型的使用都是同樣的過程。因此,學(xué)習(xí)機(jī)器學(xué)習(xí)最重要的是在熟悉模型的思想原理、參數(shù)及優(yōu)缺點的前提下,根據(jù)任務(wù)選擇不同的模型來實現(xiàn)。

4、使用模型預(yù)測房屋價格

import numpy as np

# 預(yù)測測試集的輸出(即測試集中房屋的房價)
y_pred = model.predict(X_test) 
print(y_pred[:10])# 預(yù)測前10套房屋的價格

# 將預(yù)測結(jié)果與實際價格做對比
print('\n預(yù)測價格:', np.round(y_pred[:10])) # np.round()-四舍五入取整
print('實際價格:', np.round(y_test[:10]))

輸出結(jié)果:

[10.92635315 34.36995076 30.80593435 43.33525222 19.107834   18.8326957
 22.14409312 20.47370887 36.85094144 17.84471519]

預(yù)測價格: [11. 34. 31. 43. 19. 19. 22. 20. 37. 18.]
實際價格: [16. 44. 24. 50. 20. 20. 17. 22. 42. 13.]

在Scikit-learn中,模型的預(yù)測使用predict方法,但僅看預(yù)測結(jié)果我們無法得知模型的準(zhǔn)確率,所以還需要進(jìn)行模型的準(zhǔn)確性評估。另外,我們還會使用Matplotlib繪圖,將房價預(yù)測曲線與實際房價曲線做對比,結(jié)果一目了然。(Matplotlib是機(jī)器學(xué)習(xí)中不可或缺的可視化利器)

5、評估模型

# 使用score方法評估模型的成績
train_score = model.score(X_train, y_train) # 獲得模型在訓(xùn)練集上的成績
test_score = model.score(X_test, y_test) # 獲得模型在測試集上的成績
print('Train set score:', train_score)
print('Test set score:', test_score)

輸出結(jié)果:

Train set score: 0.7697699488741149
Test set score: 0.6354638433202116

Scikit-learn中,模型的評估使用score方法,參數(shù)1為輸入特征數(shù)據(jù),參數(shù)2為標(biāo)簽(即實際房價)。本任務(wù)沒有對數(shù)據(jù)進(jìn)行預(yù)處理,經(jīng)過預(yù)處理后模型的準(zhǔn)確性還會有所提高。數(shù)據(jù)預(yù)處理(縮放)會有一個專門的章節(jié)講述,屆時我們會做個對比。

6、使用Matplotlib生成房價預(yù)測走勢曲線

import matplotlib.pyplot as plt

plt.figure(figsize=(10, 4))  # 設(shè)置畫板尺寸
plt.rcParams['font.sans-serif'] = 'FangSong' # 設(shè)置中文字體
plt.title('波士頓房價預(yù)測曲線與實際曲線對比圖', fontsize=15)
x = range(len(y_test)) # x軸數(shù)據(jù)

plt.plot(x, y_test, color='r', label='實際價格') # 實際價格曲線
plt.plot(x, y_pred, color='g', ls='--', label='預(yù)測價格') # 預(yù)測價格曲線
plt.legend(fontsize=12, loc=1) # 顯示圖例
plt.show()

顯示結(jié)果:
使用線性回歸構(gòu)建波士頓房價預(yù)測模型

7、使用嶺回歸(Ridge)建模

LinearRegression(標(biāo)準(zhǔn)線性回歸)、Ridge、Lasso都在sklearn.linear_model模塊中。Ridge和Lasso回歸是在標(biāo)準(zhǔn)線性回歸函數(shù)中加入正則化項,以降低過擬合現(xiàn)象。

from sklearn.datasets import load_boston # 引入load_boston函數(shù)
from sklearn.model_selection import train_test_split # 引入數(shù)據(jù)集拆分函數(shù)
from sklearn.linear_model import Ridge # 引入Ridge模型

# 加載boston數(shù)據(jù)集
boston = load_boston()

# 拆分?jǐn)?shù)據(jù)集
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, 
                                                    test_size=0.25, random_state=66)
# 構(gòu)建模型
model = Ridge(alpha=10).fit(X_train, y_train)

# 評估模型
train_score = model.score(X_train, y_train)
test_score = model.score(X_test, y_test)

print('train score:{:.2f}'.format(train_score), '\ntest  score:{:.2f}'.format(test_score))

輸出結(jié)果:文章來源地址http://www.zghlxwxcb.cn/news/detail-413095.html

train score:0.70 
test  score:0.81

到了這里,關(guān)于使用線性回歸構(gòu)建波士頓房價預(yù)測模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 機(jī)器學(xué)習(xí)(線性回歸實訓(xùn))------波士頓房價

    機(jī)器學(xué)習(xí)(線性回歸實訓(xùn))------波士頓房價

    1.機(jī)器學(xué)習(xí) 機(jī)器學(xué)習(xí)是人工智能 (AI)?和計算機(jī)科學(xué)的分支,專注于使用數(shù)據(jù)和算法來模仿人類學(xué)習(xí)的方式,逐漸提高其準(zhǔn)確性。機(jī)器學(xué)習(xí)是不斷成長的數(shù)據(jù)科學(xué)領(lǐng)域的重要組成部分。 通過使用統(tǒng)計方法,對算法進(jìn)行訓(xùn)練,以進(jìn)行分類或預(yù)測,揭示數(shù)據(jù)挖掘項目中的關(guān)鍵洞察

    2024年02月06日
    瀏覽(26)
  • 機(jī)器學(xué)習(xí)---使用 TensorFlow 構(gòu)建神經(jīng)網(wǎng)絡(luò)模型預(yù)測波士頓房價和鳶尾花數(shù)據(jù)集分類

    機(jī)器學(xué)習(xí)---使用 TensorFlow 構(gòu)建神經(jīng)網(wǎng)絡(luò)模型預(yù)測波士頓房價和鳶尾花數(shù)據(jù)集分類

    1. 預(yù)測波士頓房價 1.1 導(dǎo)包 最后一行設(shè)置了TensorFlow日志的詳細(xì)程度: tf.logging.DEBUG :最詳細(xì)的日志級別,用于記錄調(diào)試信息。 tf.logging.INFO :用于記錄一般的信息性消息,比如訓(xùn)練過程中的指標(biāo)和進(jìn)度。 tf.logging.WARN :用于記錄警告消息,表示可能存在潛在問題,但不會導(dǎo)致

    2024年02月08日
    瀏覽(24)
  • 多元線性回歸的python代碼實現(xiàn)(基于sklearn的波士頓房價boston數(shù)據(jù)集為例)

    基于sklearn自帶數(shù)據(jù)集波士頓房價數(shù)據(jù)集進(jìn)行多元線性回歸算法代碼實現(xiàn),其數(shù)據(jù)集包括13個特征向量,共計506個樣本集。 本文代碼實現(xiàn)步驟如下: 1. 獲取數(shù)據(jù)集 2. 數(shù)據(jù)集切分,老規(guī)矩,80%訓(xùn)練,20%測試 3. 數(shù)據(jù)預(yù)處理(本用例嘗試過歸一化處理,但發(fā)現(xiàn)效果不好,不是每一個

    2024年02月06日
    瀏覽(21)
  • python 波士頓房價預(yù)測

    python 波士頓房價預(yù)測

    數(shù)據(jù)集地址:Index of /ml/machine-learning-databases/housing (uci.edu) 數(shù)據(jù)集中共有506條樣本數(shù)據(jù),每條樣本包含了13個影響房價的特征。 數(shù)據(jù)集格式 np.fromfile()? 讀取數(shù)據(jù)沒有數(shù)據(jù)類型和數(shù)據(jù)的形狀。所以這里使用了data.reshape()重新變換成原始的形狀。 (7084,) (506, 14) (14,) [6.320e-03 1.800e+

    2023年04月08日
    瀏覽(26)
  • 基于回歸分析的波士頓房價分析

    基于回歸分析的波士頓房價分析

    項目實現(xiàn)步驟: 1.項目結(jié)構(gòu) 2.處理數(shù)據(jù) 3.處理繪圖 4.對數(shù)據(jù)進(jìn)行分析 5.結(jié)果展示 一.項目結(jié)構(gòu) 二.處理數(shù)據(jù) 使用sklearn的datasets時,對應(yīng)的波士頓房價數(shù)據(jù)已經(jīng)被“移除”,在獲取數(shù)據(jù)時,會出現(xiàn) ,此時,在該提示的下方會有相關(guān)的解決方法 不建議使用提供的方法,對應(yīng)方法的

    2024年02月09日
    瀏覽(18)
  • 使用飛槳實現(xiàn)的第一個AI項目——波士頓的房價預(yù)測

    使用飛槳實現(xiàn)的第一個AI項目——波士頓的房價預(yù)測

    part1.首先引入相應(yīng)的函數(shù)庫: 值得說明的地方: (1)首先,numpy是一個python庫,主要用于提供線性代數(shù)中的矩陣或者多維數(shù)組的運算函數(shù),利用import numpy as np引入numpy,并將np作為它的別名 part2.(一步步慢慢來,從0到1,只要突破了,就會有1到100的發(fā)生,所以,慢慢來)下面

    2024年02月11日
    瀏覽(20)
  • python-機(jī)器學(xué)習(xí)-波士頓房價回歸分析

    python-機(jī)器學(xué)習(xí)-波士頓房價回歸分析

    ????????以波士頓房價數(shù)據(jù)集為對象,理解數(shù)據(jù)和認(rèn)識數(shù)據(jù),掌握 梯度下降法 和 回歸分析 的初步方法,掌握 模型正則化 的一般方法,對回歸分析的結(jié)果解讀。 ????????波士頓房價數(shù)據(jù)集是20世紀(jì)70年代中期波士頓郊區(qū)房價的中位數(shù),統(tǒng)計了當(dāng)時城市的13個指標(biāo)與房價

    2024年02月06日
    瀏覽(21)
  • paddle實現(xiàn)波士頓房價預(yù)測任務(wù)

    要點: 參考官方案例 飛槳PaddlePaddle-源于產(chǎn)業(yè)實踐的開源深度學(xué)習(xí)平臺 1 加載飛槳框架的相關(guān)類庫 飛槳支持兩種深度學(xué)習(xí)建模編寫方式,更方便調(diào)試的動態(tài)圖模式和性能更好并便于部署的靜態(tài)圖模式。 動態(tài)圖模式(命令式編程范式,類比Python):解析式的執(zhí)行方式。用戶無

    2023年04月14日
    瀏覽(30)
  • 機(jī)器學(xué)習(xí) 波士頓房價預(yù)測 Boston Housing

    機(jī)器學(xué)習(xí) 波士頓房價預(yù)測 Boston Housing

    目錄 一:前言 二:模型預(yù)測(KNN算法) 三:回歸模型預(yù)測比對 波士頓房價 是機(jī)器學(xué)習(xí)中很常用的一個 解決回歸問題 的數(shù)據(jù)集 數(shù)據(jù)統(tǒng)計于1978年,包括506個房價樣本,每個樣本包括波士頓不同郊區(qū)房屋的13種特征信息, 比如:住宅房間數(shù)、城鎮(zhèn)教師和學(xué)生比例等 標(biāo)簽值是每棟

    2024年02月03日
    瀏覽(33)
  • 機(jī)器學(xué)習(xí)基礎(chǔ)10-審查回歸算法(基于波士頓房價的數(shù)據(jù)集)

    上一節(jié)介紹了如何審查分類算法,并介紹了六種不同的分類算法,還 用同一個數(shù)據(jù)集按照相同的方式對它們做了審查,本章將用相同的方式對回歸算法進(jìn)行審查。 在本節(jié)將學(xué)到: 如何審查機(jī)器學(xué)習(xí)的回歸算法。 如何審查四種線性分類算法。 如何審查三種非線性分類算法。

    2024年02月11日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包