資源簡介
吳恩達(dá)深度學(xué)習(xí)第一課第四周作業(yè)及學(xué)習(xí)心得體會,含三元分類問題解決!

代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
“““
Created?on?Thu?Jul?19?21:22:04?2018
@author:?yuanye
“““
import?numpy?as?np
import?matplotlib.pyplot?as?plt
from?sklearn.linear_model?import?LogisticRegression
#產(chǎn)生數(shù)據(jù)
np.random.seed(1)
m?=?600?????????????????????????????????#樣本數(shù)
N?=?int(m/2)????????????????????????????#分為兩類
D?=?2???????????????????????????????????#樣本的特征數(shù)或維度
X?=?np.zeros((mD))?????????????????????#初始化樣本坐標(biāo)
Y?=?np.zeros((m1))?????????????????????#初始化樣本標(biāo)簽
a?=?4???????????????????????????????????#基礎(chǔ)半徑
for?j?in?range(2):
????ix?=?range(N*jN*(j+1))#ix=(0,199)(200,399)
????t?=?np.linspace(j*3.12(j+1)*3.12N)????????????????????????????#theta角度,產(chǎn)生200個(gè)角度并加入隨機(jī)數(shù),保證角度隨機(jī)分開,圖像開起來稀疏程度不一
????r?=?a*np.sin(4*t)?+?np.random.randn(N)*0.2??????????????????????#radius半徑,4sin(4*t)并加入一定的隨機(jī),圖像軌道不平滑
????X[ix]?=?np.c_[r*np.sin(t)?r*np.cos(t)]?????????????????????????#生成坐標(biāo)點(diǎn)
????Y[ix]?=?j???????????????????????????????????????????????????????#red?or?blue
X?=?X.T
Y?=?Y.T
log?=?LogisticRegression(C=2000)
log.fit(X.TY.ravel())??????????????????????#用X和Y來進(jìn)行邏輯回歸訓(xùn)練
y_log_predict?=?log.predict(X.T)????????????#根據(jù)訓(xùn)練結(jié)果對X進(jìn)行預(yù)測
p_log?=?np.mean(y_log_predict==Y.ravel())???#計(jì)算準(zhǔn)確率
print(‘邏輯回歸的準(zhǔn)確率為:%f‘%p_log)
x_min?x_max?=?X[0?:].min()?-?1?X[0?:].max()?+?1
y_min?y_max?=?X[1?:].min()?-?1?X[1?:].max()?+?1
xx?yy?=?np.meshgrid(np.arange(x_min?x_max?0.01)np.arange(y_min?y_max?0.01))?#將二維平面以0.01*0.01的間隔散開,xx為每個(gè)點(diǎn)的橫坐標(biāo),yy為每個(gè)點(diǎn)的縱坐標(biāo)
zz?=?np.array([xx.ravel()?yy.ravel()]).T???#zz為每個(gè)點(diǎn)的橫縱坐標(biāo),其行數(shù)為總點(diǎn)數(shù),列數(shù)為特征數(shù),即維度
Z?=?log.predict(zz)?????????????????????????#通過logistic回歸預(yù)測每個(gè)點(diǎn)的標(biāo)簽
Z?=?Z.reshape(xx.shape)
plt.figure(1)
plt.scatter(X[0?:]?X[1?:]?c=np.squeeze(Y)?edgecolors=‘k‘?s=40?cmap=plt.cm.Spectral)
plt.contourf(xx?yy?Z?alpha=0.3cmap=plt.cm.Spectral)?#繪制等高線
plt.xlim(xx.min()?xx.max())
plt.ylim(yy.min()?yy.max())
plt.show()
#初始化參數(shù)
def?init_para(layer_dims):
????L?=?len(layer_dims)?????????????#L為總層數(shù)
????np.random.seed(L)
????parameters?=?{}
????for?l?in?range(1L):????????????#初始化W1~WLb1~bL
????????parameters[‘W‘+str(l)]?=?np.random.randn(layer_dims[l]?layer_dims[l-1])*0.01
????????parameters[‘b‘+str(l)]?=?np.zeros((layer_dims[l]?1))
????return?parameters
#單次前向運(yùn)算
def?single_forward(A_pre?W?b?mode):
????Z?=?np.dot(W?A_pre)?+?b????????#根據(jù)上一層的輸出A_pre,以及本層的W?b計(jì)算本層的Z
????if?mode==‘sigmoid‘:?????????????#根據(jù)所選定的激活函數(shù)計(jì)算本層的輸出
????????A?=?1.0/(1+np.exp(-Z))
????if?mode==‘ReLU‘:
????????A?=?(Z+abs(Z))/2
????if?mode==‘tanh‘:
????????A?=?np.tanh(Z)
????cache?=?{‘A_pre‘:A_pre
?????????????‘W‘:W
?????????????‘b‘:b
?????????????‘Z‘:Z
?????????????‘A‘:A}
????return?A?cache
#前向傳播函數(shù)
def?prop_forward(X?parameters):
????caches?=?[]
????A?=?X???????????????????????????#將X賦給A0
????L?=?len(parameters)//2
????for?l?in?range(1L):????????????#l從1到L-1,調(diào)用L-1次前向運(yùn)算,由于A0的特征值存在大量負(fù)數(shù),
????????A_pre?=?A???????????????????#因此第一層激活函數(shù)如果選用ReLU無法正確訓(xùn)練網(wǎng)絡(luò),因?yàn)榇罅康男畔⒈唤氐?br/>????????Acache?=?single_forward(A_pre?parameters
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????7855??2018-07-27?00:00??neuralnetwork_Lla
?????文件????????8532??2018-07-27?00:06??neuralnetwork_Lla
?????文件??????721572??2018-07-27?00:22??吳恩達(dá)第一課第四周學(xué)習(xí)心得體會.docx
?????文件??????598050??2018-07-27?00:22??吳恩達(dá)第一課第四周學(xué)習(xí)心得體會.pdf
?????目錄???????????0??2018-07-26?21:54??CatRecognition_Lla
?????文件????????9447??2018-07-26?00:14??CatRecognition_Lla
?????目錄???????????0??2018-07-26?21:54??CatRecognition_Lla
?????文件??????616958??2017-09-02?17:29??CatRecognition_Lla
?????文件?????2572022??2017-09-02?17:30??CatRecognition_Lla
?????目錄???????????0??2018-07-26?21:54??CatRecognition_Lla
?????文件??????601084??2017-09-02?17:31??CatRecognition_Lla
?????文件??????954514??2018-07-15?21:31??CatRecognition_Lla
?????文件???????19441??2017-12-09?22:44??CatRecognition_Lla
?????文件???????94439??2017-09-02?17:32??CatRecognition_Lla
?????文件???????64278??2018-07-15?21:29??CatRecognition_Lla
?????文件??????129629??2018-07-15?21:30??CatRecognition_Lla
?????文件???????90920??2018-07-15?21:30??CatRecognition_Lla
?????文件??????310181??2017-09-02?17:31??CatRecognition_Lla
?????文件??????339673??2017-09-02?17:32??CatRecognition_Lla
?????文件??????636273??2017-09-02?17:32??CatRecognition_Lla
?????文件???????17997??2017-12-09?22:46??CatRecognition_Lla
?????文件???????35351??2018-07-15?21:28??CatRecognition_Lla
?????文件???????41561??2018-07-15?21:31??CatRecognition_Lla
?????文件???????73296??2018-07-15?21:31??CatRecognition_Lla
?????文件????????7899??2018-07-26?23:57??neuralnetwork_Lla
評論
共有 條評論