PCA Склеарна дает «неправильный» вывод для последнего ряда - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь запустить данные через PCA (n_components=2) от sklearn и обнаружил, что значение y в последней строке отличается от других значений тех же входных значений.Примечательно, что входные данные состоят только из двух отдельных записей, и при изменении количества вхождений для записи ошибка исчезает.

Пожалуйста, найдите код ниже, чтобы повторить ошибку.

import pandas as pd
from sklearn.decomposition import PCA

lst1 = [[-0.485886999,0,-0.485886999,-0.485886999,-0.485886999,0,-0.485886999,-0.485886999,-0.485886999,-0.485886999,-0.485886999,0.485886999,-0.485886999,-0.485886999,-0.485886999,-0.485886999]]*7798
lst2 = [[2.0580917,0,2.0580917,2.0580917,2.0580917,0,2.0580917,2.0580917,2.0580917,2.0580917,2.0580917,-2.0580917,2.0580917,2.0580917,2.0580917,2.0580917]]*1841

df_lst1 = pd.DataFrame(lst1)
df_lst2 = pd.DataFrame(lst2)
test = pd.concat([df_lst2, df_lst1], axis=0).reset_index(drop=True)

pca = PCA(n_components=2)
pca.fit(test)
result = pd.DataFrame(pca.transform(test), index=test.index)
print(result)

Ввод трех последних строк (три строки идентичны):

            0   1         2         3         4   5         6     ...           9         10        11        12        13        14        15
9636 -0.485887   0 -0.485887 -0.485887 -0.485887   0 -0.485887    ...    -0.485887 -0.485887  0.485887 -0.485887 -0.485887 -0.485887 -0.485887
9637 -0.485887   0 -0.485887 -0.485887 -0.485887   0 -0.485887    ...    -0.485887 -0.485887  0.485887 -0.485887 -0.485887 -0.485887 -0.485887
9638 -0.485887   0 -0.485887 -0.485887 -0.485887   0 -0.485887    ...    -0.485887 -0.485887  0.485887 -0.485887 -0.485887 -0.485887 -0.485887

Ввод трех последних строк:

             0             1
9636 -1.818023  1.679370e-17
9637 -1.818023  1.679370e-17
9638 -1.818023  0.000000e+00
...