python實現線性回歸

2021-08-21 15:38:25 字數 2141 閱讀 4680

線性回歸模型是最簡單的機器學習模型,基礎可以從線性回歸模型開始入手,慢慢地過渡到非線性回歸以及神經網路模型。

1.概念

2.線性回歸    

簡單回歸:乙個自變數輸入,y~x是一對一的關係,對映到幾何上來說就是二維座標系的直線方程,可表示為y=多元回歸:多個自變數,改變維度的大小。即:

3.最小二乘法 【通過向量運算】

大多情況下都是求近似最優解,即滿足估計值於實際值的方差最小時的引數解,可以表示為:

函式模型:

損失函式:

要使損失函式最小,就要對函式求導計算,通過一系列數學推導,可以得到乙個標準方程:

引數計算:

4.梯度下降演算法

直接向量運算存在的問題:(1)矩陣必須是滿秩的,如果不是,python也能模糊處理(2)運算效能,矩陣擴大化後,量級增大對效能影響明顯。

梯度下降不僅限於線性回歸,非線性和神經網路同樣適用。

5.應用

在數學方面進行多元一次方程的求解,即線性方程的求解;

在金融中對簡單金融模型的**。如資本資產定價模型利用線性回歸以及beta係數的概念分析和計算投資的系統風險。

在醫學方面對流行病的**。如有關吸菸對死亡率和發病率影響的早期證據來自採用了回歸分析的觀察性研究。 

等等,線性回歸模型有助於幫助了解工作環境中的關係,簡單得對一些變數進行觀察分析從而有所收穫

6.demo

import numpy as np

from numpy.linalg import inv #求矩陣的逆

from numpy import dot #矩陣點乘

from numpy import mat #矩陣

import pandas as pd

from pandas import read_csv

# pwd = os.getcwd()

# os.chdir(os.path.dirname(path))

# dataset = pd.read_csv(os.path.basename(path),encoding='gbk')

# os.chdir(pwd)

dataset = pd.read_csv('data.csv')

# print(dataset)

temp=dataset.iloc[:,2:5]

temp['x0']=1

x=temp.iloc[:[3,0,1,2]]

# print(x)

y=dataset.iloc[:,1].values.reshape(len(y),1) //len(y)=150

# print(y)

theta = dot(dot(inv(dot(x.t,x)),x.t),y) #最小二乘法

print(theta)

theta=np.array([1.,1.,1.,1.,1.]).reshape(4,1)

alpha=0.1

temp=theta

x0=x.iloc[:,0].values.reshape(len(y),1)

x1=x.iloc[:,1].values.reshape(len(y),1)

x2=x.iloc[:,2].values.reshape(len(y),1)

x3=x.iloc[:,3].values.reshape(len(y),1)

for i in rang(10000):

temp[0]=theta[0]-alpha*np.mean(dot(x,theta)-y)*x0

temp[1]=theta[1]-alpha*np.mean(dot(x,theta)-y)*x1

temp[2]=theta[2]-alpha*np.mean(dot(x,theta)-y)*x2

temp[3]=theta[3]-alpha*np.mean(dot(x,theta)-y)*x3

theta=temp

print(theta)

python實現線性回歸

定義 線性回歸在假設特徵滿足線性關係,根據給定的訓練資料訓練乙個模型,並用此模型進行 文中只介紹了簡單的概念,不涉及公式的證明等。從最簡單的一元線性關係介紹,假設有一組資料型態為 y theta x,其中 x y 我們根據 x,y 模擬出近似的 theta 引數值,進而得到 y theta x 模型...

python實現線性回歸

線性回歸模型是機器學習中最基礎的演算法,同時也在工業上得到很大應用。編碼實現該方法,可以對其有個透徹理解。回歸模型 目標函式 對目標函式求偏導 更新引數 樣本矩陣表示 python 實現 import numpy as np class linear object def init self sel...

python實現線性回歸

線性回歸模型特點 一維y ax 求a。然後對未知x進行 就是線性回歸 線性回歸的一般性表示 這個公式是由1維推廣過來的。左邊公式中x的0次冪是1所以可以推出時0到n的和。可以推出右邊公式兩個矩陣相乘。l為損失函式 損失函式用的歐幾里得距離公式 為了讓損失最小,l應該為導數為0的點。對損失函式公式進行...