淺談matplotlib 繪制梯度下降求解過(guò)程
機(jī)器學(xué)習(xí)過(guò)程中經(jīng)常需要可視化,有助于加強(qiáng)對(duì)模型和參數(shù)的理解。
下面對(duì)梯度下降過(guò)程進(jìn)行動(dòng)圖演示,可以修改不同的學(xué)習(xí)率,觀看效果。
import numpy as np import matplotlib.pyplot as plt from IPython import display X = 2*np.random.rand(100,1) y = 4+3*X+np.random.randn(100,1) # randn正態(tài)分布 X_b = np.c_[np.ones((100,1)),X] # c_行數(shù)相等,左右拼接 eta = 0.1 # 學(xué)習(xí)率 n_iter = 1000 # 迭代次數(shù) m = 100 # 樣本點(diǎn)個(gè)數(shù) theta = np.random.randn(2,1) # 參數(shù)初始值 plt.figure(figsize=(8,6)) mngr = plt.get_current_fig_manager() # 獲取當(dāng)前figure manager mngr.window.wm_geometry("+520+520") # 調(diào)整窗口在屏幕上彈出的位置,注意寫(xiě)在打開(kāi)交互模式之前 # 上面固定窗口,方便screentogif定位錄制,只會(huì)這種弱弱的方法 plt.ion()# 打開(kāi)交互模式 plt.rcParams["font.sans-serif"] = "SimHei"# 消除中文亂碼 for iter in range(n_iter): plt.cla() # 清除原圖像 gradients = 2/m*X_b.T.dot(X_b.dot(theta)-y) theta = theta - eta*gradients X_new = np.array([[0],[2]]) X_new_b = np.c_[np.ones((2,1)),X_new] y_pred = X_new_b.dot(theta) plt.axis([0,2,0,15]) plt.plot(X,y,"b.") plt.plot(X_new,y_pred,"r-") plt.title("學(xué)習(xí)率:{:.2f}".format(eta)) plt.pause(0.3) # 暫停一會(huì) display.clear_output(wait=True)# 刷新圖像 plt.ioff()# 關(guān)閉交互模式 plt.show()
學(xué)習(xí)率:0.1,較合適
學(xué)習(xí)率:0.02,收斂變慢了
學(xué)習(xí)率:0.45,在最佳參數(shù)附近震蕩
學(xué)習(xí)率:0.5,不收斂
到此這篇關(guān)于淺談matplotlib 繪制梯度下降求解過(guò)程的文章就介紹到這了,更多相關(guān)matplotlib 梯度下降內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python matplotlib坐標(biāo)軸設(shè)置的方法
- Python設(shè)置matplotlib.plot的坐標(biāo)軸刻度間隔以及刻度范圍
- 學(xué)習(xí)python中matplotlib繪圖設(shè)置坐標(biāo)軸刻度、文本
- python學(xué)習(xí)之matplotlib繪制散點(diǎn)圖實(shí)例
- Python使用matplotlib繪制動(dòng)畫(huà)的方法
- python繪圖庫(kù)Matplotlib的安裝
- python Matplotlib畫(huà)圖之調(diào)整字體大小的示例
- Python利用matplotlib.pyplot繪圖時(shí)如何設(shè)置坐標(biāo)軸刻度
- 用matplotlib畫(huà)等高線圖詳解
- python中Matplotlib實(shí)現(xiàn)繪制3D圖的示例代碼
- matplotlib設(shè)置legend圖例代碼示例
相關(guān)文章
用python的seaborn畫(huà)數(shù)值箱型圖
大家好,本篇文章主要講的是用python的seaborn畫(huà)數(shù)值箱型圖,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01python tkinter實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了python tkinter實(shí)現(xiàn)簡(jiǎn)單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01keras slice layer 層實(shí)現(xiàn)方式
這篇文章主要介紹了keras slice layer 層實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06Python讀寫(xiě)二進(jìn)制文件的實(shí)現(xiàn)
本文主要介紹了Python讀寫(xiě)二進(jìn)制文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04多個(gè)版本的python共存時(shí)使用pip的正確做法
這篇文章主要介紹了多版本python共存時(shí)使用pip的正確做法,幫助有多個(gè)python版本需求的人可以正確的導(dǎo)包,感興趣的朋友可以了解下2020-10-10python機(jī)器學(xué)習(xí)實(shí)現(xiàn)決策樹(shù)
這篇文章主要為大家詳細(xì)介紹了python機(jī)器學(xué)習(xí)實(shí)現(xiàn)決策樹(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11