python学智能算法(十八)|SVM基础概念-向量点积
引言
前序学习进程中,已经对向量的基础定义有所了解,已经知晓了向量的值和方向向量的定义,学习链接如下:
向量的值和方向
在此基础上,本文进一步学习向量点积。
向量点积
向量点积运算规则,我们在中学阶段就相当熟悉,对于二维的初始向量:u=(x1,x2)、v=(y1,y2),满足:uv=x1y1+x2y2
但实际上向量可能不止是二维的,比如u=(x1,x2,x3)和v=(y1,y2,y3),所以对于向量点积有更为通用的计算式:
u⋅v=∑i=1n(xiyi)u\cdot v=\sum_{i=1}^{n}(x_{i}y_{i}) u⋅v=i=1∑n(xiyi)
基于此,我们可以使用numpy模块完成点积运算:
# 引入模块
import numpy as np
# 输入向量
x=[3,4]
# 计算向量的值
y=np.linalg.norm(x)
# 输出向量的值
print('y=',y)# 定义方向向量计算函数
def direction(x):return x/np.linalg.norm(x)# 提取方向向量计算值
w=direction(x)
# 输出方向向量计算效果
print('w=',w)# 定义点积函数
def dot_product(x,y):# 定义初始值p=0for i in range(len(x)):# 点积计算p=p+x[i]*y[i]# 返回点积计算值return p
# 向量输入
x=[3,5,8]
y=[5,6,10]
# 获取点积值
z=dot_product(x,y)
# 输出点积值
print(z)
代码运行效果为:
计算过程可以理解为:35+56+8*10=125
总结
对向量点积进行了学习。