作业描述:
用1层隐藏层的神经网络分类二维数据
欢迎来到第3周的编程作业。 现在是时候建立你的第一个神经网络了,它将具有一层隐藏层。 你将看到此模型与你使用逻辑回归实现的模型之间的巨大差异。
你将学到如何:
- 实现具有单个隐藏层的2分类神经网络
- 使用具有非线性激活函数的神经元,例如tanh
- 计算交叉熵损失
- 实现前向和后向传播
数据集及源码下载:
链接:https://pan.baidu.com/s/1UT6XLCkohr3n37wTwkI3BA
提取码:4bmw
代码中的一些常见函数学习:
(1)plt.scatter()
函数的原型:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)
常用参数的解释:
x, y:表示的是shape大小为(n,)的数组,也就是我们即将绘制散点图的数据点,输入数据。
S:表示的是面积大小(注意不是直径),是一个标量或者是一个shape大小为(n,)的数组,可选,默认20。
C:颜色,默认蓝色“b”。
marker:表示的是标记的样式,默认的是'o'。
alpha:实数,0-1之间,可以设置透明度。
(2)multiply(a,b)
multiply(a,b)就是个乘法,如果a,b是两个数组,那么对应元素相乘。
(3)numpy.sum()
一、导入所需要的包
二、导入数据集,预处理
三、首先采用的是逻辑回归解决二分类
四、绘制决策边界
五、预期输出
Accuracy of logistic regression: 47 % (percentage of correctly labelled datapoints),可以看到逻辑回归分类准确率很低。