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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

机器学习-线性回归(Linear Regression)

發布時間:2023/12/19 编程问答 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习-线性回归(Linear Regression) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.什么是線性回歸

2. 能夠解決什么樣的問題

3. 一般表達式是什么

4. 如何計算

4.1 Loss Function--MSE

4.2 標準方程方法

5. 過擬合問題如何解決

5.1 什么是L2正則化(嶺回歸)

5.2 什么場景下用L2正則化

5.3 什么是L1正則化(Lasso回歸)

5.4 什么場景下使用L1正則化

5.5 什么是ElasticNet回歸

5.6 ElasticNet回歸的使用場景

6. 線性回歸要求因變量服從正態分布?

7. 實現代碼


???????

1.什么是線性回歸

  • 線性:兩個變量之間的關系一次函數關系的——圖象是直線,叫做線性。
  • 非線性:兩個變量之間的關系不是一次函數關系的——圖象不是直線,叫做非線性。
  • 回歸:人們在測量事物的時候因為客觀條件所限,求得的都是測量值,而不是事物真實的值,為了能夠得到真實值,無限次的進行測量,最后通過這些測量數據計算回歸到真實值,這就是回歸的由來。

2. 能夠解決什么樣的問題

對大量的觀測數據進行處理,從而得到比較符合事物內部規律的數學表達式。也就是說尋找到數據與數據之間的規律所在,從而就可以模擬出結果,也就是對結果進行預測。解決的就是通過已知的數據得到未知的結果。例如:對房價的預測、判斷信用評價、電影票房預估等。

3. 一般表達式是什么

w叫做x的系數,b叫做偏置項。

4. 如何計算

4.1 Loss Function--MSE

利用梯度下降法找到最小值點,也就是最小誤差,最后把 w 和 b 給求出來。

4.2 標準方程方法

可以利用Python進行矩陣運算直接求解,也可以使用sk-learn進行求解

5. 過擬合問題如何解決

使用正則化項,也就是給loss function加上一個參數項,正則化項有L1正則化、L2正則化、ElasticNet。加入這個正則化項好處:

  • 控制參數幅度,不讓模型“無法無天”。
  • 限制參數搜索空間
  • 解決過擬合的問題。

5.1 什么是L2正則化(嶺回歸)

方程:

表示上面的 loss function ,在loss function的基礎上加入w參數的平方和乘以?

?,假設:

回憶以前學過的單位元的方程:

正和L2正則化項一樣,此時我們的任務變成在L約束下求出J取最小值的解。求解J0的過程可以畫出等值線。同時L2正則化的函數L也可以在w1w2的二維平面上畫出來。如下圖:

L表示為圖中的黑色圓形,隨著梯度下降法的不斷逼近,與圓第一次產生交點,而這個交點很難出現在坐標軸上。這就說明了L2正則化不容易得到稀疏矩陣,同時為了求出損失函數的最小值,使得w1和w2無限接近于0,達到防止過擬合的問題。

5.2 什么場景下用L2正則化

只要數據線性相關,用LinearRegression擬合的不是很好,需要正則化,可以考慮使用嶺回歸(L2), 如果輸入特征的維度很高,而且是稀疏線性關系的話, 嶺回歸就不太合適,考慮使用Lasso回歸。

5.3 什么是L1正則化(Lasso回歸)

L1正則化與L2正則化的區別在于懲罰項的不同:

求解J0的過程可以畫出等值線。同時L1正則化的函數也可以在w1w2的二維平面上畫出來。如下圖:

懲罰項表示為圖中的黑色棱形,隨著梯度下降法的不斷逼近,與棱形第一次產生交點,而這個交點很容易出現在坐標軸上。這就說明了L1正則化容易得到稀疏矩陣。

5.4 什么場景下使用L1正則化

L1正則化(Lasso回歸)可以使得一些特征的系數變小,甚至還使一些絕對值較小的系數直接變為0,從而增強模型的泛化能力 。對于高的特征數據,尤其是線性關系是稀疏的,就采用L1正則化(Lasso回歸),或者是要在一堆特征里面找出主要的特征,那么L1正則化(Lasso回歸)更是首選了。

5.5 什么是ElasticNet回歸

ElasticNet綜合了L1正則化項和L2正則化項,以下是它的公式:

5.6 ElasticNet回歸的使用場景

ElasticNet在我們發現用Lasso回歸太過(太多特征被稀疏為0),而嶺回歸也正則化的不夠(回歸系數衰減太慢)的時候,可以考慮使用ElasticNet回歸來綜合,得到比較好的結果。

關于L1/L2正則化的解釋,可以參考這篇文章

機器學習中正則化項L1和L2的直觀理解_小平子的專欄-CSDN博客_l2正則

6. 線性回歸要求因變量服從正態分布?

我們假設線性回歸的噪聲服從均值為0的正態分布。 當噪聲符合正態分布N(0,delta^2)時,因變量則符合正態分布N(ax(i)+b,delta^2),其中預測函數y=ax(i)+b。這個結論可以由正態分布的概率密度函數得到。也就是說當噪聲符合正態分布時,其因變量必然也符合正態分布。

在用線性回歸模型擬合數據之前,首先要求數據應符合或近似符合正態分布,否則得到的擬合函數不正確。

7. 實現代碼

參考:https://github.com/Avik-Jain/100-Days-Of-ML-Code/blob/master/Code/Day2_Simple_Linear_Regression.md

# Step 1: Data Preprocessingimport pandas as pd import numpy as np import matplotlib.pyplot as pltdataset = pd.read_csv('studentscores.csv') X = dataset.iloc[ : , : 1 ].values Y = dataset.iloc[ : , 1 ].valuesfrom sklearn.cross_validation import train_test_split X_train, X_test, Y_train, Y_test = train_test_split( X, Y, test_size = 1/4, random_state = 0) # Step 2: Fitting Simple Linear Regression Model to the training setfrom sklearn.linear_model import LinearRegressionregressor = LinearRegression()regressor = regressor.fit(X_train, Y_train)# Step 3: Predecting the ResultY_pred = regressor.predict(X_test)# Step 4: Visualization ## Visualising the Training resultsplt.scatter(X_train , Y_train, color = 'red')plt.plot(X_train , regressor.predict(X_train), color ='blue')## Visualizing the test resultsplt.scatter(X_test , Y_test, color = 'red')plt.plot(X_test , regressor.predict(X_test), color ='blue')

?文章內容參考:

ML-NLP/Machine Learning at master · NLP-LOVE/ML-NLP · GitHub此項目是機器學習(Machine Learning)、深度學習(Deep Learning)、NLP面試中常考到的知識點和代碼實現,也是作為一個算法工程師必會的理論基礎知識。 - ML-NLP/Machine Learning at master · NLP-LOVE/ML-NLPhttps://github.com/NLP-LOVE/ML-NLP/tree/master/Machine%20Learning

總結

以上是生活随笔為你收集整理的机器学习-线性回归(Linear Regression)的全部內容,希望文章能夠幫你解決所遇到的問題。

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