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