Разные PCA участки - PullRequest
0 голосов
/ 22 мая 2019

Я пытался выучить pca (используя набор данных iris) с помощью python, и я получил некоторые результаты, поэтому я хотел проверить результаты ir R, чтобы убедиться, что это хорошо. Когда я проверял результаты, он дал мне зеркальная диаграмма Python (по оси Y) и отрицательный числовой знак в некоторых значениях (python: [140,1] = 0,1826089, r [141,2] = - 0,1826089 [число питонов равно нулю]).

Код питона:

import numpy as np
import matplotlib.pyplot as plt
import sklearn.decomposition as p
data=np.loadtxt("sample_data/iris.txt",delimiter=';',usecols=(0,1,2,3))
pca=p.PCA().fit(data)
pcaData=pca.transform(data)
plt.scatter(pcaData[:,0],pcaData[:,1])
print(pcaData[140,1])

Моя диаграмма питона

Код R:

data=read.csv("C:\\Users\\George\\Desktop\\iris.csv",sep=";",colClasses=c(NA, NA, NA,NA,"NULL"));data=data[-151,]
pca=prcomp(data)
plot(pca$x[,1],pca$x[,2])
print(pca$x[141,2])

Моя диаграмма R

При поиске в Интернете я обнаружил, что происходит то же самое.

Диаграмма R в интернете - Источник

Диаграмма Питона в интернете - Источник .

Я ожидал, что будет таким же. Что-то, что я не очень хорошо понимаю?

Спасибо.

1 Ответ

0 голосов
/ 22 мая 2019

ScikitLearn использует псевдослучайный метод для определения аппроксимации разложения по сингулярному значению.

см. https://scikit -learn.org / stable / modules / generate / sklearn.utils.extmath.randomized_svd.html

Следовательно, если вы не можете гарантировать, что методы одинаковы и использовать одинаковое случайное начальное число, вы не получите точно одинаковые значения для основных компонентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...