先选择坐标,数字才有几何含义
数据记录可写数字列表,点积或距离看似直接,却依赖特征顺序、单位、运算。厘米变米,即使物理记录不变,也可改变未加权最近邻。列数组与平坦数组混用可产生全部两两差,而非预期配对差。
本模块一起发展数学与实现约定,区分点与位移,推导长度与角度界,比较范数,计算前查形状。数值调用成功说明可执行,数学解释仍需坐标代表什么的假设。
回忆检查:实数元组、有限和、笛卡尔积。按需复习模块 01、模块 03,不假设已有线性代数。实验前完成 NumPy 数组准备,需要时约三十分钟额外准备。数值基线为其中说明的 Python 3.11 与固定 NumPy 环境。
标量、坐标向量、点与位移
标量是缩放向量的单数值,这里为实数。 中的坐标向量是 d 个实数的有序元组,正整数 d 为坐标数。模块 03 的笛卡尔积构造给所有这些元组集合。顺序属于规格,(身高,年龄) 与 (年龄,身高) 特征约定不同,即使数组都长二。
几何向量可描述与画在何处无关的位移,箭头记录大小与方向。平移箭头、不旋转拉伸,保持位移。数据元组则可收集不同单位特征,写成向量允许坐标代数,不自动赋欧几里得长度物理意义。
点是位置,位移连接位置。选定坐标系中,q−p 是从 p 到 q 的位移。原点平移使两点坐标同加偏移,差不变。位置与位移可能用相同元组记法,因此上下文要明确加或比的对象。
p=(1,2),q=(4,6),q−p=(3,4)。改坐标原点使两点显示同加 (10,−5),p′=(11,−3),q′=(14,1),差仍 (3,4)。从 (0,0) 到 (3,4) 的箭头代表同位移,但不是原点 q。下面发展的欧几里得长度为五。
点间箭头及平移副本坐标差相同,单点坐标随坐标系改变。
零向量全零,描述无位移,是长度零的有效向量,不是缺失观测。未知年龄需另设缺失表示,填零会断言数值并改几何。类别编码 1,2,3 也不因数字形式而有有意义距离,编码决定比较意义。
坐标单位向量 eᵢ 在第 i 项一,其他零。 表每坐标沿自己轴贡献。二维 (3,4)=3(1,0)+4(0,1),这些方向单位长且在普通点积下互相垂直。模块 11 再发展一般基、维数与坐标变化。
加比向量需相同维数与对应含义,不能三特征与两特征配对时默删一项。长度相同也不保证顺序同。实验在 zip 前查长度,因为 Python zip 默认到较短者结束,可隐藏模型错。
数学维数 d 不同存储轴。三坐标向量可存一轴 (3,) 或两轴 (3,1),一百个这样的向量表 (100,3) 每观测仍三坐标。分开观测数、特征数与容器轴数,可防混淆。
从 (−1,3) 到 (2,−1) 的位移?零向量等于缺失吗?(100,3) 每行是百维吗?
查看答案
位移 (3,−4)。零向量是已知零,缺失不同。每行三坐标,一百为观测数,数组两轴。
加法、缩放、线性与仿射组合
向量加法、标量乘逐坐标:,,结果同维。位移箭头相加把第二尾放第一头,总位移从起点到终点。负缩放反方向、正保方向、零缩放成零。
实数逐坐标运算给加法交换结合、零单位、−u 加逆、缩放分配。例如 α(u+v)=αu+αv 因每坐标成立。因此有限向量和在实数模型可重排分组。浮点不同分组可能改小舍入误差,模块 28 另讲。
线性组合 使用实系数与同维向量,系数不必正或和一。2(3,4)+3(4,−3)=(18,−1) 合法,坐标可超原端点。它是代数构造,不必是插值或概率加权平均。
过点 p、非零方向 u 的直线为 p+tu,t 实数;t∈[0,1] 给 p 到 p+u 线段,其他延长。u=0 时只有 p,称完整直线误导。仿射直线有偏移 p,而 tu 直线过选定原点。
点的仿射组合系数和一,两点为 (1−t)p+tq。0≤t≤1 在线段插值,范围外外推。两点同加 b 后组合恰加 b,因为和一。和非一会缩放平移,使点的结果错误依赖坐标原点。
p=(1,2),q=(4,6),t=3/4,(1/4)p+(3/4)q=(3.25,5),位于 p 到 q 的四分之三处。从 p 位移 (3/4)(q−p)=(2.25,3)。t=2 得 (7,10),在 q 外同一直线上。系数仍和一,但一项负,是仿射外推而非凸插值。
凸组合为非负系数的仿射组合。系数条件是代数条件,是否真实概率要另模型。连续特征混合可能有意义,但类别编码或受限对象不一定;两个有效记录混合不必对应物理有效或实际存在个人。
特征操作要保单位,米位移倍增仍米,米加米有意义。把秒与米坐标和当一个物理长度没有自动解释。可有意选加权数值学习几何,但记录选择与尺度,代数相容和应用意义都要。
重排要一致应用所有比较对象,同一坐标排列保点积与下面标准范数,仅排一者则混特征、改结果。这区分表示改变与关系改变,形状检查无法识别顺序错。
例如 (身高,年龄)=(170,20),另一存 (年龄,身高)=(30,180),长度匹配但首项配对会把身高乘年龄。把第二改 (180,30) 修复对应,选尺度仍另任务。可靠数据接口在形状外记录名称与单位。
2p+3q 是仿射点组合吗?p+tu 何时真直线?(1−t)p+tq 为何正确响应原点改变?
查看答案
系数和五非仿射,真直线需 u≠0。仿射和一,同加 b 使组合恰加 b。
点积、正交、角度与柯西–施瓦茨
普通实点积 为标量,逐项乘保向量则不同。点积对称、每参数线性:u·(αv+βw)=α(u·v)+β(u·w)。自积为平方和,非负,且恰全坐标零时零。欧几里得长度 。
u·v=0 称正交,非零普通几何表示垂直。零向量代数上与所有正交,但无方向或普通角度。因此点积谓词与几何角度域不同。平面 (3,4),(4,−3) 点积十二减十二为零。
先介绍角度:锐角直角三角形余弦为邻边除斜边,扩为有符号方向对齐,同方向一、直角零、反方向负一。非零向量夹角零到 180 度,等价零到 π 弧度,π 弧度是半圈。反余弦为 [−1,1] 对齐值选该范围角度。
两非零向量有 。平面选单位 û=u/||u||₂ 与垂直 (−u₂,u₁)/||u||₂,v 沿 û 的有符号分量 v·û,除 ||v||₂ 按直角几何给余弦,再乘回得公式。并不声称任意无关特征元组已有有用物理夹角。
w=(2,3),e₁=(1,0),w·e₁=2,沿轴分量 2e₁=(2,0),余 (0,3) 正交 e₁。u=(3,4),v=(4,−3),长均五、点积零,夹角九十度。一般子空间投影模块 12,本例仅需坐标单位方向。
坐标分量与垂直余量形成直角三角形,点积选单位方向的有符号分量。
柯西–施瓦茨不等式 。形成余弦前先证明:v=0 两边零;否则取 t=(u·v)/(v·v),展开非负 ||u−tv||₂² 得 ||u||₂²−(u·v)²/||v||₂²≥0,乘正分母、取非负根得结论。
两者非零时等号当且仅当 u−tv=0,即标量倍。正倍余弦一,负倍负一。一者零也满足不等式等号,却仍未定义余弦。不能因不等式包含零就用零自积作分母。
此不等式保证非零余弦商在 [−1,1]。浮点舍入可能略越界,角度显示可在非零、形状检查后把商夹回范围。这是局部数值显示政策,不是新数学不等式。大幅度或下溢需更多处理,超本小坐标实验。
点积依选定几何,某特征缩放改积与角度。加权内积可建另一几何,但要声明假设。AI 注意力与许多相似计算用学习坐标点积,应用含义依构造坐标方式,不只因对应项可相乘。
证 (3,4) 与 (4,−3) 点积零。余弦何时定义,什么不等式给界?
查看答案
3·4+4·(−3)=0。两向量都非零方可除两长度。柯西–施瓦茨保证商在负一到一,零仍满足不等式但商无定义。
范数、度量与特征单位效应
范数赋非负长度,恰零向量时零,||αu||=|α| ||u||,以及三角不等式 ||u+v||≤||u||+||v||。只有非负不够,候选长度需所有律,使缩放、抵消、路径长度一致。欧几里得只是多种坐标范数之一。
曼哈顿范数 ,最大范数 。正性与缩放由绝对值;曼哈顿逐项 |uᵢ+vᵢ|≤|uᵢ|+|vᵢ| 再和。最大范数中每坐标和绝对值≤||u||∞+||v||∞,取最大即三角律。
欧几里得展开 ||u+v||₂²=||u||₂²+2u·v+||v||₂²,柯西–施瓦茨界中项,结果≤(||u||₂+||v||₂)²。非负取根证明三角律,这是点积定理连接范数公理,不凭普通图假设所有维数。
平方欧几里得长度用于目标,却自身不是范数:α 缩放给 α² 而非 |α|。u=v=(1,0),和平方长四,大于各平方一加一,三角失败。“平方范数”描述构造,不把范数律全转给新函数。
非负距离平方保排序,最近邻只需次序可省根。但数值与度量性质改了:实线零到二平方距四,大于零到一及一到二平方距和二。排序捷径不等于可把新函数代入需要三角律的度量证明。
u=(3,4),曼哈顿七、欧几里得五、最大四。p=(1,2) 到 q=(4,6) 欧距五;限制水平垂直移动最短坐标路程七,另模型;最大范数测最大单坐标改变。每种回答不同问题,不是修正另两种。
二维单位球依曼哈顿、欧几里得、最大范数分别菱形、圆、正方形,各方向显示半径不同。
度量 d(p,q) 非负、恰 p=q 时零、对称且 d(p,r)≤d(p,q)+d(q,r)。范数诱导 d(p,q)=||q−p||,正性给前两,−1 齐次给对称,(q−p)+(r−q) 三角给度量三角。此时对象是点间距,不是单个位移长。
查询 (0,0),P=(1,100),Q=(3,0),坐标小时、厘米。未加权欧距约 100.005 与三,选 Q。厘米转米后 P=(1,1) 距 √2,Q 仍三,选 P。物理测量未变,固定数值权重使几何改变。
正尺度 s 定义 dₛ(p,q)=sqrt(∑ᵢsᵢ²(qᵢ−pᵢ)²),先可逆坐标缩放再欧距,所以为度量。转换单位欲保原度量,要尺度反向调整。若某尺度零,不同点只在该坐标差也可距零,违反同一性条件。
固定有限 d,标准范数满足 ||u||∞≤||u||₂≤||u||₁≤√d ||u||₂。前界比最大平方、平方和、绝对项和平方;最后柯西–施瓦茨用于绝对项向量与全一。它们比长度,不保证相同邻居排序,常数依维数。
选范数与尺度要模型理由,网格局部路程、记录长度、最大分量误差可偏不同量。数值意义相对选择与特征。统计预处理后讲训练集学习尺度,本课用明确单位转换,不需要未学统计。
算 (−3,4) 三范数。厘米转米为何改未加权邻居?某尺度零会怎样?
查看答案
七、五、四。固定权使转换后贡献不同,保原度量需一致改权。零尺度可让不同点距零,违反度量条件。
单位方向、归一化与余弦相似度
非零 u 的归一化 û=u/||u||₂。齐次给长一,分母正所以保方向。(3,4) 为 (0.6,0.8)。不是除坐标和,负项抵消会使项和不适合一般长度。
零向量长零无方向,不能按式归一。应用须声明拒绝、未定义分数或另有依据的约定。默加小数分母改变函数,应解释政策,不能当原几何定义。
非零两者余弦相似度 。忽略正幅度变化,α>0 替 αu 分数不变;负缩放反向改符号。一表示正平行,不表示原坐标、长度同。
(1,0),(100,0) 余弦一而欧距九十九;(1,0),(−1,0) 余弦负一,不可为普通概率。非零正交余弦零,不表示缺失或统计独立。它是所选坐标几何分数,不是校准标签信心。
单位 u,v 有 ||u−v||₂²=2−2u·v=2−2cosim。因此单位查询与单位候选中,最大余弦与最小欧距同排序含平局。推导需两者单位长,原始幅度变化另加项,排序不必相同。
归一可能丢重要幅度,如活动量或物理位移长度。只关方向时可以合适,关键是何种变化应算相似。余弦或欧距都非每嵌入、测量系统普遍正确选择。
归一 (3,4),非零 u 与 −u 余弦?何时余弦与欧距排序一致?
查看答案
(0.6,0.8),反向非零余弦 −1。查询和候选都单位向量时一致,任意原始长度不保证。
数组形状、广播与明确实现约定
NumPy 数组有形状元组、轴数、dtype。数学坐标要存储约定:独立向量平坦 (d,),需方向时行 (1,d)、列 (d,1),B 观测 d 特征表 (B,d)。模块 10 讲矩阵积,现在标特征轴已防许多错。
相容平坦 u*v 给 d 个逐项积,u @ v 给标量点积。(B,d) 表乘 (d,) 尺度通过广播每行应用特征权;np.linalg.norm(table, axis=1) 给 B 行长,漏轴可把全表塌成一个量。轴选择属于数学问题。
广播从右比长度,相同相容,一可扩,缺领先轴作一,因此 (3,1) 与 (3,) 产生 (3,3),合法但每列项配每平坦项。成功不能判断这些两两组合是否目标,应运行前指定正确输出形状。
预测 [1,2,3] 形状 (3,),观测 [1,2,4] 形状 (3,1),直接差行 [0,1,2],[−1,0,1],[−3,−2,−1]。九平方均值 21/9=7/3,配对差应列 (3,1) [0,0,−1],三平方均值 1/3。修复使两者列,改变数学配对而不只是显示。
目标方向不匹配,广播成全部配对差网格;同列保每观测一个比较。
平坦 (d,) 转置仍一轴,不成列。用 v[:,None] 或核对项数的reshape;改 (d,1) 不改值却改操作约定。平坦化任意表可丢观测与特征轴区别,只有数学对象真是一个序列时才用。
多轴数组用于图像、批次、时间序列、AI。(B,T,d) 可能批、时间、特征,其他应用可别义,形状本身不命名。声明轴顺序、约简、允许广播,逐操作边界查输出。之后张量与自动微分基于此约定。
数值检查要结构与值一起。np.allclose 前查预期同形状,比较也能广播。容差按小浮点量选择,近似不是精确证明。循环与 NumPy 对小坐标相对绝对 10⁻¹²,代数证明独立于有限一致建立一般公式。
预测 (4,2)*(2,) 与 (3,1)-(3,)。为何 v.T 不足列,近似比较前查形状?
查看答案
前 (4,2) 逐特征乘,后 (3,3) 可能错配。平坦转置仍 (d,),近似比较也广播,可掩结构错,先断言形状。
常见误解与失败情形
| 说法 | 失败原因 | 修复 |
|---|---|---|
| 数字元组自动有物理距 | 单位、编码可能不相容 | 声明几何与单位 |
| 点与位移可互换 | 原点变动影响点坐标 | 正确用差与仿射组合 |
| 点积为逐项乘 | 点积和成标量 | 查运算符与输出 |
| 零有余弦方向 | 长零 | 声明未定义处理 |
| 余弦一等于向量同或确定 | 正倍同对齐,分数可负 | 解释实际定义 |
| 范数不改邻居 | 单位球与尺度改比较 | 选并说明度量 |
| 平坦转置变列 | 仍一轴 | 明确添轴 |
| 无异常即正确配对 | 广播可算另问题 | 声明输入、轴、输出 |
三个 CPU 实验
先完成 NumPy 准备,安装固定数值依赖。小 CPU 数组无外部数据,先预测并解释捕获输出,下载文件是执行源。
实验 A 循环计算与 NumPy 核对
预测:正交点积、三范数、位移长、(3,4) 单位方向。运行:比循环与 NumPy。解释:单位坐标轴分量和 zip 前长度检查。修改:换负坐标,保持维数,预测不变范数。数值容差与一般证明是不同证据。
"""Loop-based vector calculations checked against NumPy on small real coordinates."""
from math import sqrt
import numpy as np
def dot(u, v):
if len(u) != len(v):
raise ValueError("Coordinate lengths must agree")
return sum(a * b for a, b in zip(u, v))
def norm(u, kind):
if kind == 1:
return sum(abs(x) for x in u)
if kind == 2:
return sqrt(dot(u, u))
if kind == "inf":
return max((abs(x) for x in u), default=0)
raise ValueError("This lab supports norms 1, 2, inf")
u, v = (3, 4), (4, -3)
print("u, v:", u, v)
print("Loop / NumPy dot:", dot(u, v), float(np.array(u) @ np.array(v)))
for kind in (1, 2, "inf"):
reference = np.linalg.norm(np.array(u, dtype=float), ord=np.inf if kind == "inf" else kind)
assert np.isclose(norm(u, kind), reference, rtol=1e-12, atol=1e-12)
print("Norm", kind, ":", norm(u, kind), "; NumPy:", float(reference))
p, q = (1, 2), (4, 6)
displacement = tuple(b - a for a, b in zip(p, q))
print("Displacement q-p / Euclidean distance:", displacement, norm(displacement, 2))
unit = tuple(x / norm(u, 2) for x in u)
assert np.isclose(norm(unit, 2), 1, rtol=1e-12, atol=1e-12)
print("Unit direction of u:", unit)
direction = (1, 0)
projection = tuple(dot((2, 3), direction) * x for x in direction)
print("Component of (2,3) along the first unit axis:", projection)
try:
dot([1, 2], [3])
except ValueError as error:
print("Rejected:", error)
print("Tolerances compare numerical values; the length check prevents silent zip truncation.")
u, v: (3, 4) (4, -3)
Loop / NumPy dot: 0 0.0
Norm 1 : 7 ; NumPy: 7.0
Norm 2 : 5.0 ; NumPy: 5.0
Norm inf : 4 ; NumPy: 4.0
Displacement q-p / Euclidean distance: (3, 4) 5.0
Unit direction of u: (0.6, 0.8)
Component of (2,3) along the first unit axis: (2, 0)
Rejected: Coordinate lengths must agree
Tolerances compare numerical values; the length check prevents silent zip truncation.
实验 B 单位与邻居排序
预测:厘米转米前后谁最近。运行:读欧与曼哈顿序。解释:改几何与缩放曼哈顿稳定平局顺序。修改:逆转换调权,查原距恢复。稳定排序让平局复现,不让相同距离数学不同。
"""Neighbour rankings under an explicitly changed coordinate scale."""
import numpy as np
labels = np.array(["P", "Q", "R"])
# Feature 1 measured in hours; feature 2 measured in centimetres.
query = np.array([0.0, 0.0])
candidates = np.array([[1.0, 100.0], [3.0, 0.0], [0.0, 200.0]])
for name, scale in [("hours + centimetres, unweighted", np.array([1.0, 1.0])),
("hours + metres, unweighted", np.array([1.0, 0.01]))]:
differences = (candidates - query) * scale
distances = np.linalg.norm(differences, axis=1)
order = np.argsort(distances, kind="stable")
print(name)
print("Euclidean distances:", [round(float(d), 6) for d in distances])
print("Rank order:", labels[order].tolist())
l1 = np.abs(differences).sum(axis=1)
print("Manhattan distances:", l1.tolist(), "; stable tie order:", labels[np.argsort(l1, kind="stable")].tolist())
assert labels[np.argmin(np.linalg.norm(candidates - query, axis=1))] == "Q"
assert labels[np.argmin(np.linalg.norm((candidates - query) * [1, 0.01], axis=1))] == "P"
print("Changing units while leaving numeric weights fixed changes the metric and can change neighbours.")
print("To preserve a chosen metric after conversion, transform its weights consistently.")
hours + centimetres, unweighted
Euclidean distances: [100.005, 3.0, 200.0]
Rank order: ['Q', 'P', 'R']
Manhattan distances: [101.0, 3.0, 200.0] ; stable tie order: ['Q', 'P', 'R']
hours + metres, unweighted
Euclidean distances: [1.414214, 3.0, 2.0]
Rank order: ['P', 'R', 'Q']
Manhattan distances: [2.0, 3.0, 2.0] ; stable tie order: ['P', 'R', 'Q']
Changing units while leaving numeric weights fixed changes the metric and can change neighbours.
To preserve a chosen metric after conversion, transform its weights consistently.
实验 C 错配与未定义余弦
预测:错误 (3,3) 差网格、修复 (3,1) 差与零结果。运行:比两均方差和拒绝例。解释:未检查零除为 nan,守卫报未定义。修改:非零单位向量验距平方=2−2cosim。代码限小有限坐标,极端浮点幅度需更多处理。
下载 lab3_shape_and_cosine_faults.py
"""Repair a successful wrong broadcast and define the zero-vector policy explicitly."""
import numpy as np
predicted = np.array([1.0, 2.0, 3.0])
observed = np.array([[1.0], [2.0], [4.0]])
wrong = predicted - observed
paired = predicted[:, None] - observed
assert wrong.shape == (3, 3) and paired.shape == (3, 1)
print("Wrong broadcast shape / mean squared difference:", wrong.shape, round(float(np.mean(wrong**2)), 6))
print("Paired shape / mean squared difference:", paired.shape, round(float(np.mean(paired**2)), 6))
assert np.isclose(np.mean(paired**2), 1 / 3, rtol=1e-12, atol=1e-12)
def cosine(u, v):
u, v = np.asarray(u, dtype=float), np.asarray(v, dtype=float)
if u.ndim != 1 or v.ndim != 1 or u.shape != v.shape:
raise ValueError("Require matching flat vector shapes")
length_u, length_v = np.linalg.norm(u), np.linalg.norm(v)
if length_u == 0 or length_v == 0:
raise ValueError("Cosine is undefined for a zero vector")
return float((u @ v) / (length_u * length_v))
zero, other = np.array([0.0, 0.0]), np.array([1.0, 2.0])
with np.errstate(invalid="ignore", divide="ignore"):
bad = (zero @ other) / (np.linalg.norm(zero) * np.linalg.norm(other))
print("Unchecked zero-vector cosine:", float(bad))
assert np.isnan(bad)
for u, v in [([3, 4], [4, -3]), ([1, 0], [-1, 0]), ([0, 0], [1, 2]), ([1, 2], [1])]:
try:
print("Cosine:", u, v, "=", cosine(u, v))
except ValueError as error:
print("Rejected:", u, v, str(error))
print("Scope: small finite coordinates. Extreme floating magnitudes need further numerical handling.")
Wrong broadcast shape / mean squared difference: (3, 3) 2.333333
Paired shape / mean squared difference: (3, 1) 0.333333
Unchecked zero-vector cosine: nan
Cosine: [3, 4] [4, -3] = 0.0
Cosine: [1, 0] [-1, 0] = -1.0
Rejected: [0, 0] [1, 2] Cosine is undefined for a zero vector
Rejected: [1, 2] [1] Require matching flat vector shapes
Scope: small finite coordinates. Extreme floating magnitudes need further numerical handling.
练习与完整解答
1–12 必做,13–14 扩展。数据解释时标特征含义与数组形状。
u=(3,4),v=(4,−3),算 u+v,2u−v,−u。
查看解答
(7,1),(2,11),(−3,−4),均两坐标,负缩放反位移方向。
p=(1,2),q=(4,6),算四分之一 p 加四分之三 q,判仿射与凸。
查看解答
(3.25,5),系数和一故仿射,非负故凸,在段内,从 p 位移 (2.25,3)。
p=(−1,3),q=(2,−1),求差,再同加 (10,5) 重算。
查看解答
(3,−4),新点 (9,8),(12,4) 差相同。位置改变,共平移在位移中抵消。
解释 2p+3q 为何非原点无关仿射点构造;u=0 的 p+tu 是线吗?
查看解答
同偏移 b 使结果加 5b 非 b,系数和五不保仿射点规则。u=0 始终 p,是一点非线。
证同维实向量 u·(αv+βw)=α(u·v)+β(u·w),及 u·u=0 蕴涵 u=0。
查看解答
展开有限和 ∑uᵢ(αvᵢ+βwᵢ),逐项分配再拆和。自积 ∑uᵢ²,各非负,和零强迫每项零,每坐标零。使用同维与实坐标。
用 ||u−tv||₂² 证柯西–施瓦茨,含 v=0 与两非零等号条件。
查看解答
v=0 两边零;否则 t=(u·v)/||v||₂²,展开 0≤||u||₂²−(u·v)²/||v||₂²,乘正分母取非负根得界。非零等号要求平方长度零,即 u=tv,标量倍也直接给等号。
从柯西–施瓦茨推欧范数三角,再说明 d(p,q)=||q−p||₂ 对称与度量三角。
查看解答
展开和平方,以 2||u||₂||v||₂ 界中项,≤两长和平方,取非负根。||−x||₂=||x||₂ 给对称,r−p=(q−p)+(r−q) 给三角。非负及零只在同点完成其他度量条件。
查询零,P=(1,100),Q=(3,0),比较第二坐标乘 0.01 前后欧邻居,怎样保原度量?
查看解答
原 √10001≈100.005 与三选 Q;新 P 距 √2、Q 三选 P。保原数值度量需新第二坐标在范数内乘一百,逆单位转换。选择未加权米则有意改几何。
(4,2) 四条两特征记录,(2,) 尺度乘与 axis=1 行范数形状?为何 ndim 非特征维?
查看解答
乘广播 (4,2),每尺度供一特征列。行范数约特征轴得 (4,)。ndim 二指观测、特征两轴,记录两坐标,这里数量偶合而含义不同,(4,3) 显示差别。
单位 u,v 证距平方=2−2cosim,解释排序同与为何余弦一不测原向量相等。
查看解答
展开两自积减二点积,单位长给 2−2u·v,点积即余弦,故单位候选最小距等最大余弦。原 (1,0),(100,0) 同余弦一却幅度大不同,相等需同坐标。
预测 (3,) 与观测 (3,1) 未reshape相减,结果形状?解释 [1,2,3]、[1,2,4] 两均方差。
查看解答
从右广播 (3,3),行 [0,1,2],[−1,0,1],[−3,−2,−1],平方和二十一、九项均 7/3。配对 [0,0,−1] 三项均 1/3。都列或都平坦,再先查输出形状。
函数归一每向量、称余弦概率、把平坦转置当列。具体诊断三项。
查看解答
零长零不能除,要未定义政策。反向余弦负一反驳概率,正值也不自动校准。平坦 (d,) 转置仍 (d,),需新轴成 (d,1)。
扩展:证 ||u||∞≤||u||₂≤||u||₁≤√d ||u||₂,说明不保证同最近邻排序。
查看解答
最大平方≤平方和给首,绝对项和平方等平方和加非负交叉项给二,绝对项向量与 d 个一的柯西–施瓦茨给末。界不保全部序:零源 (3,0),(2,2) 曼哈顿三、四,欧三、√8,次序反。
扩展:s=(1,0) 的 dₛ(p,q)=||s*(q−p)||₂ 哪里非度量?正尺度为何避免?
查看解答
p=(0,0),q=(0,5) 不同,缩放差零、距零,同一性失败。每尺度正时对角缩放单射,缩放差零强迫原差零,欧正性、对称、三角传递,成为真度量。
自测测验
1–9 自动,10 书面自评。
(3,1)+(3,) 广播形状?(3,1) 与 (1,3),得两两组合,合法却可非目标。查看答案
原零源 P=(1,100),Q=(3,0) 未加权选 Q,第二乘 0.01 后 P 距 √2,Q 三选 P,数值几何改变。保原度量需特征权逆调整。(3,) 预测减 (3,1) 观测给 (3,3) 两两比较,而非三对。都列或都平坦并查输出。算术可能正确回答错误问题,需说明单位、轴与目标比较。
带着问题阅读
用作者 Mathematics for Machine Learning 伴随站的解析几何选段比较点积、长度、投影。查 NumPy 数组指南与广播规则。本课证明例子原创,数值检查不替代一般论证。
| 时间 | 选段与问题 |
|---|---|
| 学习时段 1 · 20 分钟 | 坐标向量与几何:哪些点、哪些位移? |
| 学习时段 4 · 20 分钟 | NumPy 形状与广播:右对齐长度怎样确定输出轴? |
区分坐标几何与 ndim 编程术语,同词可指不同数量。
回忆、结业任务与下一步
不看笔记算组合,证柯西–施瓦茨、欧三角,解释零例外。给改变度量的单位变换和无异常错误形状。
结业任务:u=(−3,4),v=(3,4),点积七、长均五、余弦 7/25,单位方向 (−0.6,0.8),(0.6,0.8)。两行表 (2,2),行范数 (2,);三行两特征表每行仍两坐标,非三坐标。
前进标准:应用前声明坐标与形状。下一线代课把矩阵当映射、解线性系统,见课程总览。
记法与双语术语
| 术语或符号 | 含义 | English |
|---|---|---|
| 标量、向量、点 | 缩放数、位移或元组、位置 | Scalar / vector / point |
| 线性、仿射、凸组合 | 任意系数、和一、另非负 | Linear / affine / convex combination |
| u·v / 正交 | 坐标积和、零点积 | Dot product / orthogonal |
| 柯西–施瓦茨 | 两长度界点积 | Cauchy–Schwarz |
| 范数、度量 | 满足律的向量长、点距 | Norm / metric |
| 单位方向、余弦相似度 | 非零归一向量、方向对齐 | Unit direction / cosine similarity |
| 形状、轴、广播 | 存储长度、坐标索引维、相容扩展 | Shape / axis / broadcasting |
| 特征尺度、配对 | 声明几何权、对应记录比较 | Feature scale / pairing |