剥掉所有复杂术语和流行词,机器学习的核心其实就一件事:把现实世界的东西变成数字,然后用数学方法处理这些数字。向量、维度、特征空间这些概念,就是从这里来的。
对PHP开发者来说,直觉理解比形式化定义更重要。因为你写的代码里不会出现抽象的线性代数,只有数字数组、矩阵和对它们的操作。
![]()
在机器学习中,向量就是一组有顺序的数字。每个数字代表对象的某个方面。对象简单,向量就短;对象复杂,向量可以很长。
想象一个网店用户。我们可以用三个数字描述他:年龄、年购买次数、平均订单金额。那么一个用户就是一个三维向量:
(年龄, 购买次数, 平均订单金额)
用PHP写非常直接:
$userVector = [35, 12, 78.5];
关键要明白:向量不只是数组,元素的顺序至关重要。如果你把年龄和平均订单金额调换位置,模型不会"理解"你的意图。对它来说,这是完全不同的数据。
向量的维度就是它包含的数值个数。上面的例子维度是3。如果再加一个特征,比如"距上次购买的天数",维度就变成4。
维度直接决定了你对对象的描述精细程度。低维度是粗略描述,高维度更详细。但维度越高不总是越好。每个新增特征既是模型的新自由度,也可能是噪声来源。
可以把维度想象成一份固定契约。如果模型期望长度为10的向量,你必须始终传入恰好10个数字,顺序也不能变。
function predict(array $features): float {
if (count($features) !== 10) {
throw new InvalidArgumentException("Expected a vector of dimensionality 10");
}
// 后续计算
}
特征空间在形式上通常记为Rⁿ。这意味着每个对象都由n个实数表示——本质上就是一个n维向量。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.