【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(1):二阶与三阶行列式、全排列及其逆序数
@
前言
Hello!小伙伴!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
自我介绍 ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖...已保研。目前正在学习C++/Linux/Python
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!
机器学习小白阶段
文章仅作为自己的学习笔记 用于知识体系建立以及复习
知其然 知其所以然!
二阶与三阶行列式
二阶行列式
记作
\(\begin{vmatrix}
a_{11} & a_{12}\\
a_{21} & a_{22}
\end{vmatrix}=a_{11}*a_{22}-a_{12}*a_{21}\)
定义
主对角线上的两元素之积减去副对角线上两元素之积所得的差,即:\(a_{11}*a_{22}-a_{12}*a_{21}\)
注:行列式本质是一个数值,比如\(\begin{vmatrix}
1 & 2\\
3 &4
\end{vmatrix}\)代表的就是数值(-2=1×4-2×3)
举例
\(\begin{vmatrix}
3 & -2\\
2 & 1
\end{vmatrix} = ?\)
答:
\(\begin{vmatrix}
3 & -2\\
2 & 1
\end{vmatrix}=3*1-(-2)*2=3-(-4)=7\)
三阶行列式
记作
\(\begin{vmatrix}
a_{11} & a_{12} & a_{13}\\
a_{21} & a_{22} & a_{23}\\
a_{31} & a_{32} & a_{33}\\
\end{vmatrix}=a_{11}*a_{22}*a_{33}+a_{12}*a_{23}*a_{31}+a_{13}*a_{21}*a_{32}-a_{11}*a_{23}*a_{32}-a_{12}*a_{21}*a_{33}-a_{13}*a_{22}*a_{31}\)
举例
\(\begin{vmatrix}
1 & 2 & -4\\
-2 & 2 & 1\\
-3 & 4 & -2\\
\end{vmatrix} = ?\)
答:
\(\begin{vmatrix}
1 & 2 & -4\\
-2 & 2 & 1\\
-3 & 4 & -2
\end{vmatrix}=1*2*(-2)+2*1*(-3)+(-4)*(-2)*4-1*1*4-2*(-2)*(-2)-(-4)*2*(-3)=-14\)
全排列及其逆序数
全排列
定义
从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。
当m=n时所有的排列情况叫全排列。
公式
全排列数f(n)=n!(定义0!=1)
举例
用1、2、3三个数字,可以组成多少个没有重复数字的三位数 ?
答:3×2×1=6种。
假设先放百位,有三种可能,再放十位,有两种可能,最后放个位,只有一种可能了。
故为3×2×1=6种
从上面例子可以发现:
当有n个不同数字进行排列时
第一个位置有(n)选择,第二个位置有(n-1)种选择...第n个位置有1种选择,一共有n(n-1)(n-2)...2*1种可能,也就是n!种排列方式。
我们用\(P_{n}\)表示n种不同元素的所有排列的种数,则
\(P_n=n*(n-1)*(n-2)*...*3*2*1=n!\)
逆序数
概念
- 标准次序:n个不同的数字,我们可以规定从小到大为标准次序
- 逆序:与标准排列次序相反(比如两个元素排序是从大到小,与标准次序相反,则视为逆序)
- 排列的逆序数:一个排列中所有逆序的总数
计算排列的逆序数的方法
n个元素(依次为1,2,3...n-1,n),规定从小到大为标准次序
设\(p_1p_2...p_n\)为这n个元素的一个排列,对于元素\(p_i\)(i=1,2...,n),如果比\(p_i\)大的且排在\(p_i\)前面的元素有\(t_i\)个,那么就说\(p_i\)这个元素的逆序数是\(t_i\)。
全体元素的逆序数总和为t,那么
\(t=t_2+t_2+...+t_n=\sum_{t=1}^nt_i\)
即是这个排列的逆序数。
举例
求排列32514的逆序数
答:3在第一位,前面没有数,逆序数为0
2在第二位,前面的数中,有一个数3比2大,所以逆序数为1
5的前面没有比5的数,逆序数为0
1的前面比1大的数有:3、2、5,所以逆序数为3
4的前面比4大的只有5,所以逆序数为1
综上,该排列的逆序数t=0+1+0+3+1=5
补充概念
- 齐排列:逆序数为奇数的排列
- 偶排列:逆序数为偶数的排列
结语
文章仅作为学习笔记,记录从0到1的一个过程
希望对您有所帮助,如有错误欢迎小伙伴指正~
我是 海轰ଘ(੭ˊᵕˋ)੭
如果您觉得写得可以的话,请点个赞吧
谢谢支持 ️
【机器学习|数学基础】Mathematics for Machine Learning系列之线性代数(1):二阶与三阶行列式、全排列及其逆序数的更多相关文章
- 机器学习系统设计(Building Machine Learning Systems with Python)- Willi Richert Luis Pedro Coelho
机器学习系统设计(Building Machine Learning Systems with Python)- Willi Richert Luis Pedro Coelho 总述 本书是 2014 ...
- How do I learn mathematics for machine learning?
https://www.quora.com/How-do-I-learn-mathematics-for-machine-learning How do I learn mathematics f ...
- [C5/C6] 机器学习诊断和系统设计(Machine learning Diagnostic and System Desig
机器学习诊断(Machine learning diagnostic) Diagnostic : A test that you can run to gain insight what is / i ...
- 大规模机器学习(Large Scale Machine Learning)
本博客是针对Andrew Ng在Coursera上的machine learning课程的学习笔记. 目录 在大数据集上进行学习(Learning with Large Data Sets) 随机梯度 ...
- 吴恩达《深度学习》-课后测验-第三门课 结构化机器学习项目(Structuring Machine Learning Projects)-Week1 Bird recognition in the city of Peacetopia (case study)( 和平之城中的鸟类识别(案例研究))
Week1 Bird recognition in the city of Peacetopia (case study)( 和平之城中的鸟类识别(案例研究)) 1.Problem Statement ...
- Machine Learning系列--CRF条件随机场总结
根据<统计学习方法>一书中的描述,条件随机场(conditional random field, CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出 ...
- Machine Learning系列--L0、L1、L2范数
今天我们聊聊机器学习中出现的非常频繁的问题:过拟合与规则化.我们先简单的来理解下常用的L0.L1.L2和核范数规则化.最后聊下规则化项参数的选择问题.这里因为篇幅比较庞大,为了不吓到大家,我将这个五个 ...
- 斯坦福第十一课:机器学习系统的设计(Machine Learning System Design)
11.1 首先要做什么 11.2 误差分析 11.3 类偏斜的误差度量 11.4 查全率和查准率之间的权衡 11.5 机器学习的数据 11.1 首先要做什么 在接下来的视频中,我将谈到机器 ...
- Python机器学习介绍(Python Machine Learning 中文版)
Python机器学习 机器学习,如今最令人振奋的计算机领域之一.看看那些大公司,Google.Facebook.Apple.Amazon早已展开了一场关于机器学习的军备竞赛.从手机上的语音助手.垃圾邮 ...
随机推荐
- DNS服务器(一)正向解析
一.DNS简介 在日常生活中人们习惯便用域名访问服务器,但机器间互相只认IP地址,域名与1P地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应一个ip地址,它们之间的转换工 ...
- 字节跳动已经10万人了?渣本双非Android程序员怎么上车?
字节跳动已经 10 万人了? 是的,在 2020 年字节跳动的员工总数从 6 万蹿到 10 万,平均每个工作日就有 150 人在办理入职,加入字节跳动全球超过 240 个办公点. 更有统计,在总部北京 ...
- 字节跳动、快手等大厂Android面试刨根问底之内存泄露篇
现在快手字节跳动等公司都在大量招人,薪资优厚,但是想进去却没那么简单,面过的人都知道,这些公司的面试官巴不得把你会的东西都给你挖出来,所以要深入复习知识点,让自己耐问一点.一下是针对内存泄露真实面试过 ...
- 深入理解jvm-2Edition-类文件结构
概述: 规范而独立的类文件结构以及只与类文件关联的虚拟机为Java实现了平台无关性,甚至还带来了一些语言无关性. 只要将源代码编译为Class文件规定的格式,JVM就可以执行. JVM的指令描述能力比 ...
- Python入门:ChainMap 有效管理多个上下文
摘要: Python的ChainMap从collections模块提供用于管理多个词典作为单个的有效工具. 本文分享自华为云社区<从零开始学python | ChainMap 有效管理多个上下文 ...
- pikachu PHP反序列化 XXE SSRF
PHP反序列化在理解这个漏洞前,你需要先搞清楚php中serialize(),unserialize()这两个函数. 另外这个漏洞一般是在代码审计的时候发现的,在扫描或者黑盒测试的时候很难发现.1.序 ...
- STM32—串口使用总结
文章目录 一.仅向上位机打印调试信息 二.与上位机交互信息 三.作为驱动接口 四.结合DMA接收数据帧 在日常学习中,串口经常作为和上位机通信的接口,进行打印信息方便调试程序,有时也会作为模块的驱动接 ...
- springboot整合zookeeper实现分布式锁
目录 01 安装并允许zookeeper 02 springboot应用配置CuratorFramework 03 使用zookeeper实现集群只一个应用实例执行定时任务 04 使用zookeepe ...
- 【springcloud】常见面试题总结
1.springcloud与dubbo的区别? https://jingyan.baidu.com/article/b0b63dbf3784294a483070fa.html 1.1 springcl ...
- Java 方法使用
那么什么是方法呢? Java方法是语句的集合,它们在一起执行一个功能. 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 方法的优点 1. 使程序变得更简 ...