Я хочу поработать над тем, как линейно неразделимый набор данных в R ^ 2 может быть линейно разделим в R ^ 3 после преобразования с помощью соответствующей функции ядра.
def randrange(n, vmin, vmax):
return (vmax-vmin)*np.random.rand(n) + vmin
def fn_kernel(x1, x2):
""" Implements a kernel phi(x1,y1) = [x1, y1, x1^2 + y1^2] """
return np.array([x1, x2, x1**2.0 + x2**2.0])
""" Generate linearly nonseparable dataset (in R^2) """
Я преобразовал набор данных в PCA.
pca = PCA(n_components=2)
X = pca.fit_transform(X_train)
Y = pca.transform(X_test)
Для печати X и Y:
print(X)
[[-1.25822621 -0.10589429]
[ 1.14574408 0.50555968]
[ 1.53943153 -0.89326919]
[-1.50951157 -0.35717965]
[ 0.58873174 -0.94771082]
[ 0.50077128 1.6531032 ]
[-1.00694085 0.14539106]]
print(Y)
[[-1.76079692 -0.608465 ]
[-0.00179943 1.15053249]
[-0.05624106 0.1998327 ]]
Здесь возвращается пустой список, я не знаю почему?
A = X[np.where(Y == 0)]
B = X[np.where(Y == 1)]
print(A) -> []
print(B) -> []
икогда я запускаю следующий код:
X0_orig = A[:, 0]
Y0_orig = A[:, 1]
Это выдает ошибку: слишком много индексов для массива.