【机器学习|数学基础】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早已展开了一场关于机器学习的军备竞赛.从手机上的语音助手.垃圾邮 ...
随机推荐
- leetcode最短无序连续子数组
平民解法: 既然是找最小数组,那就得到一个排序好的数组,然后直接和初试数组比对,用一个left,right分别记录从最初开始不同,到最后不同的小标,最后左右做差再加一,就能得到长度. 其他解法: 双指 ...
- 移植TensorFlow到Windows平台
2015年11月,Google宣布开源旗下机器学习工具TensorFlow,引发业界热潮.TensorFlow原生支持*unix系和安卓平台,但并不提供对Windows平台的支持.如果想在Window ...
- 遥远的国度 (树链剖分换根),洛谷P3979
析:显然,若没有换根操作,则为树链剖分板子题,但是这道题我们考虑换根操作 考虑这样一个性质:在一棵树上,两点的距离路径是唯一的!! 也就是说,我们在修改路径上的点权时,不必考虑根在哪里,直接利用模板修 ...
- SQL语句(一)基础查询与过滤数据
目录 一.数据库测试表 二.基础查询 1. 获得需要的记录的特定字段 2. 查询常量值 3. 查询表达式 4. 查询函数 5. 起别名 6. 去重 7. CONCAT函数的简单使用 三.过滤数据 大纲 ...
- 在Windows中安装PySpark环境
在Windows中安装PySpark环境 安装Python 可以选择安装官方版本的Python,或是Anaconda,对应的地址如下. 下载地址 Python:https://www.python.o ...
- TCP三次握手、四次挥手理解
tcp三次握手建立连接第一次握手 客户端发送给服务器一段连接请求报文,等待服务器回应 第二次握手 服务器收到报文,并发送给客户端一个确认报文,等待客户端回应 第三次握手 客户端收到新报文 ,再发送给服 ...
- Java面向对象09——super
Super main package oop.demon01.demon05; public class Application { public static void main( ...
- RHCSA_DAY12
Linux软件包的分类 inghu 源码包 二进制包(RPM包) 源码包特点 源码包缺点:安装过程麻烦,需要用户手动编译,需要手动解决软件包的依赖关系 源码包优点:软件源代码开放,允许用户二次开发,安 ...
- Vue 如何实现一个底部导航栏组件
参考网址: https://www.jianshu.com/p/088936b7b1bd/ Vue 如何实现一个底部导航栏组件 可以看到父组件是知道我点击了底部TabBar的哪个item的. 实现 实 ...
- visual studio如何检查内存泄露?
Visual Studio有专门的插件叫做Visual Leak Detector (VLD)Visual Leak Detector for Visual C++ 2008/2010/2012/20 ...