日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解析法实现多元线性回归的实例

發(fā)布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解析法实现多元线性回归的实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前期知識回顧

演示實例 – 二元線性回歸

實例:房價由面積和房間數(shù)兩個因素共同來決定。

多元線性回歸函數(shù)的實現(xiàn)分為四步。

第一步:加載樣本數(shù)據(jù)。

第二步:數(shù)據(jù)處理,將加載的樣本構(gòu)造為計算解析解所需要的形式。

第三步:求解模型參數(shù)。使用解析解公式,計算參數(shù)向量 W 的值,得到多元回歸模型。

第四步:預(yù)測房價,使用得到的模型來估計房價。

與一元線性回歸的例子相比,這里增加了第二步。這也是大多數(shù)學(xué)習(xí)任務(wù)中都必須的一步,因為原始的數(shù)據(jù)集中的數(shù)據(jù)可能和模型需要的輸入數(shù)據(jù)模型不太一致,因此需要進行數(shù)據(jù)處理。

使用NumPy實現(xiàn)

import tensorflow as tf import numpy as np import matplotlib.pyplot as plt# 設(shè)置字體 plt.rcParams['font.sans-serif'] = ['SimHei']# 第一步:加載樣本數(shù)據(jù) # x1 是商品房面積 x1 = np.array([137.97, 104.50, 100.00, 124.32, 79.20, 99.00, 124.00, 114.00,106.69, 138.05, 53.75, 46.91, 68.00, 63.02, 81.26, 86.21]) # x2 是商品房房間數(shù) x2 = np.array([3, 2, 2, 3, 1, 2, 3, 2,2, 3, 1, 1, 1, 1, 2, 2]) # y 是房價 y = np.array([145.00, 110.00, 93.00, 116.00, 65.32, 104.00, 118.00, 91.00,62.00, 133.00, 51.00, 45.00, 78.50, 69.65, 75.69, 95.30])print("x1:", x1.shape) # (16, ) print("x2:", x2.shape) # (16, ) print("y:", y.shape) # (16, )# 第二步:將輸入的原始數(shù)據(jù)處理為模型所要求的形式 # 在這個例子中, n = 16, m =2, 因此,這個X矩陣應(yīng)該是一個 16 * 3 的矩陣 x0 = np.ones(len(x1)) X = np.stack((x0, x1, x2), axis=1) # (16, 3) print(X) """ [[ 1. 137.97 3. ][ 1. 104.5 2. ][ 1. 100. 2. ][ 1. 124.32 3. ][ 1. 79.2 1. ][ 1. 99. 2. ][ 1. 124. 3. ][ 1. 114. 2. ][ 1. 106.69 2. ][ 1. 138.05 3. ][ 1. 53.75 1. ][ 1. 46.91 1. ][ 1. 68. 1. ][ 1. 63.02 1. ][ 1. 81.26 2. ][ 1. 86.21 2. ]] """ # 將數(shù)組 Y 表示為列向量的形式 Y = np.array(y).reshape(-1, 1) print(Y) # (16, 1) """ [[145. ][110. ][ 93. ][116. ][ 65.32][104. ][118. ][ 91. ][ 62. ][133. ][ 51. ][ 45. ][ 78.5 ][ 69.65][ 75.69][ 95.3 ]] """ # 第三步:求解模型參數(shù) W # W = (Xt * X) ^ (-1) * Xt * Y# np.transpose()是求矩陣的轉(zhuǎn)置 Xt = np.transpose(X) # 計算Xt # np.matmul()是求矩陣的相乘 # np.linalg.inv()是矩陣的求逆 XtX_1 = np.linalg.inv(np.matmul(Xt, X)) # 計算(Xt * X) ^ (-1) XtX_1_Xt = np.matmul(XtX_1, Xt) # 計算(Xt * X) ^ (-1)* Xt W = np.matmul(XtX_1_Xt, Y) # 計算(Xt * X) ^ (-1) * Xt * Yprint(W) """ [[11.96729093][ 0.53488599][14.33150378]] """ W = W.reshape(-1) print(W) """ [11.96729093 0.53488599 14.33150378] """ print("多元線性回歸方程:") print("Y=", W[1], "*x1+", W[2], "*x2+", W[0]) """ Y= 0.5348859949724712 *x1+ 14.331503777673714 *x2+ 11.96729093053445 """ # 第四步:預(yù)測房價,使用得到的模型來估計房價。 print("請輸入房屋面積和房間數(shù),預(yù)測房屋的銷售價格:") x1_test = int(input("商品房面積:")) x2_test = int(input("房間數(shù):"))y_pred = W[1]*x1_test+W[2]*x2_test+W[0] print("預(yù)測價格:", round(y_pred, 2), "萬元") """ 請輸入房屋面積和房間數(shù),預(yù)測房屋的銷售價格: 商品房面積:140 房間數(shù):3 預(yù)測價格: 129.85 萬元 """ """ 請輸入房屋面積和房間數(shù),預(yù)測房屋的銷售價格: 商品房面積:140 房間數(shù):4 預(yù)測價格: 144.18 萬元 """

總結(jié)

以上是生活随笔為你收集整理的解析法实现多元线性回归的实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。