日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习-01regression

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习-01regression 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?主要內容:

1.回歸模型的出現

2.回歸模型的選擇--使得損失最小

3.損失最小時,參數求值 梯度下降法

4.損失不理想,重新調整模型

5.添加正則表達式,即學習率

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

import numpy as np import matplotlib.pyplot as plt x_data = [338.,333.,328.,207.,226.,25.,179.,60.,208.,606.] y_data = [640.,633.,619.,393.,428.,27.,193.,66.,226.,1591.] # y_data = b+ w * x_datax = np.arange(-200,-100,1)# bias y = np.arange(-5,5,0.1) #weight Z = np.zeros((len(x),len(y))) X,Y = np.meshgrid(x,y) for i in range(len(x)):for j in range(len(y)):b = x[i]w = y[j]Z[j][i] = 0for n in range(len(x_data)):Z[j][i]=Z[j][i]+(y_data[n] - b - w*x_data[n])**2Z[j][i] = Z[j][i]/len(x_data)# y_data = b+ w * x_data b = -120 # initial b w = -4 # initial w lr = 0.0000001 # learning rate iteration = 10000# Store initial values for plotting. b_history=[b] w_history=[w]# Iterations for i in range(iteration):b_grad = 0.0w_grad = 0.0for n in range(len(x_data)):b_grad = b_grad - 2.0*(y_data[n] - b- w*x_data[n])*1.0w_grad = w_grad - 2.0*(y_data[n] - b- w*x_data[n])*x_data[n]# Update parametersb = b - lr * b_gradw = w - lr * w_grad# Store parameters for plotingb_history.append(b)w_history.append(w)# plot the figure plt.contourf(x,y,Z,50,alpha=0.5,cmap=plt.get_cmap('jet')) plt.plot([-188.4],[2.67],'x',ms=12,markeredgewidth=3,color='orange') plt.plot(b_history,w_history,'o-',ms=3,lw=1.5,color='black') plt.xlim(-200,-100) plt.ylim(-5,5) plt.xlabel(r'$b$',fontsize=16) plt.ylabel(r'$w$',fontsize=16) plt.show()

?運行結果:

?調整模型后:

# y_data = b+ w * x_data b = -120 # initial b w = -4 # initial w lr = 1 # learning rate 調整學習率 iteration = 100000# Store initial values for plotting. b_history=[b] w_history=[w]lr_b = 0 lr_w = 0# Iterations for i in range(iteration):b_grad = 0.0w_grad = 0.0for n in range(len(x_data)):b_grad = b_grad - 2.0*(y_data[n] - b- w*x_data[n])*1.0w_grad = w_grad - 2.0*(y_data[n] - b- w*x_data[n])*x_data[n]lr_b = lr_b + b_grad**2lr_w = lr_w + w_grad**2# Update parameters # b = b - lr * b_grad # w = w - lr * w_gradb = b - lr/np.sqrt(lr_b) * b_gradw = w - lr/np.sqrt(lr_w) * w_grad# Store parameters for plotingb_history.append(b)w_history.append(w)# plot the figure plt.contourf(x,y,Z,50,alpha=0.5,cmap=plt.get_cmap('jet')) plt.plot([-188.4],[2.67],'x',ms=12,markeredgewidth=3,color='orange') plt.plot(b_history,w_history,'o-',ms=3,lw=1.5,color='black') plt.xlim(-200,-100) plt.ylim(-5,5) plt.xlabel(r'$b$',fontsize=16) plt.ylabel(r'$w$',fontsize=16) plt.show()

?運行結果:

?

?

總結

以上是生活随笔為你收集整理的机器学习-01regression的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。