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

(机器学习的矩阵)(向量、矩阵与多元线性回归)

机器学习的矩阵

等公交车时我们期待大家要排队,如果 将人改为数字,也就是数字排队,这个就是矩阵(matrix)。

矩阵的表达方式

矩阵的行与列

矩阵是由row和clo(column的简写)组成。

\bigl(\begin{smallmatrix} 1 &2 &3 \\ 4 &5 &6 \\ 7 &8 &8 \end{smallmatrix}\bigr)

row翻译为行,col翻译为列。m\times n矩阵中m代表行(row),n代表列(column)。

矩阵变量名称

矩阵的变量名称常用大写英文字母表示,下列是设定矩阵的变量名称是A。

A=\bigl(\begin{smallmatrix} 1 & 2 & 3\\ 4 & 5 & 6 \end{smallmatrix}\bigr)

常见的矩阵表达方式

其它矩阵表达方式:

\begin{bmatrix} 1 &2 \\ 3 &4 \end{bmatrix}                \begin{vmatrix} 1 & 2\\ 3 & 4 \end{vmatrix}                \begin{Vmatrix} 1 & 2\\ 3 & 4 \end{Vmatrix}

矩阵元素表达方式

矩阵元素常用下标表示,可以参考下列书写方式:

a_{ij}

i是行号,j是列号。

\begin{pmatrix} a_{11} & \cdots & a_{1n}\\ \vdots & \ddots & \vdots \\ a_{m1} & \cdots & a_{mn} \end{pmatrix}                        \begin{pmatrix} a_{1,1} & \cdots & a_{1,n}\\ \vdots & \ddots & \vdots \\ a_{m,1} & \cdots & a_{m,n} \end{pmatrix}

矩阵相加与相减

基础概念

有2个矩阵如下:

A=\begin{pmatrix} a_{1,1} & \cdots &a_{1,n} \\ \vdots & \ddots &\vdots \\ a_{m,1} & \cdots & a_{m,n} \end{pmatrix}                        B=\begin{pmatrix} b_{1,1} & \cdots &b_{1,n} \\ \vdots & \ddots &\vdots \\ b_{m,1} & \cdots & b_{m,n} \end{pmatrix}

矩阵相加或相减,相当于相同位置的元素执行相加或是相减,所以不同大小的矩阵无法执行相加减,如下所示:

A+B=\begin{pmatrix} a_{1,1}+b_{1,1} & \cdots &a_{1,n}+b_{1,n} \\ \vdots & \ddots &\vdots \\ a_{m,1}+b_{m,1} & \cdots & a_{m,n}+b_{m,n} \end{pmatrix}

A-B=\begin{pmatrix} a_{1,1}-b_{1,1} & \cdots &a_{1,n}-b_{1,n} \\ \vdots & \ddots &\vdots \\ a_{m,1}-b_{m,1} & \cdots & a_{m,n}-b_{m,n} \end{pmatrix}

矩阵加减运算的交换律与结合律是成立的。

交换律:A+B=B+A

结合律:(A+B)+C=A+(B+C)

Python实践

定义矩阵可以使用numpy的matrix()方法,有一个矩阵如下:

A=\begin{pmatrix} 1 & 2 & 3\\ 4 & 5 & 6 \end{pmatrix}

>>> import numpy as np
>>> A=np.matrix([[1,2,3],[4,5,6]])
>>> A
matrix([[1, 2, 3],
        [4, 5, 6]])
>>>

矩阵相加与相减的应用

import numpy as np

A = np.matrix([[1, 2, 3], [4, 5, 6]])
B = np.matrix([[4, 5, 6], [7, 8, 9]])

print('A + B = {}'.format(A + B))
print('A - B = {}'.format(A - B))

运行结果如下:

[Running] python -u "c:\Users\a-xiaobodou\OneDrive - Microsoft\Projects\tempCodeRunnerFile.py"
A + B = [[ 5  7  9]
 [11 13 15]]
A - B = [[-3 -3 -3]
 [-3 -3 -3]]

[Done] exited with code=0 in 4.159 seconds

矩陈乘以实数

矩阵乘法

乘法基本规则

乘法案例

矩阵乘法规则

方形矩阵

单位矩阵

反矩阵

基础概念

Python实践

用反矩阵解联立方程式

张量

转置矩阵

基础概念

Python实践

转置矩阵的规则 

转置矩阵的应用

向量、矩阵与多元线性回归

向量应用在线性回归

单纯的线性方程式如下:

y=ax+b

x代表每年的拜访数据,y是每年国际证照的销售数据。如果数据量庞大,收集了n年,则可以使用向量表达此数据。

x=(x_1\; x_2\cdots x_n)        #下标代表第n年,x_n是第n年拜访客户次数

y=(y_1\; y_2\cdots y_n)        #下标代表第n年,y_n是第n年销售考卷数

由于上述x_ny_n代入y=ax+b会有误差\varepsilon,所以可以为误差加上下标,这样误差可以使用误差向量表示:

\varepsilon =(\varepsilon_1\;\varepsilon_2\;\cdots \;\varepsilon_n)

现在的线性方程式:y=ax+b+\varepsilon

现在斜率a与截距b是标量,由于斜率a乘以向量x后会是n维向量,所以必须将标量b改为向量,如下所示:b=(b_1\;b_2\;\cdots \;b_n)

整个线性方程式执行推导:

y=ax+b+\varepsilon

\varepsilon =y-ax-b

使用最小平方法计算误差平方的总和:\varepsilon _{i}^{2}=\sum_{i=1}^{n}\varepsilon _{i}^{2}

误差向量\varepsilon的内积,推导公式:\varepsilon _{i}^{2}=\sum_{i=1}^{n}\varepsilon _{i}^{2}=\left \| \varepsilon \right \|^2

执行误差平方最小化,等同是计算向量内积:\varepsilon \cdot \varepsilon =(y-ax-b)\cdot (y-ax-b) 

向量应用在多元线性回归

在多元回归中,习惯会用\beta当作斜率的系数,截距则用\beta_0代替,整个多元回归通式可以使用下列公式表达:y=\beta _1x_1+\beta _2x_2+\cdots +\beta _nx_n+\beta _0+\varepsilon

矩阵应用在多元线性回归

将截距放入矩阵

简单的线性回归

相关文章:

  • 计算摄影——妆造迁移
  • 【物理应用】基于Zernike多项式的大气湍流相位屏的数值模拟附matlab代码
  • 【工具网站推荐】文字转语音
  • 自定义类型:结构体详解
  • 两万字:讲述微信小程序之组件
  • 网际协议IP(计算机网络)
  • 树莓派buster安装ROS完整记录
  • Linux进程状态、进程优先级、环境变量、进程地址空间
  • 面试官:ArrayList扩容机制,你了解吗?
  • 应用链的兴起将带来哪些风险和机遇?未来将会如何发展?
  • 2022年接口测试面试题大全
  • 软件流程和管理(十):配置管理
  • 红黑树RBTree的模拟实现
  • 基于JAVA智能选课系统设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署
  • PostgreSQL13主从同步异步流复制
  • 【347天】每日项目总结系列085(2018.01.18)
  • Computed property XXX was assigned to but it has no setter
  • eclipse(luna)创建web工程
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • IndexedDB
  • linux安装openssl、swoole等扩展的具体步骤
  • PHP 7 修改了什么呢 -- 2
  • vue-loader 源码解析系列之 selector
  • Vue全家桶实现一个Web App
  • 闭包--闭包作用之保存(一)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 搞机器学习要哪些技能
  • 回顾 Swift 多平台移植进度 #2
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 前端知识点整理(待续)
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 自制字幕遮挡器
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • %check_box% in rails :coditions={:has_many , :through}
  • (06)Hive——正则表达式
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (八)Spring源码解析:Spring MVC
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • . Flume面试题
  • ../depcomp: line 571: exec: g++: not found
  • .chm格式文件如何阅读
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .net 按比例显示图片的缩略图
  • .NET/C# 的字符串暂存池
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET轻量级ORM组件Dapper葵花宝典
  • .NET下的多线程编程—1-线程机制概述
  • .考试倒计时43天!来提分啦!
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [2013AAA]On a fractional nonlinear hyperbolic equation arising from relative theory