如果剥去机器学习里所有复杂的术语和时髦概念,剩下的核心想法其实很简单——把真实世界的东西变成数字,然后用数学来处理这些数字。这就是向量、维度和特征空间登场的时刻。对PHP开发者来说,理解这一点尤其重要,因为你们在代码中打交道的是数组、矩阵和具体操作,而不是抽象的线性代数。
向量:描述对象的方式
![]()
在机器学习的语境下,向量就是一个有序的数字集合。每个数字描述对象的某个方面。对象简单,向量就短;对象复杂,向量可以很长。
想象一个电商用户。用年龄、年购买次数、平均客单价三个数字就能描述他:
(年龄, 购买次数, 平均客单价)
翻译成PHP极其直白:
$userVector = [35, 12, 78.5];
关键要明白:向量不只是数组,顺序有意义。如果把年龄和客单价的位置互换,模型不会"猜"到你的本意——对它来说,这就是完全不同的数据。
向量的维度
维度就是向量里数字的个数。上面的例子维度是3。如果再加一个特征"距上次购买天数",维度就变成4。
维度直接关联描述的精细程度。低维度意味着粗略描述,高维度更详细。但高维度不总是好事——每个新增特征既是模型的新自由度,也是新的噪声来源。
把维度理解为固定契约更有助于实操。如果模型期待长度为10的向量,你必须永远传10个数字,顺序一致:
function predict(array $features): float {
if (count($features) !== 10) {
throw new InvalidArgumentException("期待维度为10的向量");
// 后续计算
示例代码展示了完整的调用流程:传入10个特征值,获取模型评分,根据阈值判断结果等级。
特征空间
形式上用ℝⁿ表示特征空间,意味着每个对象由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.