機器學習基礎之線性回歸

2021-09-13 01:59:17 字數 2354 閱讀 8865

1、代價函式

代價函式研究的本質: 本人認為是在監督學習中找到代價最小,也就是說。是拿著知道結果的訓練樣本。先用假定的函式去**,h(x)得出得值和真實得做比較。

2、線性回歸模型

h(x)=x0 + ax

就是直線方程。這裡就是假設函式

3、多變數線性回歸模型

4、特徵縮放

為了使得梯度下降快一些,需要對特徵進行縮放。其實就是類似歸一化。

特徵縮放:x1=(x1- x平均)/範圍

範圍就是這個特徵的最大值減去最小值。 x平均就是這個特徵的平均值。

5、學習速率

6、線性回歸習題

1)計算代價函式

adef computecost(x, y, theta):

# 訓練資料的樣本個數

m = len(y)

# 這裡的x是包含x0=1這個值的,也就是先包裝好x

# 特徵值 h(theta),h(theta)=theta.t與向量x的乘積

# **函式

h = x.dot(theta.t)

# 代價函式沒累加的內項

inner = np.power((h - y), 2)

# 代價函式

j = sum(inner) / (2 * m)

return j

注意:這裡的x是標準的。也就是說已經包含了x0=1這一項了

2)點集輸出

def plotdata(x, y):

plt.ion()

plt.figure()

plt.plot(x, y, 'x')

plt.axis([4, 24, -5, 25])

plt.xlabel("population of city in 10,000s") # setting the x label as population

plt.ylabel("profit in $10,000s") # setting the y label

plt.show()

3)梯度下降演算法:

# 單變數的梯度下降演算法

# x還是輸入變數的舉證

def gradientdescent(x, y, theta, alpha, num_iters):

# 訓練資料的樣本個數

m = len(y)

# 初始化乙個ndarray,包含每次迭代後的cost

cost = np.zeros(num_iters)

for i in range(num_iters):

# **函式

h = x.dot(theta.t)

# 這裡又用了一次矩陣乘法。x是n*1的向量。 h是m*n的向量 ,theta是行向量

temp = theta - (alpha / m) * (h - y).t.dot(x) # 得出乙個theta行向量

theta = temp

cost[i] = computecost(x, y, theta)

return theta, cost

4)最終實現:

import matplotlib.pyplot as plt

import numpy as np

def plotdata(x, y):

plt.ion()

plt.figure()

plt.plot(x, y, 'x')

plt.axis([4, 24, -5, 25])

plt.xlabel("population of city in 10,000s") # setting the x label as population

plt.ylabel("profit in $10,000s") # setting the y label

plt.show()

if __name__ == "__main__":

data = np.loadtxt('ex1data1.txt', delimiter=",")

x = data[:, 0]

y = data[:, 1]

plotdata(x, y)

機器學習之線性回歸

訓練樣例 x y 輸入變數 特徵 x ps n 1行,1 列 輸出變數 目標變數 y訓練樣例總數 m 特徵維度 n第 i 個訓練樣例 x i y i 所有訓練樣例的輸入變數組成的矩陣 x ps m行,n 1 列,每行是 x i t 所有訓練樣例的輸出變數組成的矩陣 y ps m行,1 列 下表是某地...

機器學習之線性回歸

線性回歸就是用線性方程去擬合一組資料,x 的最高端是1,用方程可以表示為 h x 0 1x1 n xn我們令 x0 1則上式可以改寫為 h x i 0n ixi tx 既然是擬合的模型,則肯定會存在不符合該模型的點,第 i 個點的真實值與模型 的值之間的差稱為誤差 e h x i y i 假設總共有...

機器學習之線性回歸

線性回歸分析 regression analysis 其資料集是給定乙個函式和他的一些座標點,然後通過回歸分析的演算法,來估計原函式的模型,求得最符合這些資料集的函式解析式。然後我們就可以用來預估未知資料,輸入乙個自變數便會根據這個模型解析式輸出因變數,這些自變數就是特徵向量,因變數即為標籤,而且標...