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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

2.4 程序示例--线性决策边界-机器学习笔记-斯坦福吴恩达教授

發(fā)布時(shí)間:2025/4/5 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2.4 程序示例--线性决策边界-机器学习笔记-斯坦福吴恩达教授 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

程序示例–線性決策邊界

回歸模塊

在邏輯回歸模塊 logical_regression.py 中,實(shí)現(xiàn)了批量梯度下降法(bgd)以及隨機(jī)梯度下降法(sgd),同時(shí),支持正規(guī)化方程

# coding: utf-8 # logical_regression/logical_regression.py import numpy as np import matplotlib as plt import timedef exeTime(func):"""耗時(shí)計(jì)算裝飾器Args:func 待裝飾函數(shù)Returns:newFunc 裝飾后的函數(shù)"""def newFunc(*args, **args2):t0 = time.time()back = func(*args, **args2)return back, time.time() - t0return newFuncdef loadDataSet(filename):"""讀取數(shù)據(jù)集數(shù)據(jù)以TAB進(jìn)行分割A(yù)rgs:filename 文件名Returns:X 訓(xùn)練樣本集矩陣y 標(biāo)簽集矩陣"""numFeat = len(open(filename).readline().split('\t')) - 1X = []y = []file = open(filename)for line in file.readlines():lineArr = []curLine = line.strip().split('\t')for i in range(numFeat):lineArr.append(float(curLine[i]))X.append([1.0, float(lineArr[0]), float(lineArr[1])])y.append(float(curLine[-1]))return np.mat(X), np.mat(y).Tdef sigmoid(z):"""sigmoid函數(shù)"""return 1.0/(1.0+np.exp(-z))def J(theta, X, y, theLambda=0):"""預(yù)測(cè)代價(jià)函數(shù)"""m, n = X.shapeh = sigmoid(X.dot(theta))J = (-1.0/m)*(np.log(h).T.dot(y)+np.log(1-h).T.dot(1-y)) + (theLambda/(2.0*m))*np.sum(np.square(theta[1:]))if np.isnan(J[0]):return(np.inf)return J.flatten()[0,0]@exeTime def gradient(X, y, options):"""隨機(jī)梯度下降法Args:X 樣本矩陣y 標(biāo)簽矩陣rate 學(xué)習(xí)率options.theLambda 正規(guī)參數(shù)options.maxLoop 最大迭代次數(shù)options.epsilon 收斂精度options.method- 'sgd' 隨機(jī)梯度下降法- 'bgd' 批量梯度下降法Returns:(thetas, errors), timeConsumed"""m,n = X.shape# 初始化參數(shù)矩陣theta = np.ones((n,1))count = 0 # 迭代次數(shù)# 初始化誤差無(wú)限大error = float('inf')# 保存誤差變化狀況errors = []# 保存參數(shù)的變化狀況thetas = []rate = options.get('rate', 0.01)epsilon = options.get('epsilon', 0.1)maxLoop = options.get('maxLoop', 1000)theLambda = options.get('theLambda', 0)method = options['method']def _sgd(theta):converged = Falsefor i in range(maxLoop):if converged:breakfor j in range(m):h = sigmoid(X[j] *theta)diff = h - y[j]theta = theta - rate*(1.0/m)*X[j].T*differror = J(theta, X, y)errors.append(error)if error < epsilon:converged = Truebreakthetas.append(theta)return thetas, errors, i+1def _bgd(theta):for i in range(maxLoop):h = sigmoid(X.dot(theta))diff = h - y# theta0 should not be regularizedtheta = theta - rate*((1.0/m)*X.T*diff + (theLambda/m)*np.r_[[[0]], theta[1:]])error = J(theta, X, y, theLambda)errors.append(error)if error < epsilon:breakthetas.append(theta)return thetas, errors, i+1methods = {'sgd': _sgd,'bgd': _bgd}return methods[method](theta)

測(cè)試

# coding: utf-8 # logical_regression/test_linear_boundry.py import numpy as np import logical_regression as regression import matplotlib.pyplot as plt import matplotlib.ticker as mtickif __name__ == "__main__":X, y = regression.loadDataSet('data/linear.txt')m, n = X.shapeoptions = [{'rate': 0.1,'epsilon': 0.01,'maxLoop': 500,'method': 'bgd'},{'rate': 1,'epsilon': 0.01,'maxLoop': 200,'method': 'sgd'}]for option in options:result, timeConsumed = regression.gradient(X, y, option)thetas, errors, iterationCount = resulttheta = thetas[-1]print theta, errors[-1], iterationCount# 繪制數(shù)據(jù)點(diǎn)fittingFig = plt.figure()title = '%s: rate=%.2f, iterationCount=%d, error=%.2f \n time: %.2fs' % (option['method'], option['rate'], iterationCount, errors[-1], timeConsumed)ax = fittingFig.add_subplot(111, title=title)ax.set_xlabel('X1')ax.set_ylabel('X2')for i in range(m):x = X[i].A[0]if y[i] == 1:ax.scatter(x[1], x[2], marker='*', color='black', s=50)else:ax.scatter(x[1], x[2], marker='o', color='green', s=50)# 繪制決策邊界x1Min = X[:, 1].min()x1Max = X[:, 1].max()x2Min = X[:, 2].min()x2Max = X[:, 2].max()xx1, xx2 = np.meshgrid(np.linspace(x1Min, x1Max),np.linspace(x2Min, x2Max))h = regression.sigmoid(np.c_[np.ones((xx1.ravel().shape[0],1)), xx1.ravel(), xx2.ravel()].dot(theta))h = h.reshape(xx1.shape)plt.contour(xx1, xx2, h, [0.5], colors='b', linewidth=.5)plt.show()# 繪制誤差曲線errorsFig = plt.figure()ax = errorsFig.add_subplot(111)ax.yaxis.set_major_formatter(mtick.FormatStrFormatter('%.4f'))ax.plot(range(len(errors)), errors)ax.set_xlabel('Number of iterations')ax.set_ylabel('Cost J')plt.show()# 繪制theta的變化情況thetasFig, ax = plt.subplots(len(thetas[0]))thetas = np.asarray(thetas)for idx, sp in enumerate(ax):thetaList = thetas[:, idx]sp.plot(range(len(thetaList)), thetaList)sp.set_xlabel('Number of iteration')sp.set_ylabel(r'$\theta_%d$'%idx)plt.show()

批量梯度下降法獲得的決策邊界如下,測(cè)試中,迭代次數(shù)為 500 次,學(xué)習(xí)率為 0.1

批量梯度下降法中,代價(jià)函數(shù)隨迭代次數(shù)變化狀況如下:


隨機(jī)梯度下降法獲得決策邊界如下,測(cè)試中,迭代次數(shù)為 200 次,學(xué)習(xí)率為 1

隨機(jī)梯度下降法中,參數(shù) θθθ 的變化情況如下圖所示:

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的2.4 程序示例--线性决策边界-机器学习笔记-斯坦福吴恩达教授的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产又粗又猛 | 亚洲情人网 | 国产在线视频卡一卡二 | 日韩在线一区二区三区四区 | 在线视频午夜 | 免费av免费看 | 国内精品久久久久久久久 | 色播五月激情五月 | 一本色道久久综合精品婷婷 | 狠狠撸狠狠干 | 日韩一级完整毛片 | 37p粉嫩大胆色噜噜噜 | av超碰在线观看 | 成年人网站免费视频 | 国产曰肥老太婆无遮挡 | 久久五月综合 | av成人免费在线 | 国产专区一区二区三区 | 91无套直看片红桃 | 三级少妇 | 中文字幕va | 毛片av免费看 | 精品香蕉99久久久久网站 | www.免费av | 天天操天天干天天爽 | 无码人妻精品一区二区三区66 | 催眠调教艳妇成肉便小说 | 免费国产羞羞网站视频 | 国产精品伦子伦 | 亚洲一区二区三区精品视频 | 日本黄网站在线观看 | 久久久国产一区二区三区 | 国产成人精品无码免费看81 | 99热在线免费| www一起操 | 日日摸天天添天天添破 | 朝桐光在线观看 | 国产中文字幕一区二区三区 | 成人在线观看h | 99久久99久久精品国产片果冻 | 99久久久精品免费观看国产 | 香蕉视频黄在线观看 | 午夜精品网站 | 黄色网炮 | 99re在线视频精品 | 国产免费观看一区 | 91在线亚洲 | 鲁片一区二区三区 | 国产99久久九九精品无码免费 | 99色综合| 日韩精品一 | 色丁香六月 | 一级片大片 | 中文天堂av | 亚洲AV成人无码电影在线观看 | 国产一级免费观看 | 福利国产在线 | 美脚の诱脚舐め脚 | 欧美日p视频 | 悟空影视大全免费高清观看在线 | 色综合福利 | a√在线视频 | 不卡av在线播放 | 久久牛牛| 国产一级网站 | 久久久久在线视频 | 久久久久无码国产精品不卡 | 天堂一区二区三区 | 成人免费毛片观看 | 北条麻妃一区二区三区免费 | 国产高潮在线观看 | 岛国av毛片 | 欧美在线中文字幕 | 日本在线三级 | 小宵虎南在线观看 | 色综综| 天天插天天射 | 免费不卡av在线 | 老女人性生活视频 | 丁香一区二区 | 男女啪啪软件 | 少妇天天干| 性av网站| 91精品视频一区二区三区 | 免费男女乱淫真视频免费播放 | 精品动漫一区二区三区的观看方式 | 少妇一级淫片免费 | 99网站| 亚洲精品鲁一鲁一区二区三区 | 天天碰视频 | 国产99色 | 男人的网站在线观看 | 国产麻豆成人 | 男人的av | 欧美无遮挡| 免费在线h | 人妻毛片 | 国产精彩视频在线观看 | 91淫黄大片|