0A03 無監督學習 梯度下降

2022-05-05 03:54:13 字數 2392 閱讀 3884

---恢復內容開始---

梯度下降的定義:

梯度下降是一種因為計算機儲存及能力有限,採取逐步逼近,迭代求解的方法.

梯度下降的步驟:

任取一點作為起始點

檢視在當前點向那個方向移動能得到最小的z值,並向該方向移動.

重複該步驟,直到無法找到更小的z值,此時認為達到最低點.

幾個基礎的演算法概念:

步長:是每一次梯度下降是向目標前行的長度.

假設函式:由特徵產生目標變數的函式.

損失函式:可以想象成給任意引數組合打分的函式.

優缺點:

該方法比ols求解要快,但是有時候梯度下降無法找到全域性最優點.

隨機梯度下降:

是在損失函式計算時不遍歷所有的樣本,採用單一或一小批樣本的方差和作為損失值.

和普通梯度下降的區別:

迭代次數增加了,因為隨機梯度下降的速度快很多.

比普通梯度下降更有可能找到全域性最優借.

實戰:一些常用的引數:

penalty:損失函式懲罰項  請回顧線性回歸的懲罰項的概念

loss:損失函式型別    對訓練效果和速度有所影響

max_iter:        最大迭代次數

shuffle:         完成一輪迭代後是否需要洗牌

n_job:          cpu的數量

learning_rate:      步長策略,(平均,先大後小等等的型別)

eta0:          初始步長

fit_intercept:       模型是否有截距

from sklearn.linear_model import

sgdregressor

from sklearn.linear_model import

sgdclassifier

from random import

randint

import

numpy as np

import

pandas as pd

#隨機梯度回歸

defsgdregressor():

x = [[0,0],[2,1],[5,4]] #

樣本特徵

y = [0,2,2] #

樣本目標分類

reg = sgdregressor(penalty="

l2",max_iter=10000,tol=100)

reg.fit(x,y)

reg.predict([[4,3]])

print(reg.coef_) #

檢視回歸引數

print(reg.intercept_) #

檢視截據

#隨機梯度下降

defsgdclassifier():

x = [[0,0],[2,1],[5,4]] #

樣本特徵

y = [0,2,2] #

樣本目標分類

clf = sgdclassifier(penalty="

l2",max_iter=1000,tol=1e-3) #

初始化分類器

clf.fit(x,y) #

訓練print(clf.predict([[4,3]])) #**#

增量學習

defpartial_fit():

reg2 = sgdregressor(loss="

squared_loss

",penalty="

none

",tol=1e-15)

x = np.linspace(0,1,50) #

50個x值

y = x/2 +0.3 + np.random.normal(0,0.15,len(x)) #

用y=x/2+0.3加隨機數生成樣本

x = x.reshape(-1,1)

for i in range(10000):

idx = randint(0,len(y)-1) #

隨機選擇乙個樣本索引

reg2.partial_fit(x[idx:idx+10],y[idx:idx+10]) #

分部訓練

print(reg2.coef_) #

檢視回歸引數

print(reg2.intercept_) #

檢視截距

增量學習就是:可以一邊讀資料一邊學習

監督學習應用 梯度下降

andrew ng 機器學習筆記 這一系列文章文章是我再 andrew ng的stanford公開課之後自己整理的一些筆記,除了整理出課件中的主要知識點,另外還有一些自己對課件內容的理解。同時也參考了很多優秀博文,希望大家共同討論,共同進步。參考博文 本節課程內容包括 1 linear regres...

監督學習應用 梯度下降

andrew ng 機器學習筆記 這一系列文章文章是我再 andrew ng的stanford公開課之後自己整理的一些筆記,除了整理出課件中的主要知識點,另外還有一些自己對課件內容的理解。同時也參考了很多優秀博文,希望大家共同討論,共同進步。參考博文 本節課程內容包括 1 linear regres...

監督學習應用 梯度下降筆記

第1 2節主要就是講了線性回歸的東西。課程中用了兩種方法來解決引數求解的問題 1是梯度下降的方法 2是稱為隨機 增量 梯度下降的方法。首先我們來看下面這張圖 我們已知一些 x,y 點的分布。現在我假設有一已知的x,想求期望的y是多少。假設現在我能 用y h x 表示x和y的關係。那麼輸入x,輸出y就...