线性代数知识点总结_机器学习中的线性代数

(一)前言

1、总结大数据、人工智能机器学习中的数学知识

2、已经调试通过直接运用,减少查找资料的时间

3、您的关注就是对我对大的支持,也是对科技的支持

机器学习的核心技术是以 数学和数据结构算法为主的基础学科,包括高等数学、线性代数、数论、图论、决策论等等基础理论知识点,在实际的工程实践中出现了很多数学工具比如R语言数学库,商用MATLAB数学库,近年来Python数学库发展的很快,这里涉及到的案例将使用Python语言描述,为了方便大家的运用,本篇文章将线性代数常用的知识点总结出来,可以方便大家的引用,也可以作为大学生和大学教师的参考课件。

本篇文章涉及到的案例基本都是笔者亲自调试通过,要求Python3.6以上版本,要安装numpy、pandas、sklearn、 matplotlib等常见类库,特别说明不建议读者使用Python2.7版本。建议大家使用Pycharm来提高效率。

(二)矩阵

矩阵的运算有加减乘、求矩阵的逆、求矩阵的秩、矩阵的转置等运算,矩阵的运算在线性回归中有着重要的作用,数据分析领域也起着重要的作用,比如关系型数据库本质就是矩阵的各种运算。

1、矩阵的加法

import numpy as np
a1 = np.array([[1,2,3]])
a2 = np.array([[4,5,6]])
print(a1 + a2 )

2、矩阵的乘法

设 有两个矩阵A和B,A为3x2矩阵,B为2x3矩阵,乘积的结果为C3x3矩阵,矩阵乘积的规则大家都学过了,再温习下,如下图所示:

772f0a393c59355a380bd33f16ce3e29.png

import numpy as np
A = np.array([[1,2],[3,4],[5,6]])
B = np.array([[1,2,3],[4,5,6]])
print(np.dot(A,B) )

A x B = C ,结果为:

[[ 9 12 15]

[19 26 33]

[29 40 51]]

C 的第1行为 :1x1+1x4 1x2 + 2x5 1x3+2x6

C 的第2行为 :3x1+4x4 3x2 + 4x5 3x3 +4x6

C 的第3行为 :5x1 + 6x4 5x2 +6x5 5x3 + 6x6

3、求矩阵的秩

矩阵A的列秩是A的线性独立的纵列的极大数目。类似地,行秩是A的线性无关的横行的极大数目。如果把矩阵看成一个个行向量或者列向量,秩就是这些行向量或者列向量的秩,也就是极大无关组中所含向量的个数。

import numpy as npfrom scipy import linalg
A = np.array([[1, 0, 0],
[0, 1, 0],
[0, 0, 1],
[0, 0, 0]])
#非0的行数就是矩阵的秩
n = np.linalg.matrix_rank(A)
print(n)

结果:n = 3

4、求矩阵的逆

设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E。 则我们称B是A的逆矩阵,而A则被称为可逆矩阵。

import numpy as npfrom scipy import linalg
A = np.array([[1, 2 ],
[3, 4, ]
])
An = linalg.inv(A)
print(An)

5、求解线性方程组

有个方程组如下所示:

X1 + x2 + x3 = 10

X1 - x2 + x3 = 6

X1 - x2 - x3 = 0

import numpy as npfrom scipy import linalg
A = np.array([[1, 1, 1],
[1, -1, 1],
[1, -1, -1]])
y = np.array([10, 6, 0])
x = linalg.solve(A, y)
print(x)

结果:[5. 2. 3.]

(三)向量

1、向量的概念

在线性代数中 的向量是指n个实数/复数组成的有序数组,称为n维向量。α=(a1,a2,…,an) 称为n维向量。其中ai称为向量α的第i个分量。

2、行向量和列向量

(1)行向量

import numpy as np
V = np.array([1,2,3 ])
print(V)

(2)列向量

import numpy as np
#行向量
v1 =np.array([[1,2,3]])
#v1转置
v2 = v1.T
print(v2 )

3、向量的运算

(1)向量的加法

import numpy as np
v1 = np.array([[1,2,3]])
v2 = np.array([[4,5,6]])
print(v1+v2 )

结果: [[5 7 9]]

(2)向量的内积

计算内积的时候要注意一个是行向量,一个是列向量:

import numpy as np
v1 = np.array([[1,2,3]])
v2 = np.array([[4,5,6]]).T
print(np.dot(v1,v2) )

4cbcc5e9727935eefc534a9b54ee6264.png

4、特征向量

如果向量v与变换A满足 Av=λv,则称向量v是变换A的一个特征向量,λ是相应的特征值。线性变换的特征向量是指在变换下方向不变,或者简单地乘以一个缩放因子的非零向量;特征向量对应的特征值是它所乘的那个缩放因子。

在A变换的作用下,向量V仅仅在尺度上变为原来的λ倍。称V是A 的一个特征向量,λ是对应的特征值。

例如:有个简单的二阶方阵A = [[2,1] , [ 1, 2 ] ]求其特征向量和特征值

import numpy as npfrom scipy import linalg
A = np.array([[1, 2],
[2, 8]])
v, v_vector = linalg.eig(A)
print(v)
print(v_vector)

结果为:

[0.46887113+0.j 8.53112887+0.j]

[[-0.96649965 -0.25666794]

[ 0.25666794 -0.96649965]]

意思是:

特征值0.46887113对应的特征向量是【 [[-0.96649965 , [ 0.25666794 】

特征值8.53112887对应的特征向量是【 -0.25666794, -0.96649965 】

由资深OpenGL技术专家亲笔撰写,全面介绍OpenGL ES 3.0的各种特性及新增功能,通过大量已经编译和测试过的实例,详细讲解OpenGL ES 3.0的应用程序接口(API)和图形管线,既涵盖简单图形的渲染方法,又深入介绍逐像素照明和粒子系统等高级渲染技术,并且包含大量有效使用API和硬件的实用技巧,为手持设备的各种高性能3D应用开发提供翔实指导。 《华章 OpenGL ES 3.0编程指南(原书第2版)》共16章:第1章简单介绍OpenGL ES ,并概述OpenGL ES 3.0图形管线;第2章通过绘制一个三角形的简单OpenGL ES 3.0示例程序,讲解一些API概念,并说明如何构建和运行OpenGL ES示例程序;第3章讲述为OpenGL ES 3.0创建表面和渲染上下文的API——EGL;第4章讨论创建着色器对象、编译着色器和检查编译错误的方法;第5章讲解编写着色器所需的着色语言基本知识;第6章详细介绍几何形状输入图形管线的方法,包含对顶点属性、顶点数组和缓冲区对象的讨论;第7章讨论几何形状如何装配成图元,介绍OpenGL ES 3.0所有可用图元类型,包括点精灵、直线、三角形、三角形条带和三角扇形;第8章概述顶点着色器如何融入管线,以及OpenGL ES 着色语言可用于顶点着色器的特殊变量;第9章和第10章介绍片段着色器,包括多重纹理、雾化、Alpha测试和用户裁剪平面等;第11章讨论片段操作,包括剪裁测试、模板测试、深度测试、多重采样、混合和抖动;第12章介绍使用帧缓冲区对象渲染屏幕外表面;第13章讨论同步对象和栅栏的使用方法;第14章介绍OpenGL ES 3.0高级编程,包含使用法线贴图的逐像素照明、环境贴图、粒子系统、图像后处理、程序纹理、阴影贴图、地形渲染和投影纹理等渲染技术。;第15章提供OpenGL ES 3.0各种可用状态查询的参考;第16章讨论如何为iOS 7、Android 4.3 NDK、Android 4.3 SDK、Windows和Linux构建OpenGL ES样板代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值