什么是向量?

向量(Vector)是数学和计算机科学中的基本概念,指具有大小(长度)和方向的量。在机器学习和数据科学中,向量通常表示为一组有序的数字,用于描述对象的特征。以下是详细解析:

1)向量的数学表示   

几何意义:在二维或三维空间中,向量可以画成带箭头的线段,箭头指向方向,长度表示大小。
示例:二维向量 (3, 4) 在坐标系中的表示

数学形式:向量是一维数组,包含 n 个数值(称为维度)。

二维向量:[x, y]

三维向量:[x, y, z]

n 维向量:[v₁, v₂, ..., vₙ]

2)向量在计算机中的应用

(1)特征表示
在机器学习中,对象(如文本、图像、用户行为)被转换为特征向量,以便计算机处理。

示例:

图像的向量:通过 CNN 提取的 512 维特征 [0.1, 0.7, ..., -0.2]

文本的向量:通过 BERT 生成的 768 维嵌入 [0.3, -0.5, ..., 0.9]
(2)相似性计算
通过向量距离(如欧式距离、余弦相似度)衡量对象之间的相似性。

欧式距离:向量间的直线距离,越小越相似。

python
import numpy as np
v1 = np.array([1, 2, 3])
v2 = np.array([4, 5, 6])
distance = np.linalg.norm(v1 - v2)  # 输出 5.196(欧式距离)
余弦相似度:向量方向的夹角余弦值,越接近 1 越相似。

python
from sklearn.metrics.pairwise import cosine_similarity
similarity = cosine_similarity([v1], [v2])  # 输出 0.974(余弦相似度)

3)向量的常见类型

4)向量数据库与检索

        

5)实战示例

        (1)文本相似度搜索

from sentence_transformers import SentenceTransformer
import faiss

# 生成文本向量
model = SentenceTransformer('all-MiniLM-L6-v2')
texts = ["猫", "狗", "汽车"]
embeddings = model.encode(texts)

# 构建 FAISS 索引
index = faiss.IndexFlatL2(embeddings.shape[1])
index.add(embeddings)

# 搜索相似文本
query = model.encode("动物")
distances, ids = index.search(query.reshape(1, -1), k=2)
print("相似文本:", [texts[i] for i in ids[0]])  # 输出 ["狗", "猫"]

(2)图像检索

import torchvision.models as models
import torch

# 提取图像特征
model = models.resnet18(pretrained=True).eval()
image_tensor = torch.randn(1, 3, 224, 224)  # 假设输入图像
feature_vector = model(image_tensor).detach().numpy()

# 存储和检索(伪代码)
database.add(feature_vector)
results = database.search(query_feature)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值