Python 中的矢量标签
Vector labels in Python
我正在学习一本机器学习书籍,在一段代码中出现了:
X_train_01_subset= X_train [(y_train ==0) | (y_train ==1)]
y_train_01_subset= y_train [(y_train ==0) | (y_train ==1)]
X_train
是一个带有训练样本的 104x2 向量,y_train
是一个 104x1 向量,包含样本标签:0,1 和 2。
什么
[(y_train ==0) | (y_train ==1)]
中的X_train
和y_train
呢? (算法有点泛,如果需要把所有代码都贴出来告诉我)
逐步分解。首先,这个
(y_train == 0)
(y_train == 1)
是生成布尔掩码的操作。
然后,这个:
(y_train ==0) | (y_train ==1)
是一个按位或运算。也就是说,它输出 1
如果其中一个或两个值是 1
否则 0
.
这是一个例子:
# inputs
In [22]: a = np.array([1, 1, 0, 0])
In [23]: b = np.array([1, 0, 1, 0])
# bitwise or
In [24]: a | b
Out[24]: array([1, 1, 1, 0])
最后我们使用上面的结果作为索引从X_train
:
中检索样本
X_train [(y_train ==0) | (y_train ==1)]
我正在学习一本机器学习书籍,在一段代码中出现了:
X_train_01_subset= X_train [(y_train ==0) | (y_train ==1)]
y_train_01_subset= y_train [(y_train ==0) | (y_train ==1)]
X_train
是一个带有训练样本的 104x2 向量,y_train
是一个 104x1 向量,包含样本标签:0,1 和 2。
什么
[(y_train ==0) | (y_train ==1)]
中的X_train
和y_train
呢? (算法有点泛,如果需要把所有代码都贴出来告诉我)
逐步分解。首先,这个
(y_train == 0)
(y_train == 1)
是生成布尔掩码的操作。
然后,这个:
(y_train ==0) | (y_train ==1)
是一个按位或运算。也就是说,它输出 1
如果其中一个或两个值是 1
否则 0
.
这是一个例子:
# inputs
In [22]: a = np.array([1, 1, 0, 0])
In [23]: b = np.array([1, 0, 1, 0])
# bitwise or
In [24]: a | b
Out[24]: array([1, 1, 1, 0])
最后我们使用上面的结果作为索引从X_train
:
X_train [(y_train ==0) | (y_train ==1)]