You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据科学中,使用大写X与小写x有何区别?为何y采用全小写形式?

数据科学中X/x和y的命名约定

这是个非常实用的问题!在数据科学和机器学习领域,变量的大小写其实是行业通用的命名惯例,目的是让代码更易读、团队协作更顺畅。下面具体拆解:

大写X vs 小写x的区别

  • 大写X:几乎总是代表特征矩阵(Feature Matrix),是一个二维数据结构(比如NumPy数组、Pandas DataFrame)。每一行对应一个独立的样本,每一列对应一个特征。比如你的示例代码里:
    X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
    
    这里的X是4行2列的矩阵,对应4个样本,每个样本有2个特征。
  • 小写x:通常代表单个样本的特征向量,是一维结构(或者二维结构中的一行)。比如你代码里预测时用到的np.array([[3, 5]]),如果单独拿出来赋值给x,就是一个单样本的特征向量:x = np.array([3,5])。

为什么y用全小写?

小写y是**目标变量/标签向量(Target Vector)**的标准命名,它是一维结构,每个元素对应X中对应行样本的目标值(回归问题是连续值,分类问题是类别标签)。示例里的y就是通过特征矩阵计算得到的目标向量:

y = np.dot(X, np.array([1, 2])) + 3

这里y是长度为4的一维数组,每个值对应X中4个样本的输出结果。

补充说明

这些约定不是强制的语法规则,但几乎所有主流机器学习库(比如scikit-learn、TensorFlow、PyTorch)和学术资料都遵循这个习惯。统一的命名能让你快速理解代码逻辑,也方便和其他开发者交流。比如scikit-learn的fit()方法默认接受X(特征矩阵)和y(目标向量)作为参数,就是基于这个惯例。

完整示例代码

import numpy as np
from sklearn.linear_model import LinearRegression
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
y = np.dot(X, np.array([1, 2])) + 3
reg = LinearRegression().fit(X, y)
reg.score(X, y)
reg.coef_
reg.intercept_
reg.predict(np.array([[3, 5]]))

内容的提问来源于stack exchange,提问作者user14911341

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:23:12