Я намерен применить inremntal PCA к большому файлу, поэтому я получил этот SO-поток в качестве справки Python PCA на матрице слишком большой, чтобы поместиться в памяти
в соответствии с этим Я пытался обработать мой пример файла с этим кодом
from sklearn.decomposition import IncrementalPCA
import csv
import sys
import numpy as np
import pandas as pd
chunksize_ = 3 * 100
dimensions = 300
cols = [i for i in range(1, 5502)]
reader = pd.read_csv("D:\PHD\obranking\\demo.csv", usecols=cols, chunksize = chunksize_)
sklearn_pca = IncrementalPCA(n_components=dimensions)
for chunk in reader:
#y = chunk.pop('y')
sklearn_pca.partial_fit(chunk)
# Computed mean per feature
mean = sklearn_pca.mean_
# and stddev
stddev = np.sqrt(sklearn_pca.var_)
Xtransformed = None
for chunk in pd.read_csv("D:\PHD\obranking\\demo.csv",usecols=cols, chunksize = chunksize_):
#y = chunk.pop('y')
Xchunk = sklearn_pca.transform(chunk)
if Xtransformed == None:
Xtransformed = Xchunk
else:
Xtransformed = np.vstack((Xtransformed, Xchunk))'
Но получая ошибку как
"C:\Users\Rahul Gupta\PycharmProjects\CSVLearn\venv\Scripts\python.exe" "C:/Users/Rahul Gupta/PycharmProjects/CSVLearn/PCALearn.py"
C:\Users\Rahul Gupta\PycharmProjects\CSVLearn\venv\lib\site-packages\sklearn\decomposition\_incremental_pca.py:309: RuntimeWarning: Mean of empty slice.
explained_variance[self.n_components_:].mean()
C:\Users\Rahul Gupta\PycharmProjects\CSVLearn\venv\lib\site-packages\numpy\core\_methods.py:161: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
Process finished with exit code 0
, мне кажется, что 0-й столбец, который является меткой класса, имеет доступ, который имеет один из классов метки как BW. Но используемые протоколы использовались для особого выбора столбцов в диапазоне индекса (1, 5502), хотя в CSV они имеют строки в качестве своих имен. Я также прокомментировал y = chunk.pop('y')
, так как не смог понять его использование по предоставленной ссылке. Пожалуйста, расскажите мне, что делает эта строка кода, а также в чем проблема с моим кодом.