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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程

發布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

機器學習入門系列二(關鍵詞:多變量(非)線性回歸,批處理,特征縮放,正規方程)


目錄(?)[+]

  • 一多變量的線性回歸
  • 二批處理
  • 三特征縮放
  • 四正規方程
  • 五多變量非線性回歸
  • 一、多變量的線性回歸

    在#機器學習系列一#中,我們討論了單變量的線性回歸,而多變量的線性回歸與單變量類似,一致內容就不再贅述了。首先我們來看一個例子,下表是波特蘭的房子價格,針對不同的房屋面積和臥室間數。

    房屋面積/ft2臥室/間價格/美元房屋面積/ft2臥室/間價格/美元
    2104339990019624259900
    1600332990038903573900
    2400336900011003249900
    1416223200014583464500
    3000453990025263469000
    1985429990022003475000
    1534331490026373299900
    1427319899918392349900
    1380321200010001169900
    1494324250020404314900
    1940423999931373579900
    2000334700018114285900
    1890332999914373249900
    4478569990012393229900
    1268325990021324345000
    2300444990042154549000
    1320229990021624287000
    1236319990016642368500
    2609449999822383329900
    3031459900025674314000
    1767325290012003299000
    188822550008522179900
    1604324290018524299900
    12033239500???

    在這里我們先規定一下符號記法:

    符號含義
    m訓練樣本的個數
    n每個訓練樣本的特征個數
    x訓練樣本中的輸入變量
    y訓練樣本中的輸出變量
    (x(i),y(i))i個訓練樣本
    x(i)ji個訓練樣本的輸入變量的第j個特征
    hθ(x)輸入變量x與輸出變量y的映射關系

    在本例中,訓練樣本個數m為47;輸入變量的特征數n為2,分別為房屋面積和臥室間數;x(i)1為第i個樣本的房屋面積,x(i)2為第i個樣本的臥室間數,y(i)為第i個樣本的房屋價格,例x(1)=[21043]Ty(1)=399900。有了訓練樣本,下一步我們需要用一種算法得到一個比較好的映射關系hθ(x),當給定房屋面積和臥室間數x?時,通過映射關系可以得到一個符合訓練樣本規律的房屋價格y?。由于我們現在討論的是多變量的線性回歸,因此我們假設

    hθ(x)=θ0+θ1x1+θ2x2(1)
    同單變量線性回歸一樣,我們定義一個代價函數J(θ0,θ1,θ2)。這樣,問題就轉化為尋找一組θ0θ1θ2使得J(θ0,θ1,θ2)最小。 J(θ0,θ1,θ2)=12mi=1m(hθ(x(i))?y(i))2(2) 應用梯度下降法(詳見機器學習系列一)
    ?????????θ0=θ0?α??θ0J(θ0,θ1)θ1=θ1?α??θ1J(θ0,θ1)?(3)
    經過嚴格推導可得
    ?????????????????????????θ0=θ0?αmi=1m(hθ(x(i))?y(i))θ1=θ1?αmi=1m(hθ(x(i))?y(i))x(i)1θ2=θ2?αmi=1m(hθ(x(i))?y(i))x(i)2?(4)

    二、批處理

    為了可以用矩陣進行批處理,我們把x增加一個維度x0=1,這樣


    因此式(4)可以寫成如下形式 θj=θj?αmi=1m(hθ(x(i))?y(i))x(i)j(6)
    這樣的話,輸入變量X可以寫成如下m×3矩陣形式(7),其中第一列為1,第二列為第一個特征(房屋面積),第三列為第二個特征(臥室間數);輸出變量y可以寫成m×1矩陣;所求θ可以寫成3×1矩陣,即θ=[θ0θ1θ2]T
    ??????????????x(1)T??????x(2)T??????x(3)T???????x(m)T??????????????(7)
    此時式(2),(6)用matlab編程語言如下,非常簡潔明了:

    <code class="hljs perl has-numbering">J = <span class="hljs-number">1</span>/(<span class="hljs-number">2</span><span class="hljs-variable">*m</span>)<span class="hljs-variable">*(</span>X<span class="hljs-variable">*theta</span>-<span class="hljs-keyword">y</span>)<span class="hljs-string">'*(X*theta-y); theta = theta-alpha/m*(X'</span><span class="hljs-variable">*(</span>X<span class="hljs-variable">*theta</span>-<span class="hljs-keyword">y</span>));</code><ul class="pre-numbering"><li>1</li><li>2</li></ul><ul class="pre-numbering"><li>1</li><li>2</li></ul>

    三、特征縮放

    由于這是多變量線性回歸,還有一個比較棘手的問題,即不同的特征取值范圍不一樣。在本例中特征1取值范圍0~3000,而特征2取值范圍0~5,差距懸殊。在處理數據前若沒有做特征縮放也就是沒有做過標準化,目標函數則無法適當的運作。舉例來說,利用兩點間的距離計算兩點的差異對數據進行分類,若其中一個特征具有非常廣的范圍,那兩點間的差異就會被該特征左右,因此,所有的特征都該被標準化,這樣才能大略的使各特征依比例影響距離。在本例中若不進行特征縮放,將會耗費很長很長的時間找到最優解,極端情況下甚至因為各種特征差距太大甚至無法找到。不單單是線性回歸,很多情況下我們都要對數據進行預處理即特征縮放,可以說應用范圍非常廣。
    常見的歸一化方法有兩種:
    1. min-max標準化
    min-max標準化也稱為離差標準化,是利用樣本數據的最大值和最小值對原始數據的線性變換。經過處理使結果值映射到[0 - 1]之間,轉換函數如下:

    x?=x?minmax?min(8)
    2. Z-score標準化
    Z-score標準化利用原始數據的均值和標準差進行數據的標準化。經過處理的數據符合標準正態分布,即均值為0,標準差為1,轉化函數為如下: x?=x?μσ(9)
    本例中,我們采用Z-score標準化,以第一個特征(房屋面積)為例
    x1=x1?μx1σx1=x1?μx1σx1=x1?2000.68786.2
    經過標準化,梯度下降法迭代,我們得到
    θ=[8.9598×104139.2107?8.7380×103]T
    當房子面積為1650ft2,臥室間數3時,房屋預測價格為
    price=θT????116503???=293081()

    四、正規方程

    為了求得最優解θ,我們采取了梯度下降法,下面我們介紹一種方法可以一次性得到最優解,不必進行迭代,所采用的X是式(7)。

    θ=(XTX)?1XTy(10) 由于推導過程比較困難,我將在后續進行更新。如果XTX可逆,我們可以直接求逆,如果XTX不可逆,我們就用奇異值分解,或者去相關使X的列線性無關(在線性代數中我們可以證明若X線性無關,則XTX可逆)

    • 正則方程優點
      -代碼簡潔易懂
      -不用選擇步長α,不用進行迭代
      -不用進行特征縮放,即不會梯度下降法那樣很難得到最優解
    • 正則方程缺點
      -當輸入變量特征較多時,XTX太大,進行求逆運算代價太高,此時梯度下降法是一個很好地選擇(一般而言當n>104時我們可以著手考慮采取梯度下降法)。

    五、多變量非線性回歸

    若我們要進行非線性回歸,所得結果是個圓,即

    hθ(x)=θ0+θ1x1+θ2x2+θ3x21+θ4x22(11) 為了把復雜的非線性回歸轉化為已知的線性回歸,不妨令
    ?????????p1=x1p2=x2p3=x21p4=x22(12) 此時便轉化為已知的線性回歸 hθ(p)=θ0+θ1p1+θ2p2+θ3p3+θ4p4(13) 注:對于非線性回歸,由于有2次項,甚至更高項,如果進行梯度下降法,那么一定要進行特征縮放。

    總結

    以上是生活随笔為你收集整理的机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。