吴恩达ex3_吴恩达机器学习代码及相关知识点总结--ex3(1.神经网络)

1.加载数据

def load_data(path,transpose=True):

data=sio.loadmat(path)

y=data.get("y")#before reshape:(5000, 1)

y=y.reshape(y.shape[0])

X=data.get("X")#(5000,400),(400,)

if transpose:

#向量化,让每列为一个样本变为每行是一个样本?

X=np.array([im.reshape((20,20)).T for im in X])

X=np.array([im.reshape(400) for im in X])#将样本展开为原来的(400,)

return X,y

X, y = load_data('code/ex3-neural network/ex3data1.mat')

print(X.shape)

print(y.shape)

(5000, 400)

(5000,)

2.画图

def plot_an_image(image):

fig,ax=plt.subplots(figsize=(1,1))

ax.matshow(image.reshape((20, 20)), cmap=matplotlib.cm.binary)

plt.xticks(np.array([])) # just get rid of ticks去除刻标

plt.yticks(np.array([]))

pick_one = np.random.randint(0, 5000)

plot_an_image(X[pick_one,:])

plt.show()

print('this should be {}'.format(y[pick_one]))

matplotlib.pyplot.matshow 矩阵可视化,plot a matrix or an array as an image。

在matplotlib中ticks表示的是刻度,而刻度有两层意思,一个是刻标(locs),一个是刻度标签(tick labels)。在作图时,x轴y轴都是连续的,所以刻标可以随意指定,就是在连续变量上找寻位置,而刻度标签则可以对应替换:

xticks()返回了两个对象,一个是刻标(locs),另一个是刻度标签

locs, labels = xticks()

def plot_100_image(X):

size=int(np.sqrt(X.shape[1]))

sample_idx=np.random.choice(np.arange(X.shape[0]),100)#在5000个样本里选100个

sample_images=X[sample_idx,:]

fig,ax_array=plt.subplots(nrows=10,ncols=10,sharex=True,sharey=True)

for r in range(10):

for c in range(10):

ax_array[r,c].matshow(sample_images[10*r+c].res

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值