天天看點

線性回歸,邏輯回歸個人總結

實驗目的:

  1. 掌握線性回歸基本原理和内容。
  2. 掌握邏輯回歸基本原理和内容。
  3. 能夠分析問題,選擇合适的線性模型解決問題。
  4. 能夠利用線性回歸或邏輯回歸模組化,建立相關模型,并評價模型的好壞。

實驗内容:

1.預測鮑魚的年齡。

此案例所用資料來自UCI資料集,記錄鮑魚的一些相關屬性,請根據這些屬性建構一個模型來預測鮑魚的年齡。

基本要求:

1、根據 '性别','長度','直徑','高度','整體重量','肉重量','内髒重量','殼重'。對鮑魚年齡進行預測。建構線性回歸模型。

2、使用最小二乘法計算參數

3、使用梯度下降的方式計算參數

2.将香蕉進行分類。

此案例所用資料來自KEEL資料集,記錄香蕉的一些相關屬性,請根據這些屬性建構一個模型将香蕉進行分類。

基本要求:

1、根據提供的資料集,對将香蕉進行分類。建構邏輯回歸模型。

2、使用梯度下降的方式計算參數

實驗報告要求:

簡單描述實驗步驟,詳細寫明程式代碼與操作結果。

實驗代碼:

1.1最小二乘法

線性回歸,邏輯回歸個人總結
線性回歸,邏輯回歸個人總結

步驟注釋:2.導入numpy包

        3.設定矩陣全部輸出,預設會輸出一部分

        5.加載abalone.txt檔案此時data為一個矩陣

        6.加一列全為1的資料 來當做系數b y=kx+b

        7.截取data中的第10列資料作為y

        8. 截取data中的前9列資料作為x

        10.

線性回歸,邏輯回歸個人總結

如上圖所示公示中,python代碼中np.linalg.inv則為矩陣的逆矩陣,np.dot則為矩陣的相乘,transpose()則為矩陣的轉置。實際則為圖上的公式

11.則為W*x得到相應的y的預測值

12-17. 以下則為模型參數的檢驗,參考公式為

線性回歸,邏輯回歸個人總結

1.2梯度下降法:

線性回歸,邏輯回歸個人總結

首先公式推導梯度:

線性回歸,邏輯回歸個人總結

步驟注釋:

41-45:與前面一緻,首先加一列全為1的資料(相當于b),然後劃分成input(相當于x)和real(相當于y)

46:這個将其設定成疊代200次

47:計算出out(預測值y)

48-49:每次疊代輸出預測值

50-51:這裡首先計算出第一項的資料,因為樣本資料一共有4177個資料,需要寫一個for循環累加其中的(真實值-預測值)*x的和,是以需要在外邊先設定一個全局變量delta

54:循環4177次,

57-58:環累加其中的(真實值-預測值)*x + delta (此處用到了50-51)

60:設定delat為負數,表示為梯度下降 ,而不是上升

61:這裡設定步長為0.0001

64-65:最終則輸出為最佳權重

2.預測香蕉

線性回歸,邏輯回歸個人總結

本題梯度下降梯度求解的方法與第一題一樣。

這裡引入了Sigmoid函數,

線性回歸,邏輯回歸個人總結

思路:将求得一個w 然後預測y,然後将y作為自變量帶入Singmoid函數中,得到相應的函數值,預測值大于0.5且真實值大于0.5或者預測值小于0.5且真實值小于0.5,則視為預測正确,最終統計預測正确的個數得到sum。實驗結果如下。

實驗結果:

1.1最小二乘法:

線性回歸,邏輯回歸個人總結
線性回歸,邏輯回歸個人總結
線性回歸,邏輯回歸個人總結

由于測試集共有4166條資料,前面的不好截取,是以截取最後幾十條資料進行對比,可以看到資料拟合度也是很高的。

1.1梯度下降法:

線性回歸,邏輯回歸個人總結
線性回歸,邏輯回歸個人總結

同樣是截取最後的資料可以看到在1000次疊代後,預測值與輸出值基本相拟合

2.香蕉的預測:

線性回歸,邏輯回歸個人總結

實驗反思或感想:

梯度下降是疊代法的一種,可用于求解最小二乘法問題,線性非線性都可以。在求解機器學習模型參數時,即無限制最優化問題時,最常用的就是梯度下降,另一種方法就是最小二乘法。在求損失函數的最小值問題時,可使用梯度下降法一步步疊代得到損失函數的最小值和參數值;如果求損失函數的最大值就要用梯度上升法,所謂梯度下降,最終實際上都是求解函數最值問題,進而求得最理想的參數。