Benchmarks for covariance¶
GraphLasso-minimadelon¶
Benchmark setup
from sklearn.covariance import GraphLasso from deps import load_data kwargs = {} X, y, X_t, y_t = load_data('minimadelon') obj = GraphLasso(**kwargs)
Benchmark statement
obj.fit(X)
Execution time
Memory usage
Additional output
Traceback
Traceback (most recent call last):
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 150, in run
exec step in ns
File "<string>", line 1, in <module>
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 264, in fit
verbose=self.verbose,
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 207, in graph_lasso
raise e
FloatingPointError: Non SPD result: the system is too ill-conditioned for this solver. The system is too ill-conditioned for this solver
Traceback (most recent call last):
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 260, in run
mem_usages = magic_memit(ns, self.code, repeat=self.mem_repeat)
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 672, in magic_memit
raise RuntimeError('ERROR: all subprocesses exited unsuccessfully.'
RuntimeError: ERROR: all subprocesses exited unsuccessfully. Try again with the `-i` option.
Traceback (most recent call last):
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 293, in run
prof.runcall(f)
File "/sp/lib/python/cpython-2.7.2/lib/python2.7/cProfile.py", line 149, in runcall
return func(*args, **kw)
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 288, in f
exec code in ns
File "<f>", line 1, in <module>
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 264, in fit
verbose=self.verbose,
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 207, in graph_lasso
raise e
FloatingPointError: Non SPD result: the system is too ill-conditioned for this solver. The system is too ill-conditioned for this solver
Traceback (most recent call last):
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 351, in run
prof.runcall(f)
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/line_profiler.py", line 137, in runcall
return func(*args, **kw)
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 348, in f
exec code in ns
File "<f>", line 1, in <module>
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 264, in fit
verbose=self.verbose,
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 207, in graph_lasso
raise e
FloatingPointError: Non SPD result: the system is too ill-conditioned for this solver. The system is too ill-conditioned for this solver
GraphLasso-madelon¶
Benchmark setup
from sklearn.covariance import GraphLasso from deps import load_data kwargs = {} X, y, X_t, y_t = load_data('madelon') obj = GraphLasso(**kwargs)
Benchmark statement
obj.fit(X)
Execution time
Memory usage
Additional output
Traceback
Traceback (most recent call last):
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 150, in run
exec step in ns
File "<string>", line 1, in <module>
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 264, in fit
verbose=self.verbose,
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 207, in graph_lasso
raise e
FloatingPointError: overflow encountered in multiply. The system is too ill-conditioned for this solver
Traceback (most recent call last):
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 260, in run
mem_usages = magic_memit(ns, self.code, repeat=self.mem_repeat)
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 672, in magic_memit
raise RuntimeError('ERROR: all subprocesses exited unsuccessfully.'
RuntimeError: ERROR: all subprocesses exited unsuccessfully. Try again with the `-i` option.
Traceback (most recent call last):
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 293, in run
prof.runcall(f)
File "/sp/lib/python/cpython-2.7.2/lib/python2.7/cProfile.py", line 149, in runcall
return func(*args, **kw)
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 288, in f
exec code in ns
File "<f>", line 1, in <module>
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 264, in fit
verbose=self.verbose,
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 207, in graph_lasso
raise e
FloatingPointError: overflow encountered in multiply. The system is too ill-conditioned for this solver
Traceback (most recent call last):
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 351, in run
prof.runcall(f)
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/line_profiler.py", line 137, in runcall
return func(*args, **kw)
File "/home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py", line 348, in f
exec code in ns
File "<f>", line 1, in <module>
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 264, in fit
verbose=self.verbose,
File "/tmp/vb_sklearn/sklearn/covariance/graph_lasso_.py", line 207, in graph_lasso
raise e
FloatingPointError: overflow encountered in multiply. The system is too ill-conditioned for this solver
MinCovDet-blobs¶
Benchmark setup
from sklearn.covariance import MinCovDet from deps import load_data kwargs = {} X, y, X_t, y_t = load_data('blobs') obj = MinCovDet(**kwargs)
Benchmark statement
obj.fit(X)
Execution time
Memory usage
Additional output
cProfile
13580 function calls in 1.305 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 1.305 1.305 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py:286(f)
1 0.000 0.000 1.305 1.305 <f>:1(<module>)
1 0.000 0.000 1.305 1.305 /tmp/vb_sklearn/sklearn/covariance/robust_covariance.py:515(fit)
1 0.000 0.000 1.292 1.292 /tmp/vb_sklearn/sklearn/covariance/robust_covariance.py:259(fast_mcd)
2 0.003 0.001 1.292 0.646 /tmp/vb_sklearn/sklearn/covariance/robust_covariance.py:152(select_candidates)
40 0.148 0.004 1.266 0.032 /tmp/vb_sklearn/sklearn/covariance/robust_covariance.py:27(c_step)
126 0.001 0.000 0.850 0.007 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:457(pinv)
126 0.794 0.006 0.832 0.007 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:365(lstsq)
243 0.158 0.001 0.158 0.001 {numpy.core._dotblas.dot}
116 0.001 0.000 0.097 0.001 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:37(empirical_covariance)
116 0.016 0.000 0.094 0.001 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:1888(cov)
145 0.001 0.000 0.051 0.000 /tmp/vb_sklearn/sklearn/utils/extmath.py:39(_fast_logdet_numpy)
145 0.013 0.000 0.050 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/linalg/linalg.py:1560(slogdet)
379 0.030 0.000 0.040 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:526(asarray_chkfinite)
952 0.002 0.000 0.032 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:167(asarray)
1159 0.032 0.000 0.032 0.000 {numpy.core.multiarray.array}
132 0.001 0.000 0.027 0.000 {map}
233 0.024 0.000 0.024 0.000 {method 'mean' of 'numpy.ndarray' objects}
145 0.021 0.000 0.021 0.000 {numpy.linalg.lapack_lite.dgetrf}
918 0.010 0.000 0.010 0.000 {method 'any' of 'numpy.ndarray' objects}
1 0.001 0.001 0.010 0.010 /tmp/vb_sklearn/sklearn/covariance/robust_covariance.py:583(reweight_covariance)
127 0.008 0.000 0.008 0.000 {method 'sum' of 'numpy.ndarray' objects}
127 0.002 0.000 0.007 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:60(get_lapack_funcs)
1 0.000 0.000 0.006 0.006 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:98(_set_covariance)
40 0.002 0.000 0.005 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:1862(allclose)
30 0.004 0.000 0.004 0.000 {method 'permutation' of 'mtrand.RandomState' objects}
87 0.000 0.000 0.004 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:598(argsort)
127 0.002 0.000 0.004 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:45(find_best_lapack_type)
87 0.003 0.000 0.003 0.000 {method 'argsort' of 'numpy.ndarray' objects}
145 0.001 0.000 0.003 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/linalg/linalg.py:139(_fastCopyAndTranspose)
435 0.003 0.000 0.003 0.000 {method 'reduce' of 'numpy.ufunc' objects}
145 0.001 0.000 0.003 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:902(diagonal)
145 0.002 0.000 0.002 0.000 {numpy.core.multiarray._fastCopyAndTranspose}
387 0.002 0.000 0.002 0.000 {numpy.core.multiarray.zeros}
126 0.001 0.000 0.002 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:1830(identity)
145 0.001 0.000 0.002 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/linalg/linalg.py:99(_commonType)
2 0.000 0.000 0.001 0.001 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/stats/distributions.py:453(isf)
2 0.000 0.000 0.001 0.001 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/stats/distributions.py:1521(isf)
145 0.001 0.000 0.001 0.000 {method 'diagonal' of 'numpy.ndarray' objects}
162 0.000 0.000 0.001 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:1508(any)
1 0.000 0.000 0.001 0.001 /tmp/vb_sklearn/sklearn/covariance/robust_covariance.py:559(correct_covariance)
253 0.001 0.000 0.001 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:23(cast_to_lapack_prefix)
145 0.001 0.000 0.001 0.000 {numpy.core.multiarray.arange}
941 0.001 0.000 0.001 0.000 {issubclass}
126 0.001 0.000 0.001 0.000 {method 'astype' of 'numpy.generic' objects}
1 0.000 0.000 0.001 0.001 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/decomp_svd.py:92(svdvals)
1 0.001 0.001 0.001 0.001 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/decomp_svd.py:14(svd)
145 0.001 0.000 0.001 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/linalg/linalg.py:127(_to_native_byte_order)
145 0.000 0.000 0.001 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/linalg/linalg.py:157(_assertSquareness)
116 0.001 0.000 0.001 0.000 {method 'astype' of 'numpy.ndarray' objects}
145 0.001 0.000 0.001 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/linalg/linalg.py:151(_assertRank2)
260 0.001 0.000 0.001 0.000 {getattr}
290 0.000 0.000 0.001 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/linalg/linalg.py:71(isComplexType)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/stats/distributions.py:603(argsreduce)
80 0.000 0.000 0.000 0.000 {abs}
574 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}
44 0.000 0.000 0.000 0.000 /tmp/vb_sklearn/sklearn/utils/validation.py:181(check_random_state)
256 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects}
40 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:1579(all)
127 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
6 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:32(_wrapit)
116 0.000 0.000 0.000 0.000 {method 'squeeze' of 'numpy.ndarray' objects}
145 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/linalg/linalg.py:84(_realType)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/stats/distributions.py:592(valarray)
830 0.000 0.000 0.000 0.000 {len}
40 0.000 0.000 0.000 0.000 {method 'all' of 'numpy.ndarray' objects}
8 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:1258(extract)
127 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:449(isfortran)
129 0.000 0.000 0.000 0.000 {range}
145 0.000 0.000 0.000 0.000 {max}
95 0.000 0.000 0.000 0.000 {isinstance}
116 0.000 0.000 0.000 0.000 {method 'conj' of 'numpy.ndarray' objects}
253 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/misc.py:22(_datacopied)
16 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:1044(ravel)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:1458(product)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:2861(median)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/shape_base.py:6(atleast_1d)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:300(repeat)
145 0.000 0.000 0.000 0.000 {min}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:1379(sum)
1 0.000 0.000 0.000 0.000 /tmp/vb_sklearn/sklearn/utils/validation.py:62(array2d)
145 0.000 0.000 0.000 0.000 {method 'get' of 'dict' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/stats/distributions.py:2543(_isf)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:490(sort)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/stats/distributions.py:1173(_argcheck)
11 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:237(asanyarray)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/base.py:553(isspmatrix)
6 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:1301(place)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/stats/distributions.py:1899(__call__)
1 0.000 0.000 0.000 0.000 {method 'sort' of 'numpy.ndarray' objects}
10 0.000 0.000 0.000 0.000 {method 'reshape' of 'numpy.ndarray' objects}
8 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:45(take)
2 0.000 0.000 0.000 0.000 {zip}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/sputils.py:116(_isinstance)
2 0.000 0.000 0.000 0.000 {method 'any' of 'numpy.generic' objects}
8 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:1129(nonzero)
6 0.000 0.000 0.000 0.000 {numpy.lib._compiled_base._insert}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:2299(mean)
2 0.000 0.000 0.000 0.000 {method 'prod' of 'numpy.ndarray' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/stats/distributions.py:1896(freeze)
16 0.000 0.000 0.000 0.000 {method 'ravel' of 'numpy.ndarray' objects}
8 0.000 0.000 0.000 0.000 {method 'take' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/shape_base.py:58(atleast_2d)
8 0.000 0.000 0.000 0.000 {method 'nonzero' of 'numpy.ndarray' objects}
2 0.000 0.000 0.000 0.000 {method 'repeat' of 'numpy.ndarray' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:107(reshape)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/stats/distributions.py:635(_fix_loc_scale)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/stats/distributions.py:433(__init__)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:1211(shape)
1 0.000 0.000 0.000 0.000 {method 'flatten' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:120(get_precision)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
LineProfiler
Timer unit: 1e-06 s
File: /tmp/vb_sklearn/sklearn/covariance/robust_covariance.py
Function: fit at line 515
Total time: 1.34434 s
Line # Hits Time Per Hit % Time Line Contents
==============================================================
515 def fit(self, X):
516 """Fits a Minimum Covariance Determinant with the FastMCD algorithm.
517
518 Parameters
519 ----------
520 X: array-like, shape = [n_samples, n_features]
521 Training data, where n_samples is the number of samples
522 and n_features is the number of features.
523
524 Returns
525 -------
526 self: object
527 Returns self.
528
529 """
530 1 10 10.0 0.0 self.random_state = check_random_state(self.random_state)
531 1 4 4.0 0.0 n_samples, n_features = X.shape
532 # check that the empirical covariance is full rank
533 1 2010 2010.0 0.1 if (linalg.svdvals(np.dot(X.T, X)) > 1e-8).sum() != n_features:
534 warnings.warn("The covariance matrix associated to your dataset " \
535 "is not full rank")
536 # compute and store raw estimates
537 1 3 3.0 0.0 raw_location, raw_covariance, raw_support, raw_dist = fast_mcd(
538 1 3 3.0 0.0 X, support_fraction=self.support_fraction,
539 1 3 3.0 0.0 cov_computation_method=self._nonrobust_covariance,
540 1 1331470 1331470.0 99.0 random_state=self.random_state)
541 1 5 5.0 0.0 if self.assume_centered:
542 raw_location = np.zeros(n_features)
543 raw_covariance = self._nonrobust_covariance(
544 X[raw_support], assume_centered=True)
545 raw_dist = np.sum(np.dot(X, linalg.pinv(raw_covariance)) * X, 1)
546 1 4 4.0 0.0 self.raw_location_ = raw_location
547 1 8 8.0 0.0 self.raw_covariance_ = raw_covariance
548 1 2 2.0 0.0 self.raw_support_ = raw_support
549 1 2 2.0 0.0 self.location_ = raw_location
550 1 3 3.0 0.0 self.support_ = raw_support
551 1 5 5.0 0.0 self.dist_ = raw_dist
552 # obtain consistency at normal models
553 1 1215 1215.0 0.1 self.correct_covariance(X)
554 # reweight estimator
555 1 9593 9593.0 0.7 self.reweight_covariance(X)
556
557 1 3 3.0 0.0 return self
ShrunkCovariance-minimadelon¶
Benchmark setup
from sklearn.covariance import ShrunkCovariance from deps import load_data kwargs = {} X, y, X_t, y_t = load_data('minimadelon') obj = ShrunkCovariance(**kwargs)
Benchmark statement
obj.fit(X)
Execution time
Memory usage
Additional output
cProfile
96 function calls in 0.702 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.702 0.702 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py:286(f)
1 0.000 0.000 0.702 0.702 <f>:1(<module>)
1 0.000 0.000 0.702 0.702 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:105(fit)
1 0.000 0.000 0.694 0.694 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:98(_set_covariance)
1 0.000 0.000 0.694 0.694 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:457(pinv)
1 0.680 0.680 0.689 0.689 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:365(lstsq)
3 0.012 0.004 0.013 0.004 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:526(asarray_chkfinite)
1 0.000 0.000 0.009 0.009 {map}
1 0.000 0.000 0.007 0.007 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:37(empirical_covariance)
1 0.003 0.003 0.007 0.007 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:1888(cov)
1 0.004 0.004 0.004 0.004 {numpy.core._dotblas.dot}
6 0.002 0.000 0.002 0.000 {method 'any' of 'numpy.ndarray' objects}
1 0.000 0.000 0.001 0.001 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:27(shrunk_covariance)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:1830(identity)
2 0.000 0.000 0.000 0.000 {method 'mean' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 {numpy.core.multiarray.zeros}
2 0.000 0.000 0.000 0.000 /tmp/vb_sklearn/sklearn/utils/validation.py:62(array2d)
11 0.000 0.000 0.000 0.000 {numpy.core.multiarray.array}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:60(get_lapack_funcs)
8 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:167(asarray)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/base.py:553(isspmatrix)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/sputils.py:116(_isinstance)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:986(trace)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:45(find_best_lapack_type)
1 0.000 0.000 0.000 0.000 {method 'trace' of 'numpy.ndarray' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/shape_base.py:58(atleast_2d)
6 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects}
1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.generic' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:237(asanyarray)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:23(cast_to_lapack_prefix)
2 0.000 0.000 0.000 0.000 {getattr}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:449(isfortran)
2 0.000 0.000 0.000 0.000 {isinstance}
4 0.000 0.000 0.000 0.000 {issubclass}
1 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
1 0.000 0.000 0.000 0.000 {method 'squeeze' of 'numpy.ndarray' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/misc.py:22(_datacopied)
9 0.000 0.000 0.000 0.000 {len}
1 0.000 0.000 0.000 0.000 {range}
5 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}
1 0.000 0.000 0.000 0.000 {method 'conj' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
LineProfiler
Timer unit: 1e-06 s
File: /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py
Function: fit at line 105
Total time: 0.814609 s
Line # Hits Time Per Hit % Time Line Contents
==============================================================
105 def fit(self, X):
106 """ Fits the shrunk covariance model
107 according to the given training data and parameters.
108
109 Parameters
110 ----------
111 X : array-like, shape = [n_samples, n_features]
112 Training data, where n_samples is the number of samples
113 and n_features is the number of features.
114
115 assume_centered: Boolean
116 If True, data are not centered before computation.
117 Useful to work with data whose mean is significantly equal to
118 zero but is not exactly zero.
119 If False, data are centered before computation.
120
121 Returns
122 -------
123 self : object
124 Returns self.
125
126 """
127 # Not calling the parent object to fit, to avoid a potential
128 # matrix inversion when setting the precision
129 1 2 2.0 0.0 if self.assume_centered:
130 self.location_ = np.zeros(X.shape[1])
131 else:
132 1 97 97.0 0.0 self.location_ = X.mean(0)
133 1 1 1.0 0.0 covariance = empirical_covariance(X,
134 1 6219 6219.0 0.8 assume_centered=self.assume_centered)
135 1 573 573.0 0.1 covariance = shrunk_covariance(covariance, self.shrinkage)
136 1 807713 807713.0 99.2 self._set_covariance(covariance)
137
138 1 4 4.0 0.0 return self
ShrunkCovariance-madelon¶
Benchmark setup
from sklearn.covariance import ShrunkCovariance from deps import load_data kwargs = {} X, y, X_t, y_t = load_data('madelon') obj = ShrunkCovariance(**kwargs)
Benchmark statement
obj.fit(X)
Execution time
Memory usage
Additional output
cProfile
96 function calls in 3.266 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 3.266 3.266 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py:286(f)
1 0.000 0.000 3.266 3.266 <f>:1(<module>)
1 0.000 0.000 3.266 3.266 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:105(fit)
1 0.000 0.000 2.821 2.821 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:98(_set_covariance)
1 0.000 0.000 2.821 2.821 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:457(pinv)
1 2.796 2.796 2.812 2.812 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:365(lstsq)
1 0.000 0.000 0.413 0.413 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:37(empirical_covariance)
1 0.009 0.009 0.413 0.413 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:1888(cov)
1 0.369 0.369 0.369 0.369 {numpy.core._dotblas.dot}
2 0.061 0.030 0.061 0.030 {method 'mean' of 'numpy.ndarray' objects}
3 0.021 0.007 0.024 0.008 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:526(asarray_chkfinite)
1 0.000 0.000 0.016 0.016 {map}
11 0.005 0.000 0.005 0.000 {numpy.core.multiarray.array}
6 0.003 0.000 0.003 0.000 {method 'any' of 'numpy.ndarray' objects}
1 0.001 0.001 0.001 0.001 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:27(shrunk_covariance)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:1830(identity)
1 0.000 0.000 0.000 0.000 {numpy.core.multiarray.zeros}
2 0.000 0.000 0.000 0.000 /tmp/vb_sklearn/sklearn/utils/validation.py:62(array2d)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:60(get_lapack_funcs)
8 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:167(asarray)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/base.py:553(isspmatrix)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:45(find_best_lapack_type)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:986(trace)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/sputils.py:116(_isinstance)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/shape_base.py:58(atleast_2d)
1 0.000 0.000 0.000 0.000 {method 'trace' of 'numpy.ndarray' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:237(asanyarray)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:23(cast_to_lapack_prefix)
1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.generic' objects}
6 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects}
2 0.000 0.000 0.000 0.000 {getattr}
2 0.000 0.000 0.000 0.000 {isinstance}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:449(isfortran)
4 0.000 0.000 0.000 0.000 {issubclass}
1 0.000 0.000 0.000 0.000 {method 'squeeze' of 'numpy.ndarray' objects}
5 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}
1 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
9 0.000 0.000 0.000 0.000 {len}
1 0.000 0.000 0.000 0.000 {range}
1 0.000 0.000 0.000 0.000 {method 'conj' of 'numpy.ndarray' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/misc.py:22(_datacopied)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
LineProfiler
Timer unit: 1e-06 s
File: /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py
Function: fit at line 105
Total time: 3.39275 s
Line # Hits Time Per Hit % Time Line Contents
==============================================================
105 def fit(self, X):
106 """ Fits the shrunk covariance model
107 according to the given training data and parameters.
108
109 Parameters
110 ----------
111 X : array-like, shape = [n_samples, n_features]
112 Training data, where n_samples is the number of samples
113 and n_features is the number of features.
114
115 assume_centered: Boolean
116 If True, data are not centered before computation.
117 Useful to work with data whose mean is significantly equal to
118 zero but is not exactly zero.
119 If False, data are centered before computation.
120
121 Returns
122 -------
123 self : object
124 Returns self.
125
126 """
127 # Not calling the parent object to fit, to avoid a potential
128 # matrix inversion when setting the precision
129 1 3 3.0 0.0 if self.assume_centered:
130 self.location_ = np.zeros(X.shape[1])
131 else:
132 1 42452 42452.0 1.3 self.location_ = X.mean(0)
133 1 4 4.0 0.0 covariance = empirical_covariance(X,
134 1 502042 502042.0 14.8 assume_centered=self.assume_centered)
135 1 950 950.0 0.0 covariance = shrunk_covariance(covariance, self.shrinkage)
136 1 2847296 2847296.0 83.9 self._set_covariance(covariance)
137
138 1 3 3.0 0.0 return self
LedoitWolf-minimadelon¶
Benchmark setup
from sklearn.covariance import LedoitWolf from deps import load_data kwargs = {} X, y, X_t, y_t = load_data('minimadelon') obj = LedoitWolf(**kwargs)
Benchmark statement
obj.fit(X)
Execution time
Memory usage
Additional output
cProfile
102 function calls in 0.659 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.659 0.659 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py:286(f)
1 0.000 0.000 0.659 0.659 <f>:1(<module>)
1 0.000 0.000 0.659 0.659 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:365(fit)
1 0.000 0.000 0.643 0.643 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:98(_set_covariance)
1 0.000 0.000 0.643 0.643 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:457(pinv)
1 0.630 0.630 0.638 0.638 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:365(lstsq)
1 0.000 0.000 0.015 0.015 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:235(ledoit_wolf)
3 0.012 0.004 0.013 0.004 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:526(asarray_chkfinite)
3 0.010 0.003 0.010 0.003 {numpy.core._dotblas.dot}
1 0.001 0.001 0.009 0.009 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:144(ledoit_wolf_shrinkage)
1 0.000 0.000 0.009 0.009 {map}
1 0.003 0.003 0.006 0.006 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:37(empirical_covariance)
6 0.002 0.000 0.002 0.000 {method 'any' of 'numpy.ndarray' objects}
5 0.000 0.000 0.001 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:1379(sum)
5 0.001 0.000 0.001 0.000 {method 'sum' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:1830(identity)
1 0.000 0.000 0.000 0.000 {numpy.core.multiarray.zeros}
1 0.000 0.000 0.000 0.000 {method 'mean' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 /tmp/vb_sklearn/sklearn/utils/validation.py:62(array2d)
9 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:167(asarray)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:60(get_lapack_funcs)
10 0.000 0.000 0.000 0.000 {numpy.core.multiarray.array}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:986(trace)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:45(find_best_lapack_type)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/base.py:553(isspmatrix)
1 0.000 0.000 0.000 0.000 {method 'trace' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/sputils.py:116(_isinstance)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/shape_base.py:58(atleast_2d)
6 0.000 0.000 0.000 0.000 {isinstance}
1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.generic' objects}
1 0.000 0.000 0.000 0.000 {method 'sum' of 'numpy.generic' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:23(cast_to_lapack_prefix)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:237(asanyarray)
4 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects}
2 0.000 0.000 0.000 0.000 {getattr}
1 0.000 0.000 0.000 0.000 {min}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:449(isfortran)
8 0.000 0.000 0.000 0.000 {len}
4 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}
4 0.000 0.000 0.000 0.000 {issubclass}
1 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/misc.py:22(_datacopied)
1 0.000 0.000 0.000 0.000 {range}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
LineProfiler
Timer unit: 1e-06 s
File: /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py
Function: fit at line 365
Total time: 0.786937 s
Line # Hits Time Per Hit % Time Line Contents
==============================================================
365 def fit(self, X):
366 """ Fits the Ledoit-Wolf shrunk covariance model
367 according to the given training data and parameters.
368
369 Parameters
370 ----------
371 X : array-like, shape = [n_samples, n_features]
372 Training data, where n_samples is the number of samples
373 and n_features is the number of features.
374
375 Returns
376 -------
377 self : object
378 Returns self.
379
380 """
381 # Not calling the parent object to fit, to avoid computing the
382 # covariance matrix (and potentially the precision)
383 1 2 2.0 0.0 if self.assume_centered:
384 self.location_ = np.zeros(X.shape[1])
385 else:
386 1 94 94.0 0.0 self.location_ = X.mean(0)
387 1 53 53.0 0.0 covariance, shrinkage = ledoit_wolf(X - self.location_,
388 1 14492 14492.0 1.8 assume_centered=True, block_size=self.block_size)
389 1 4 4.0 0.0 self.shrinkage_ = shrinkage
390 1 772289 772289.0 98.1 self._set_covariance(covariance)
391
392 1 3 3.0 0.0 return self
LedoitWolf-madelon¶
Benchmark setup
from sklearn.covariance import LedoitWolf from deps import load_data kwargs = {} X, y, X_t, y_t = load_data('madelon') obj = LedoitWolf(**kwargs)
Benchmark statement
obj.fit(X)
Execution time
Memory usage
Additional output
cProfile
102 function calls in 4.136 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 4.136 4.136 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py:286(f)
1 0.000 0.000 4.136 4.136 <f>:1(<module>)
1 0.008 0.008 4.136 4.136 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:365(fit)
1 0.000 0.000 2.826 2.826 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:98(_set_covariance)
1 0.000 0.000 2.826 2.826 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:457(pinv)
1 2.802 2.802 2.818 2.818 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:365(lstsq)
1 0.001 0.001 1.271 1.271 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:235(ledoit_wolf)
3 1.226 0.409 1.226 0.409 {numpy.core._dotblas.dot}
1 0.007 0.007 0.844 0.844 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:144(ledoit_wolf_shrinkage)
1 0.005 0.005 0.427 0.427 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:37(empirical_covariance)
5 0.000 0.000 0.032 0.006 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:1379(sum)
5 0.032 0.006 0.032 0.006 {method 'sum' of 'numpy.ndarray' objects}
1 0.031 0.031 0.031 0.031 {method 'mean' of 'numpy.ndarray' objects}
3 0.021 0.007 0.023 0.008 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:526(asarray_chkfinite)
1 0.000 0.000 0.016 0.016 {map}
6 0.003 0.000 0.003 0.000 {method 'any' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:1830(identity)
1 0.000 0.000 0.000 0.000 {numpy.core.multiarray.zeros}
1 0.000 0.000 0.000 0.000 /tmp/vb_sklearn/sklearn/utils/validation.py:62(array2d)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:60(get_lapack_funcs)
9 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:167(asarray)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:986(trace)
10 0.000 0.000 0.000 0.000 {numpy.core.multiarray.array}
1 0.000 0.000 0.000 0.000 {method 'trace' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:45(find_best_lapack_type)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/base.py:553(isspmatrix)
6 0.000 0.000 0.000 0.000 {isinstance}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/shape_base.py:58(atleast_2d)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/sputils.py:116(_isinstance)
1 0.000 0.000 0.000 0.000 {method 'sum' of 'numpy.generic' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:23(cast_to_lapack_prefix)
1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.generic' objects}
4 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:237(asanyarray)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:449(isfortran)
2 0.000 0.000 0.000 0.000 {getattr}
1 0.000 0.000 0.000 0.000 {min}
8 0.000 0.000 0.000 0.000 {len}
4 0.000 0.000 0.000 0.000 {issubclass}
1 0.000 0.000 0.000 0.000 {range}
1 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
4 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/misc.py:22(_datacopied)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
LineProfiler
Timer unit: 1e-06 s
File: /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py
Function: fit at line 365
Total time: 4.24686 s
Line # Hits Time Per Hit % Time Line Contents
==============================================================
365 def fit(self, X):
366 """ Fits the Ledoit-Wolf shrunk covariance model
367 according to the given training data and parameters.
368
369 Parameters
370 ----------
371 X : array-like, shape = [n_samples, n_features]
372 Training data, where n_samples is the number of samples
373 and n_features is the number of features.
374
375 Returns
376 -------
377 self : object
378 Returns self.
379
380 """
381 # Not calling the parent object to fit, to avoid computing the
382 # covariance matrix (and potentially the precision)
383 1 5 5.0 0.0 if self.assume_centered:
384 self.location_ = np.zeros(X.shape[1])
385 else:
386 1 43886 43886.0 1.0 self.location_ = X.mean(0)
387 1 4077 4077.0 0.1 covariance, shrinkage = ledoit_wolf(X - self.location_,
388 1 1373412 1373412.0 32.3 assume_centered=True, block_size=self.block_size)
389 1 6 6.0 0.0 self.shrinkage_ = shrinkage
390 1 2825469 2825469.0 66.5 self._set_covariance(covariance)
391
392 1 3 3.0 0.0 return self
OAS-minimadelon¶
Benchmark setup
from sklearn.covariance import OAS from deps import load_data kwargs = {} X, y, X_t, y_t = load_data('minimadelon') obj = OAS(**kwargs)
Benchmark statement
obj.fit(X)
Execution time
Memory usage
Additional output
cProfile
82 function calls in 0.665 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.665 0.665 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py:286(f)
1 0.000 0.000 0.665 0.665 <f>:1(<module>)
1 0.000 0.000 0.665 0.665 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:512(fit)
1 0.000 0.000 0.650 0.650 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:98(_set_covariance)
1 0.000 0.000 0.650 0.650 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:457(pinv)
1 0.626 0.626 0.642 0.642 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:365(lstsq)
3 0.021 0.007 0.023 0.008 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:526(asarray_chkfinite)
1 0.000 0.000 0.016 0.016 {map}
1 0.002 0.002 0.015 0.015 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:398(oas)
1 0.006 0.006 0.012 0.012 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:37(empirical_covariance)
1 0.007 0.007 0.007 0.007 {numpy.core._dotblas.dot}
6 0.003 0.000 0.003 0.000 {method 'any' of 'numpy.ndarray' objects}
2 0.001 0.000 0.001 0.000 {method 'mean' of 'numpy.ndarray' objects}
1 0.000 0.000 0.001 0.001 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:2299(mean)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:1830(identity)
1 0.000 0.000 0.000 0.000 {numpy.core.multiarray.zeros}
1 0.000 0.000 0.000 0.000 /tmp/vb_sklearn/sklearn/utils/validation.py:62(array2d)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:60(get_lapack_funcs)
8 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:167(asarray)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:986(trace)
9 0.000 0.000 0.000 0.000 {numpy.core.multiarray.array}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:45(find_best_lapack_type)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/base.py:553(isspmatrix)
1 0.000 0.000 0.000 0.000 {method 'trace' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/sputils.py:116(_isinstance)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/shape_base.py:58(atleast_2d)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:23(cast_to_lapack_prefix)
1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.generic' objects}
4 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:237(asanyarray)
1 0.000 0.000 0.000 0.000 {min}
2 0.000 0.000 0.000 0.000 {getattr}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:449(isfortran)
4 0.000 0.000 0.000 0.000 {issubclass}
7 0.000 0.000 0.000 0.000 {len}
1 0.000 0.000 0.000 0.000 {isinstance}
1 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
4 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/misc.py:22(_datacopied)
1 0.000 0.000 0.000 0.000 {range}
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
LineProfiler
Timer unit: 1e-06 s
File: /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py
Function: fit at line 512
Total time: 0.771003 s
Line # Hits Time Per Hit % Time Line Contents
==============================================================
512 def fit(self, X):
513 """ Fits the Oracle Approximating Shrinkage covariance model
514 according to the given training data and parameters.
515
516 Parameters
517 ----------
518 X : array-like, shape = [n_samples, n_features]
519 Training data, where n_samples is the number of samples
520 and n_features is the number of features.
521
522 Returns
523 -------
524 self : object
525 Returns self.
526
527 """
528 # Not calling the parent object to fit, to avoid computing the
529 # covariance matrix (and potentially the precision)
530 1 4 4.0 0.0 if self.assume_centered:
531 self.location_ = np.zeros(X.shape[1])
532 else:
533 1 140 140.0 0.0 self.location_ = X.mean(0)
534
535 1 24919 24919.0 3.2 covariance, shrinkage = oas(X - self.location_, assume_centered=True)
536 1 5 5.0 0.0 self.shrinkage_ = shrinkage
537 1 745931 745931.0 96.7 self._set_covariance(covariance)
538
539 1 4 4.0 0.0 return self
OAS-madelon¶
Benchmark setup
from sklearn.covariance import OAS from deps import load_data kwargs = {} X, y, X_t, y_t = load_data('madelon') obj = OAS(**kwargs)
Benchmark statement
obj.fit(X)
Execution time
Memory usage
Additional output
cProfile
82 function calls in 3.237 seconds
Ordered by: cumulative time
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 3.237 3.237 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/vbench/benchmark.py:286(f)
1 0.000 0.000 3.237 3.237 <f>:1(<module>)
1 0.008 0.008 3.237 3.237 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:512(fit)
1 0.000 0.000 2.822 2.822 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:98(_set_covariance)
1 0.000 0.000 2.822 2.822 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:457(pinv)
1 2.797 2.797 2.813 2.813 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/basic.py:365(lstsq)
1 0.002 0.002 0.377 0.377 /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py:398(oas)
1 0.005 0.005 0.375 0.375 /tmp/vb_sklearn/sklearn/covariance/empirical_covariance_.py:37(empirical_covariance)
1 0.370 0.370 0.370 0.370 {numpy.core._dotblas.dot}
2 0.031 0.016 0.031 0.016 {method 'mean' of 'numpy.ndarray' objects}
3 0.021 0.007 0.024 0.008 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/lib/function_base.py:526(asarray_chkfinite)
1 0.000 0.000 0.016 0.016 {map}
6 0.003 0.000 0.003 0.000 {method 'any' of 'numpy.ndarray' objects}
1 0.000 0.000 0.001 0.001 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:2299(mean)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:1830(identity)
1 0.000 0.000 0.000 0.000 {numpy.core.multiarray.zeros}
1 0.000 0.000 0.000 0.000 /tmp/vb_sklearn/sklearn/utils/validation.py:62(array2d)
8 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:167(asarray)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:60(get_lapack_funcs)
9 0.000 0.000 0.000 0.000 {numpy.core.multiarray.array}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/fromnumeric.py:986(trace)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:45(find_best_lapack_type)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/base.py:553(isspmatrix)
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/sparse/sputils.py:116(_isinstance)
1 0.000 0.000 0.000 0.000 {method 'trace' of 'numpy.ndarray' objects}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/shape_base.py:58(atleast_2d)
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/lapack.py:23(cast_to_lapack_prefix)
1 0.000 0.000 0.000 0.000 {method 'astype' of 'numpy.generic' objects}
4 0.000 0.000 0.000 0.000 {method 'split' of 'str' objects}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:237(asanyarray)
1 0.000 0.000 0.000 0.000 {min}
2 0.000 0.000 0.000 0.000 {getattr}
1 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/numpy/core/numeric.py:449(isfortran)
4 0.000 0.000 0.000 0.000 {issubclass}
1 0.000 0.000 0.000 0.000 {isinstance}
4 0.000 0.000 0.000 0.000 {method 'append' of 'list' objects}
1 0.000 0.000 0.000 0.000 {method 'sort' of 'list' objects}
7 0.000 0.000 0.000 0.000 {len}
1 0.000 0.000 0.000 0.000 {range}
2 0.000 0.000 0.000 0.000 /home/slave/virtualenvs/cpython-2.7.2/lib/python2.7/site-packages/scipy/linalg/misc.py:22(_datacopied)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
LineProfiler
Timer unit: 1e-06 s
File: /tmp/vb_sklearn/sklearn/covariance/shrunk_covariance_.py
Function: fit at line 512
Total time: 3.318 s
Line # Hits Time Per Hit % Time Line Contents
==============================================================
512 def fit(self, X):
513 """ Fits the Oracle Approximating Shrinkage covariance model
514 according to the given training data and parameters.
515
516 Parameters
517 ----------
518 X : array-like, shape = [n_samples, n_features]
519 Training data, where n_samples is the number of samples
520 and n_features is the number of features.
521
522 Returns
523 -------
524 self : object
525 Returns self.
526
527 """
528 # Not calling the parent object to fit, to avoid computing the
529 # covariance matrix (and potentially the precision)
530 1 3 3.0 0.0 if self.assume_centered:
531 self.location_ = np.zeros(X.shape[1])
532 else:
533 1 30369 30369.0 0.9 self.location_ = X.mean(0)
534
535 1 471690 471690.0 14.2 covariance, shrinkage = oas(X - self.location_, assume_centered=True)
536 1 4 4.0 0.0 self.shrinkage_ = shrinkage
537 1 2815929 2815929.0 84.9 self._set_covariance(covariance)
538
539 1 3 3.0 0.0 return self