給定 m條訓練資料,假定方法
先說明向量問題,乙個向量就代表一條特徵值
梯度下降公式:
重複公式直到 收斂。公式中意思是
1、第i個
2、重複計算1。直到
repeat util convergence
python**:
def gradient(x,y,bu,number):
m, n = x.shape
weight = np.ones(n)
for index in range(n):
for k in range(number):
weight[index]=weight[index]-bu*np.sum(np.sum(x*weight,axis=1)-y)*np.sum(x,axis=0)[index]/m;
return weight
x 是訓練陣列,y訓練結果陣列。bu是步長,number是迴圈次數。
matlab
function [theta, j_history] = gradientdescentmulti(x, y, theta, alpha, num_iters)
m = length(y);
j_history = zeros(num_iters, 1);
for iter = 1:num_iters
h=(sum(x*theta,2)-y).*x
kao=alpha*sum(h,1)
theta= theta-transpose(kao)/m
j_history(iter) = computecostmulti(x, y, theta);
endend
其中:梯度下降回歸是區域性回歸,有可能不是全域性最優解。還有步長的選擇,步長過大,會出錯,太小,程式執行次數太多。那麼只有通過執行多次,來選擇合適步長。 梯度下降法 3 實現線性回歸中的梯度下降法
構造資料集 import numpy import matplotlib.pyplot as plt 設定隨機數種子 numpy.random.seed 666 x 2 numpy.random.random size 100 y x 3.4.numpy.random.normal size 100...
線性回歸與梯度下降法
原文 最近在看斯坦福的 機器學習 的公開課,這個課程是2009年的,有點老了,不過講的還是很好的,廓清了一些我以前關於機器學習懵懂的地方。我的一位老師曾經說過 什麼叫理解?理解就是你能把同乙個事情用自己的語言表達出來,並且能讓別人聽得懂。本著這樣的原則,同時也為了證明自己是 理解 的,於是決定打算在...
20191008 線性回歸 梯度下降法
不斷的迭代,還是波士頓房價 獲取資料 資料清洗預處理 劃分資料集 特徵工程 預估器流程 coef intercept 模型評估 from sklearn.datasets import load boston from sklearn.model selection import train tes...