当前位置: 首页 > news >正文

网站开发实训报告模板十大品牌策划公司

网站开发实训报告模板,十大品牌策划公司,企业邮箱收费标准,安徽省建设监理协会在机器学习-01中#xff0c;我们介绍了关于机器学习的一般建模流程#xff0c;并且在基本没有数学公式和代码的情况下#xff0c;简单介绍了关于线性回归的一般实现形式。不过这只是在初学阶段、为了不增加基础概念理解难度所采取的方法#xff0c;但所有的技术最终都是为了…  在机器学习-01中我们介绍了关于机器学习的一般建模流程并且在基本没有数学公式和代码的情况下简单介绍了关于线性回归的一般实现形式。不过这只是在初学阶段、为了不增加基础概念理解难度所采取的方法但所有的技术最终都是为了解决实际问题的因此接下来我们就在之前的基础上更进一步从一个更加严谨的理论体系出发、来尝试进行一种更加贴合实际应用所采用的一般方法的建模方法的学习。 import numpy as np import pandas as pd一、NumPy矩阵运算基础 在进入到本节正式内容之前我们需要先补充一些矩阵相关基础概念以及矩阵运算的基本方法。   在机器学习基础阶段需要掌握的矩阵及线性代数基本理论包括 矩阵的形变及特殊矩阵的构造方法包括矩阵的转置、对角矩阵的创建、单位矩阵的创建、上/下三角矩阵的创建等矩阵的基本运算包括矩阵乘法、向量内积、矩阵和向量的乘法等矩阵的线性代数运算包括矩阵的迹、矩阵的秩、逆矩阵的求解、伴随矩阵和广义逆矩阵等矩阵分解运算特征分解、奇异值分解和SVD分解等。 本节将先介绍前三部分内容矩阵分解部分内容将在后续补充。 1.NumPy中的矩阵表示 在NumPy中二维数组(array)和matrix类型对象都可以用于表示矩阵并且也都具备矩阵的代数学方法。 利用数组创建矩阵 A np.array([[1, 2], [1, 1]])Aarray([[1, 2],[1, 1]])type(A)numpy.ndarray利用mat创建矩阵 AM np.mat(A) AMmatrix([[1, 2],[1, 1]])type(AM) numpy.matrix关于两种对象类型的选取此处进行简单说明 NumPy中的matrix类型对象和MATLAB中的matrix类型等价和NumPy中数组类型对象底层基本结构不同在NumPy中针对大规模数据数组类型对象的计算速度要快于矩阵类型对象矩阵类型对象可以通过运算符直接进行矩阵乘法而二维数组要进行矩阵乘法及其他矩阵运算则必须要使用包括linalg线性代数运算模块在内的相关函数。 AM * AMmatrix([[3, 4],[2, 3]])A.dot(A) array([[3, 4],[2, 3]])# 新版NumPy也支持使用符号进行矩阵乘法 A A array([[3, 4],[2, 3]])为了执行更高效的计算、以及确保代码整体基本对象类型统一课程如无说明将统一使用二维数组表示矩阵。 2.NumPy中特殊矩阵构造方法 在实际线性代数运算过程中经常涉及一些特殊矩阵如单位矩阵、对角矩阵等相关创建方法如下 函数描述a.T数组a转置np.eye(n)创建包含n个分量的单位矩阵np.diag(a1)以a1中各元素创建对角矩阵np.triu(a)取矩阵a中的上三角矩阵np.tril(a)取矩阵a中的下三角矩阵 下面将展示一些矩阵的基本操作 # 创建一个2*3的矩阵 a1 np.arange(1, 7).reshape(2, 3)a1 array([[1, 2, 3],[4, 5, 6]])# 转置 a1.Tarray([[1, 4],[2, 5],[3, 6]])矩阵的转置就是每个元素行列位置互换 # 创建单位矩阵 np.eye(3) array([[1., 0., 0.],[0., 1., 0.],[0., 0., 1.]])单位矩阵之所以被称为“单位”核心原因在于单位矩阵和任何矩阵相乘都将返回原矩阵。 a np.arange(5)a array([0, 1, 2, 3, 4])np.diag(a) array([[0, 0, 0, 0, 0],[0, 1, 0, 0, 0],[0, 0, 2, 0, 0],[0, 0, 0, 3, 0],[0, 0, 0, 0, 4]])# 对角线向上偏移一位 np.diag(a, 1) array([[0, 0, 0, 0, 0, 0],[0, 0, 1, 0, 0, 0],[0, 0, 0, 2, 0, 0],[0, 0, 0, 0, 3, 0],[0, 0, 0, 0, 0, 4],[0, 0, 0, 0, 0, 0]])# 对角线向下偏移一位 np.diag(a, -1) array([[0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0],[0, 1, 0, 0, 0, 0],[0, 0, 2, 0, 0, 0],[0, 0, 0, 3, 0, 0],[0, 0, 0, 0, 4, 0]])a1 np.arange(9).reshape(3, 3) a1 array([[0, 1, 2],[3, 4, 5],[6, 7, 8]])# 取上三角矩阵 np.triu(a1) array([[0, 1, 2],[0, 4, 5],[0, 0, 8]])# 上三角矩阵向左下偏移一位 np.triu(a1, -1) array([[0, 1, 2],[3, 4, 5],[0, 7, 8]])# 上三角矩阵向右上偏移一位 np.triu(a1, 1) array([[0, 1, 2],[0, 0, 5],[0, 0, 0]])# 下三角矩阵 np.tril(a1) array([[0, 0, 0],[3, 4, 0],[6, 7, 8]])3.NumPy中矩阵基本运算 由于NumPy中我们使用二维数组来表述矩阵因此二维数组也就具备了数组和矩阵的两重属性。其中数组属性决定的基本运算相对简单基础运算如加减乘除就是对应位置元素进行逐元素计算而矩阵属性决定的运算则稍显复杂当然矩阵的相关线性代数运算将在下一小节讨论在基础运算上矩阵和数组核心的区别在于乘法运算。   当然从另一个角度考虑其实对于向量和矩阵这种具备一定结构的对象有很多种容易混淆的计算规则。对于常用的计算规则我们通过将其划分成三类以帮助大家理解 描述解释/函数逐元素相乘向量、矩阵通用每个对应位置元素相乘*逐元素相乘后相加也被称为点积内积向量矩阵通用向量点积vdot、dot、inner矩阵点积vdot矩阵乘法代数学意义的矩阵相乘矩阵乘法dot、matmul、 * :逐元素相乘 a np.arange(4) a array([0, 1, 2, 3])a * a array([0, 1, 4, 9])A a.reshape(2, 2) A array([[0, 1],[2, 3]])A * A array([[0, 1],[4, 9]])向量点积   所谓点积也被称为内积指的是向量或矩阵对应位置元素相乘后相加。向量点积有三种实现方法分别是dot、vdot和ineer。 np.dot(a, a) 14a.dot(a) 14(a * a).sum() 14np.vdot(a, a) 14np.inner(a, a) 14矩阵点积   值得注意的是矩阵内积只有vdot一种方式实现。 A array([[0, 1],[2, 3]])np.vdot(A, A) 14(A * A).sum() 14注意高维数组的inner并不是内积而是一种类似tensordot的沿着尾轴实现和积的计算过程该方法并不通用此处暂不做介绍。 矩阵乘法   NumPy中我们可以使用诸多方法实现矩阵乘法包括dot、、matmul等。 a1 np.arange(1, 7).reshape(2, 3) a1 array([[1, 2, 3],[4, 5, 6]])a2 np.arange(1, 10).reshape(3, 3) a2 array([[1, 2, 3],[4, 5, 6],[7, 8, 9]])# 矩阵乘法 np.matmul(a1, a2) array([[30, 36, 42],[66, 81, 96]])此处也简单回顾矩阵乘法运算上述相乘过程如下所示 值得注意的是矩阵相乘要求左乘矩阵列数和右乘矩阵行数相同而内积计算过程则严格要求两个向量/矩阵形状完全一致。 4.NumPy中矩阵代数运算 如果说矩阵的基本运算是矩阵基本性质那么矩阵的线性代数运算则是我们利用矩阵数据类型在求解实际问题过程中经常涉及到的线性代数方法具体相关函数如下 矩阵的线性代数运算 函数描述np.trace(A)矩阵的迹np.linalg.matrix_rank(A)矩阵的秩np.linalg…det(A)计算矩阵A的行列式np.linalg.inv(A)矩阵求逆 同时由于线性代数所涉及的数学基础知识较多从实际应用的角度出发我们将有所侧重的介绍实际应用过程中需要掌握的相关内容并通过本节末尾的实际案例来加深线性代数相关内容的理解。 NumPy中的linalg是linear algebra线性代数的简写也是NumPy中保存线性代数相关计算函数的模块。 矩阵的迹trace 矩阵的迹的运算相对简单就是矩阵对角线元素之和在NumPy中可以使用trace函数进行计算。 A np.array([[1, 2], [4, 5]]) A array([[1, 2],[4, 5]])np.trace(A) 6当然对于矩阵的迹来说计算过程不需要是方正 B np.arange(1, 7).reshape(2, 3) B array([[1, 2, 3],[4, 5, 6]])np.trace(B) 6矩阵的秩(rank)   矩阵的秩rank是指矩阵中行或列的极大线性无关数且矩阵中行、列极大无关数总是相同的任何矩阵的秩都是唯一值满秩指的是方阵行数和列数相同的矩阵中行数、列数和秩相同满秩矩阵有线性唯一解等重要特性而其他矩阵也能通过求解秩来降维同时秩也是奇异值分解等运算中涉及到的重要概念。 所谓线性相关其实也就是线性表示如果 y w x b ywxb ywxb我们则称y可以由x线性表示二者线性相关反之则线性无关。类似如果 y w 1 x 1 w 2 x 2 b yw_1x_1w_2x_2b yw1​x1​w2​x2​b则我们称y可以由 x 1 、 x 2 x_1、x_2 x1​、x2​线性表示y与 x 1 、 x 2 x_1、x_2 x1​、x2​线性相关。 matrix_rank计算矩阵的秩 A np.array([[1, 3, 4], [2, 1, 3], [1, 1, 2]]) A array([[1, 3, 4],[2, 1, 3],[1, 1, 2]])np.linalg.matrix_rank(A) 2对于矩阵A来说第三列明显可以由第一列和第二列相加得出因此极大线性无关组只有两列。 B np.array([[1, 3, 4], [2, 1, 3], [1, 1, 10]]) B array([[ 1, 3, 4],[ 2, 1, 3],[ 1, 1, 10]])np.linalg.matrix_rank(B) 3矩阵的行列式(det)   所谓行列式我们可以简单将其理解为矩阵的一个基本性质或者属性通过行列式的计算我们能够知道矩阵是否可逆从而可以进一步求解矩阵所对应的线性方程。当然更加专业的解释行列式的作为一个基本数学工具实际上就是矩阵进行线性变换的伸缩因子。 对于任何一个n维方正行列式计算过程如下 更为简单的情况如果对于一个2*2的矩阵行列式的计算就是主对角线元素之积减去另外两个元素之积 A np.array([[1, 2], [4, 5]]) A array([[1, 2],[4, 5]])np.linalg.det(A) -2.9999999999999996A的秩计算过程如下 对于行列式的计算要求矩阵必须是方阵也就是行列数必须一致。 B np.arange(1, 7).reshape(2, 3) B array([[1, 2, 3],[4, 5, 6]])np.linalg.det(B)A np.array([[1, 3, 4], [2, 1, 3], [1, 1, 2]]) A array([[1, 3, 4],[2, 1, 3],[1, 1, 2]])np.linalg.det(A) 0.0矩阵的逆   对于满秩的方正来说可以求其逆矩阵。从基本定义上来看如果矩阵B和矩阵A相乘能够得到单位矩阵即 B ⋅ A E B \cdot A E B⋅AE 则称B为A的逆矩阵也可将B写作 A − 1 A^{-1} A−1。当然逆矩阵的性质是相互的我们也可称A为B的逆矩阵或者A和B互为逆矩阵。 A np.array([[1, 1], [3, 1]]) A array([[1, 1],[3, 1]])然后使用inverse函数进行逆矩阵求解 np.linalg.inv(A) array([[-0.5, 0.5],[ 1.5, -0.5]])简单试探逆矩阵的基本特性 A.dot(np.linalg.inv(A)) array([[1.00000000e00, 1.11022302e-16],[2.22044605e-16, 1.00000000e00]])当然对于逆矩阵还有很多其他理解角度。例如从方程组求解角度来看逆矩阵的存在就代表着方程组存在唯一解并且逆矩阵本身也是方程组求解的关键从矩阵分解角度来看逆矩阵是一种最为基础的矩阵分解的形式。关于这些相关内容我们都将在后续课程中逐渐介绍。 另外在本栏目内容中我们还将介绍solve方程组求解、lstsq最小二乘法相关函数的使用。
http://www.dnsts.com.cn/news/258762.html

相关文章:

  • 做的好的网站开发centos wordpress 一键
  • 高新营销型网站建设公司大渝网官网
  • 网站类型大全全球快速建站工具
  • 程序员给别人做的网站违法了网页设计报告结束语
  • wordpress成品网站云部落做宣传类网站需要什么资质
  • 个人注册公司在哪个网站申请网页布局方式
  • 网站的实用性了解网站建设的基本流程
  • 中英文网站建站wordpress4.9.7
  • 连云港市网站平台太原网站建设加q.479185700
  • 金融网站框架模板企业网站多少钱一个
  • 网站建设文化策划沭阳金地建设网站
  • 大于二高端网站建设做网站技术好学嘛
  • 支持支付宝登录的网站建设网站权重多少4
  • 网站开发用什么莱芜交友论坛
  • 用粉色做网站主题色wordpress 500错误解决
  • wordpress用户勾选北京seo实训班学校
  • 东营长安网站建设进入公众号平台
  • 城市维护建设税在哪个网站申报太原建设网站制作
  • 市场调研是什么工作关键词优化价格表
  • 建网站要多少钱 优帮云wordpress代码主题
  • 推荐网站建设的书怎么做水果网站
  • 网站维护中模版网络管理员考试
  • 气象网站建设备案网站查询
  • 瑞安网站网站建站
  • 网站打不开怎么做网站怎么做内链外链
  • 建设银行的英语网站温州市建设工程管理网站
  • 竞价网站策划英语网站新增两个栏目
  • 扁平化购物网站模板制作京东网站建设
  • 搭建一个企业网站需要多少钱买到域名怎么做网站
  • 做本地网站需要什么资质wordpress手机主题浮动导航