联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> javajava

日期:2018-09-21 04:04

1.本问题介绍了 numpy 它提供的和一些最强大的功能。注意,python 中的数组索引是从 0 开始,而不是像

MATLAB 从 1 开始的。

1.1 使用 numpy random seed 将 random seed 设置为零,并创建一个大小为(8,8)的随机数据 a,其值介于 0

和 8 之间。

1.2 创建数组 b,其中包含原始数组 a 的 3,4 和 5 行。

1.3 找到数组 b 中所有数字 7 的位置,并打印出行和列的索引(0 为第一行)。要求使用逻辑索引和函数

numpy 找到它们

1.4 将 b 的第一行和 b 中的所有行进行点乘。可以通过直接将第一行与矩阵相乘来实现。(因为 numpy 广播

第一个数组,从而匹配第二个数组的大小)

1.5 将种子 seed 设置回零并创建两个大小为(1000,1000)的新数组 a 和 b。创建一个函数 matmul,负责接收两

个向量,即对新矩阵中的每个元素,每次从矩阵 1 中获取一行,从矩阵 2 中的取相应列,进行的点积的矩

阵乘法。在先前创建的矩阵上运行您的函数,并打印计算乘积所用的时间。重复相同的实验,这次使用内

置的乘积操作并打印执行时间。请问有什么区别吗?解释为什么内置函数实现比你编写的函数更快。

2. 本问题要求找到逻辑回归算法的权重,该算法将数据分为两类(类别)。请结合以下文本和提供的

jupyter 笔记本的代码模板来解决此问题。在回答笔记本中的问题时,应遵循以下要求:输入数组 X,标签

数组 Y,预测数组Y?,参数 θ,数据点数 N,A 的第 i 个元素是 ai。

2.1 从目录 q2-data /中加载 csv 文件 x1.csv,x2.csv 和 labels.csv,并将它们分别存储在数组 x1,x2 和标签

中。堆叠数组 x1 和 x2 数组,从而创建形状为(10000,2)的数组输入。检查标签的大小。

2.2 按照 jupyter 笔记本中的要求写下 sigmoid 和 log-likelihood 函数。

2.3 写下对数似然梯度的方程,然后定义逻辑回归函数。

2.4 通过调用先前定义的逻辑回归函数来计算权重。也可以从 sklearn 获得相同的权重值。

2.5 分别计算从逻辑回归函数和从 sklearn 获得的权重值,计算的预测标签的准确性。

2.6 按照 jupyter 笔记本中的要求,将可视化错误分类。

3. 本问题介绍使用大量的数据文件。在文件夹 output-data/中,有两种类型的 csv 文件,包含目标和输出值

文件,输出是 ML 模型在预测目标时产生的值。每次加载目标 csv 和相应的输出 csv 时,需要成对加载文

件。从这两个文件加载的数组应具有 64 * 64 的维度。该文件的 id 是包含四个/五个数字的字符串(例如:0-

10-40-80 或 0-10-40-80-R5)。初始化两个列表 L1 和 L2,从而分别存储文件的 id 和平均错误值。建议导入

以下库:numpy,glob,csv,os,matplotlib

3.1 一次性加载相应的目标和输出数组,并计算错误矩阵| output -target |(“| 输出 -目标 |”)。将该对的 id 附

加到 L1,将平均错误值(标量)附加到 L2。使用函数 numpy.save 保存错误数组,将 id 添加到字符串error.npy”之前。提示:使用

glob.glob 扫描数据文件夹中的所有目标文件,然后用 id 定位输出文件

3.2 保存列表 L1 和 L2,从而找到输出文件到 output-data / error.csv,每行存储 id 和相应的错误值,值应以逗

号分隔。

3.3 打印出 L2 的平均值,最大值和最小误差值。

3.4 绘制错误值,要求采用将 x 轴指向列表中索引的方法。

3.5 加载每个错误文件并为每个数组创建一个轮廓(使用 matplotlib.contourf)。将绘制的曲线存为 png 文

件,存储在目录 output-data /中,其 id 前缀为字符串“-plot.png”。在下一个 jupyter 单元格中显示 id“0-10-

3050”的错误图。


版权所有:留学生程序网 2020 All Rights Reserved 联系方式:QQ:99515681 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。