吴恩达深度学习第一课第三周单隐层神经网络实现,相关文件、数据集下载以及bug修改心得

这篇博客记录了作者在吴恩达深度学习课程中实现单隐藏层神经网络的过程,包括初始化参数、正向传播、损失计算、反向传播、参数更新和模型创建。作者分享了编程时遇到的问题,如数据集导入、BUG调试,特别是关于数据集可视化和代码修正的细节,以避免模型输入参数不匹配。最终,模型在数据集上取得了90%的准确率。
摘要由CSDN通过智能技术生成

最近在学习吴恩达老师深度学习的课程,实现了单隐藏层神经网络的实现,现在将自己在编程过程中遇到的问题记录下。
先将需要用到文件的分享
链接:https://pan.baidu.com/s/148VvXV-SWW-PrFS7mVK_oA 密码:rkk7
导入需要的库

import numpy as np
#Python绘制图形的库
import matplotlib.pyplot as plt
#testCases提供了一些测试示例来评估函数的正确性
from testCases import *
# sklearn为数据挖掘和数据分析提供了简单而有效的工具。
import sklearn
import sklearn.datasets
import sklearn.linear_model
from planar_utils import   plot_decision_boundary , sigmoid , load_planar_dataset,load_extra_datasets
np.random.seed(1)

对于每一个库的作用,我都加以解释了。需要注意的是我们添加了一个np.random.seed(1)种子,添加这句话的目的以及使用方法,可以参考我上一篇博客,这里不再赘述。

2.导入数据集以及可视化数据集

#获取要处理的数据集
X , Y=load_planar_dataset()
print(X.shape,Y.shape)
#可视化数据集
plt.scatter(X[0,:],X[1,:],c=np.squeeze(Y),s=40,cmap=plt.cm.Spectral)
shape_X=X.shape
shape_Y=Y.shape
m=shape_X[1]

在这里要注意,吴恩达老师在下面这段代码中c=Y,这是不正确的,应该改成c=np.squeeze(Y)

plt.scatter(X[0,:],X[1,:],c=np.squeeze(Y),s=40,cmap=plt.cm.Spectral)

数据导入好之后,我们可以直接用sklearn内置的函数检查线性回归在数据集上的表现

clf = sklearn.linear_model.LogisticRegressionCV()
clf.fit(X.T, Y.T)
plot_decision_boundary(lambda x: clf.predict(x), X,Y.ravel())
plt.title("Logistic Regression")
plt.show()
# Print accuracy
LR_predictions = clf.predict(X.T)
print ('Accuracy of logistic regression: %d ' % float((np.dot(Y,LR_predictions) + np.dot(1-Y,1-LR_predictions))/float(Y.size)*100) +  '% ' + "(percentage of correctly labelled datapoints)")

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值