本文整理汇总了Python中sklearn.decomposition.IncrementalPCA.partial_fit方法的典型用法代码示例。如果您正苦于以下问题:Python IncrementalPCA.partial_fit方法的具体用法?Python IncrementalPCA.partial_fit怎么用?Python IncrementalPCA.partial_fit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sklearn.decomposition.IncrementalPCA
的用法示例。
在下文中一共展示了IncrementalPCA.partial_fit方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: compute_pca
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def compute_pca(data_path=os.path.join(BASE_DIR, 'data/memmap/'),
out_path=os.path.join(BASE_DIR, 'data/'),
batch_size=500, image_size=3*300*300):
ipca = IncrementalPCA(n_components=3, batch_size=batch_size)
path = os.path.join(data_path, 'tn_x.dat')
train = np.memmap(path, dtype=theano.config.floatX, mode='r+', shape=(4044,image_size))
n_samples, _ = train.shape
for batch_num, batch in enumerate(gen_batches(n_samples, batch_size)):
X = train[batch,:]
X = np.reshape(X, (X.shape[0], 3, int(image_size/3)))
X = X.transpose(0, 2, 1)
X = np.reshape(X, (reduce(np.multiply, X.shape[:2]), 3))
ipca.partial_fit(X)
path = os.path.join(data_path, 'v_x.dat')
valid = np.memmap(path, dtype=theano.config.floatX, mode='r+', shape=(500,image_size))
n_samples, _ = valid.shape
for batch_num, batch in enumerate(gen_batches(n_samples, batch_size)):
X = valid[batch,:]
X = np.reshape(X, (X.shape[0], 3, int(image_size/3)))
X = X.transpose(0, 2, 1)
X = np.reshape(X, (reduce(np.multiply, X.shape[:2]), 3))
ipca.partial_fit(X)
eigenvalues, eigenvectors = np.linalg.eig(ipca.get_covariance())
eigenvalues.astype('float32').dump(os.path.join(out_path, 'eigenvalues.dat'))
eigenvectors.astype('float32').dump(os.path.join(out_path, 'eigenvectors.dat'))
示例2: get_pca
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def get_pca(file_dir, s, t, i):
from sklearn.decomposition import IncrementalPCA
ipca = IncrementalPCA(n_components=48)
for counter in range(s, t, i):
features_file = np.load(file_dir + "/pca" + str(counter) + "_code.npy")
ipca.partial_fit(features_file[:, 0:4096])
return ipca
示例3: create_pool_pca_from_files
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def create_pool_pca_from_files(file_dir, dir_output, s, t, i):
from sklearn.decomposition import IncrementalPCA
ipca = IncrementalPCA(n_components=number_dim_pca)
for counter in range(s, t, i):
features_file = np.load(file_dir + '/pca' + str(counter) + '_code.npy')
ipca.partial_fit(features_file[:, 0:4096])
for counter in range(s, t, i):
out_file = dir_output + 'pca_red_' + str(counter) + '_code.npy'
features_file = np.load(file_dir + '/pca' + str(counter) + '_code.npy')
features_red = ipca.transform(features_file[:, 0:4096])
np.save(out_file, np.append(features_red, features_file[:, 4096:], axis=1))
示例4: train_pca
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def train_pca(file_dir, s, t, i):
from sklearn.decomposition import IncrementalPCA
global timer_pca
timer_pca = Timer()
timer_pca.tic()
ipca = IncrementalPCA(n_components=pca_dimensions)
for counter in range(s, t, i):
features_file = np.load(file_dir + '/pca' + str(counter) + '_code.npy')
ipca.partial_fit(features_file[:, 0:4096])
timer_pca.toc()
return ipca
示例5: performPCA
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def performPCA(source, num_components, chunk_size):
image_paths = sorted(listdir(source), key=lambda x: (int(x.split('_')[0]), x.split('_')[1]))
size, images = 0, []
n_chunks = len(image_paths)//chunk_size
pca = IncrementalPCA(n_components=num_components, batch_size=chunk_size)
# Read in all images and do a partial fit on the PCA model.
for i in range(n_chunks):
print 'Chunk:', i, 'Index:', i * chunk_size + size
while size < chunk_size:
images.append(imread(source+image_paths[i * chunk_size + size]).flatten())
size += 1
pca.partial_fit(np.asarray(images))
size, images = 0, []
if i == n_chunks - 1:
i += 1
while i * chunk_size + size < len(image_paths):
images.append(imread(source+image_paths[i * chunk_size + size]).flatten())
size += 1
pca.partial_fit(np.asarray(images))
# Only works with Python 3
#print("\nExplained variance ratios: {0}".format(pca.explained_variance_ratio_))
#print("Sum of variance captured by components: {0}\n".format(sum(pca.explained_variance_ratio_)))
xTransformed = None
# Read in all images again and transform them using the PCA model.
for i in range(n_chunks):
while size < chunk_size:
images.append(imread(source+image_paths[i * chunk_size + size]).flatten())
size += 1
print 'Chunk:', i, 'index:', i * chunk_size + size
transformed = pca.transform(np.asarray(images))
if xTransformed is None:
xTransformed = transformed
else:
xTransformed = np.vstack((xTransformed, transformed))
size, images = 0, []
if i == n_chunks - 1:
i += 1
while i * chunk_size + size < len(image_paths):
images.append(imread(source+image_paths[i * chunk_size + size]).flatten())
size += 1
transformed = pca.transform(np.asarray(images))
xTransformed = np.vstack((xTransformed, transformed))
print "\nTransformed matrix shape:", xTransformed.shape
return xTransformed
示例6: train_pca_model
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def train_pca_model(collection_name, feature_name, n_components, iterations=100, batch_size=20):
collection = collection_from_name(collection_name)
model = IncrementalPCA(n_components=n_components)
partial_unpickle_data = partial(unpickle_data, feature_name=feature_name)
for _ in range(iterations):
feature = map(partial_unpickle_data, collection.aggregate([{'$sample': {'size': batch_size}}]))
feature = np.hstack(feature).T
model.partial_fit(feature)
return model
示例7: test_n_components_none
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def test_n_components_none():
# Ensures that n_components == None is handled correctly
rng = np.random.RandomState(1999)
for n_samples, n_features in [(50, 10), (10, 50)]:
X = rng.rand(n_samples, n_features)
ipca = IncrementalPCA(n_components=None)
# First partial_fit call, ipca.n_components_ is inferred from
# min(X.shape)
ipca.partial_fit(X)
assert ipca.n_components_ == min(X.shape)
# Second partial_fit call, ipca.n_components_ is inferred from
# ipca.components_ computed from the first partial_fit call
ipca.partial_fit(X)
assert ipca.n_components_ == ipca.components_.shape[0]
示例8: test_incremental_pca_partial_fit
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def test_incremental_pca_partial_fit():
"""Test that fit and partial_fit get equivalent results."""
rng = np.random.RandomState(1999)
n, p = 50, 3
X = rng.randn(n, p) # spherical data
X[:, 1] *= .00001 # make middle component relatively small
X += [5, 4, 3] # make a large mean
# same check that we can find the original data from the transformed
# signal (since the data is almost of rank n_components)
batch_size = 10
ipca = IncrementalPCA(n_components=2, batch_size=batch_size).fit(X)
pipca = IncrementalPCA(n_components=2, batch_size=batch_size)
# Add one to make sure endpoint is included
batch_itr = np.arange(0, n + 1, batch_size)
for i, j in zip(batch_itr[:-1], batch_itr[1:]):
pipca.partial_fit(X[i:j, :])
assert_almost_equal(ipca.components_, pipca.components_, decimal=3)
示例9: __init__
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
class MyPCA:
def __init__(self, filename=None):
if not filename:
self.model = IncrementalPCA(NUM_COMP)
else:
with open(filename, 'r') as f:
self.model = pickle.load(f)
def train(self, X):
self.model.partial_fit(X)
def transform(self, X):
return self.model.transform(X)
def dump(self, filename):
with open(filename, 'w') as f:
pickle.dump(self.model, f)
示例10: test_incremental_pca_set_params
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def test_incremental_pca_set_params():
"""Test that components_ sign is stable over batch sizes."""
rng = np.random.RandomState(1999)
n_samples = 100
n_features = 20
X = rng.randn(n_samples, n_features)
X2 = rng.randn(n_samples, n_features)
X3 = rng.randn(n_samples, n_features)
ipca = IncrementalPCA(n_components=20)
ipca.fit(X)
# Decreasing number of components
ipca.set_params(n_components=10)
assert_raises(ValueError, ipca.partial_fit, X2)
# Increasing number of components
ipca.set_params(n_components=15)
assert_raises(ValueError, ipca.partial_fit, X3)
# Returning to original setting
ipca.set_params(n_components=20)
ipca.partial_fit(X)
示例11: ipca
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def ipca(self, X, n_components=100):
from sklearn.decomposition import IncrementalPCA
# trials = h5py.File(self.path + "/trials.hdf5", 'r')
# scaled_meg = trials['scaled_meg'] # it's ok, the dataset is not fetched to memory yet
# scaled_meeg = trials['scaled_meeg']
n1 = X.shape[0] # how many rows we have in the dataset
chunk_size = 1000 # how many rows we feed to IPCA at a time, the divisor of n
ipca = IncrementalPCA(n_components=n_components)
for i in range(0, n1//chunk_size):
print("{} to {} out of {}.".format(i*chunk_size,(i+1)*chunk_size,n1))
print(X[i*chunk_size : (i+1)*chunk_size].shape)
ipca.partial_fit(X[i*chunk_size : (i+1)*chunk_size])
x = ipca.transform(X)
print(x.shape)
# n_comp = sum(i > 10.0e-05 for i in ipca.explained_variance_ratio_)
# print(n_comp)
return x
示例12: project
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def project(self, ndim=None):
""" Projects the data object given to the constructor onto `ndim` dimensions
Parameters
----------
ndim : int
The number of dimensions we want to project the data on.
Returns
-------
dataTica : :class:`MetricData <htmd.metricdata.MetricData>` object
A new :class:`MetricData <htmd.metricdata.MetricData>` object containing the projected data
Example
-------
>>> gw = GWPCA(data)
>>> dataproj = gw.project(5)
"""
from sklearn.decomposition import IncrementalPCA
from htmd.progress.progress import ProgressBar
from htmd.metricdata import MetricData
pca = IncrementalPCA(n_components=ndim, batch_size=10000)
p = ProgressBar(len(self.data.dat))
for d in self.data.dat:
pca.partial_fit(d * self.weights)
p.progress()
p.stop()
projdata = self.data.copy()
p = ProgressBar(len(self.data.dat))
for i, d in enumerate(self.data.dat):
projdata.dat[i] = pca.transform(d * self.weights)
p.progress()
p.stop()
# projdataconc = pca.fit_transform(self.weighedconcat)
# projdata.dat = projdata.deconcatenate(projdataconc)
return projdata
示例13: PCA
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def PCA(source, num_components, chuck_size):
image_path = sorted(list(source), key = lambda x: (int(x.split('_')[0]), x.split('_')[1]))
size, images = 0, []
n_chunks = len(image_path)//chunk_size
pca = IncrementalPCA(n_components=num_components, batch_size=chunk_size)
for i in range(n_chunks):
print('Chunk:', i, '\tIndex:', i * chunk_size + size)
while size < chunk_size:
images.append(imread(source+image_path[i * chunk_size + size]).flatte())
size += 1
pca.partial_fit(np.asarray(images))
size, images = 0, []
if i == n_chunks - 1:
i += 1
print('chunk:', i, 'index:', i * chunk_size + size)
transformed = pca.transform(np.asarray(images))
if xTransformed is None:
xTransformed = transformed
else:
xTransformed = np.vstack((xTransformed, transformed))
size, images = 0, []
if i == n_chunks - 1:
i += 1
while i * chunk_size + size < len(image_path):
images.append(imread(source+image_path[i * chunk_size]).flatten())
size += 1
trasformed = pca.transform(np.asarray(images))
xTransformed = np.vstack((xTransformed, transformed))
print("\nTransformed matrix shape:", xTransformed.shape)
return xTransformed
if __name__ == "__main__":
source = './train/right'
new_size = '32x32'
pool = Pool()
start = time.time()
pool.map(imageResize, zip(itertools.repeat(source), listdir(source), itertools.repeat(new_size)))
print("Resized Images in {0} seconds".formate(time.time() - start))
示例14: PCAIncremental
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
class PCAIncremental(PCAnalyzer):
""" Incremental PCA -- used to batch input over time/space """
def __init__(self, components):
PCAnalyzer.__init__(self)
if isinstance(components, int):
self.n_components = components
self.pca = IncrementalPCA(n_components=components, batch_size=500)
self.num_seen = 0
self.type = 'incremental'
def solve(self, X):
self.dim = np.prod(X.shape[1:])
self.pca.partial_fit(X.reshape(len(X), self.dim))
self.trainsize += len(X)
def project(self, X):
if isinstance(X, list):
X = np.array(X)
dimX = np.prod(X.shape[1:])
if dimX != self.dim:
logging.error('Projection Error in PCA: Cannot reshape/project %s size data using PC Vects of size, %s', str(X.shape), str(self.dim))
return None
projection = self.pca.transform(X.reshape(len(X), dimX))
return projection
示例15: test_incremental_pca_partial_fit_float_division
# 需要导入模块: from sklearn.decomposition import IncrementalPCA [as 别名]
# 或者: from sklearn.decomposition.IncrementalPCA import partial_fit [as 别名]
def test_incremental_pca_partial_fit_float_division():
# Test to ensure float division is used in all versions of Python
# (non-regression test for issue #9489)
rng = np.random.RandomState(0)
A = rng.randn(5, 3) + 2
B = rng.randn(7, 3) + 5
pca = IncrementalPCA(n_components=2)
pca.partial_fit(A)
# Set n_samples_seen_ to be a floating point number instead of an int
pca.n_samples_seen_ = float(pca.n_samples_seen_)
pca.partial_fit(B)
singular_vals_float_samples_seen = pca.singular_values_
pca2 = IncrementalPCA(n_components=2)
pca2.partial_fit(A)
pca2.partial_fit(B)
singular_vals_int_samples_seen = pca2.singular_values_
np.testing.assert_allclose(singular_vals_float_samples_seen,
singular_vals_int_samples_seen)