У меня есть матрица X n на d, d на 1 вектор w и n на 1 вектор y, так что Xw = y
Я хотел бы перетасовать строки X и y взаимно. Это означает, что перемешивание может быть случайным, если оно применяется как к X, так и к y. Если, например, строка 20 в X стала строкой 3 в X, тогда строка 20 в y станет строкой 3 в y.
Я написал этот код:
def train_test_split(X, y, w, training_percentage=80):
print(np.linalg.norm(X @ w - y))
permutation = np.random.permutation(X.shape[0])
np.take(X, permutation, axis=0, out=X)
np.take(y, permutation, axis=0, out=y)
print(np.linalg.norm(X @ w - y))
первый отпечаток равен нулю . Второй отпечаток - 1.4345819474787535e-09, который не равен нулю (хотя он близок).
Это проблема округления или я что-то не понимаю?