Releases: ContextLab/hypertools
v0.4.0 (October 2017)
Enhancements -
- A new class: DataGeometry with methods for plotting, transforming new data and saving
Support for loading *.geo objects - A new function: analyze to perform combinations of transformations
- A new function: describe for characterizing the loss of information due to dimensionality reduction algs
- In-memory caching of time-intensive reduce, align and describe operations
- New syntax for reduce function: model and model_params are now passed as a dictionary using the reduce arg
- New clustering models added to the cluster function: MiniBatchKMeans, AgglomerativeClustering, Birch, FeatureAgglomeration, and SpectralClustering
- Moved major functions (normalize, align, reduce, cluster, load) to main level (i.e. hyp.load instead of hyp.tools.load, but the latter will still work)
Deprecations -
- A deprecation warning is thrown for the following align arguments: normalize, ndims, and method
- A deprecation warning is thrown for the following reduce arguments: model, model_params, align, and normalize
- A deprecation warning is thrown for the following cluster arguments: ndims
- A deprecation warning is thrown for the describe_pca function (replaced by describe)
Bugs -
- fixed #148 bug in hyp.plot where figure would be rendered despite setting
show=False
(thanks @chaseWilliams !) - fixed a bug where n_clusters would not override group, even though a warning message said it would
- fixed a bug where
hyp.plot
would quit if any kwargs were not the same length as the number of arrays in the list of input data.
Minor -
- added brainiak toolbox citation and github link to align.py docstring
- added additional details and fixed typos in align.py docstring
- Upgraded seaborn requirement to 8.1
- updated all examples/docs with new syntax changes
- added new tests for new features
v0.3.1 (August 2017)
- suppress warning when attempting to switch to
TkAgg
backend
v0.3.0 (June 2017)
This release extends hypertools to support the following dimensionality reduction / manifold learning models:
- PCA
- FastICA
- IncrementalPCA
- KernelPCA
- FactorAnalysis
- TruncatedSVD
- SparsePCA
- MiniBatchSparsePCA
- DictionaryLearning
- MiniBatchDictionaryLearning
- TSNE
- MDS
- SpectralEmbedding
- LocallyLinearEmbedding
- Isomap
The default reduction algorithm was switched from PCA to IncrementalPCA for better handling of large datasets.
Bugs squashed:
- fixed plot_procrustes example so that rotation matrix is orthonormal
v0.2.1 (June 2017)
The work for this update was done during the Mozilla Global Sprint 2017. Thank you @alysivji and @rarredon for your contributions! Thanks @stephwright and the Mozilla Open Science Team for organizing an awesome event!
New Features:
- If legend is not explicitly given, it can be computed implicitly by passing
legend=True
- Align flag added to
hyp.plot
function - Align flag added to
hyp.tools.reduce
function - Reduce flag added to
hyp.tools.align
andhyp.tools.procrustes
functions - Align and reduce flags added to
hyp.tools.load
function - Updated examples with new syntax
Bugs Squashed:
- Fixed import bug for saving animations
- Fixed bug in align function where an extra column(s) of zeros were appended to data before alignment if ndims<=2
v0.2.0 (May 2017)
new features, new code organization and also some style changes!
Key changes:
-
The way we handle args. Now, all keywords are handled explicitly, instead of unpacking them using the **kwargs syntax. This makes the code much cleaner, and easier to parse arguments.
-
The organization of the plotting code. I eliminated the separate static and animate code bases, bc there was a lot of redundant code and handling args was a mess. its now organized into a plot function, which is the main plotting function that also handles data manipulation prior to plotting, and a draw function, which handles all static and animated drawing.
-
Plot styling. All styles are now consistent, the static plots are now the same as the animated plots. Also, all lines/points are thinner.
-
New keyword arguments to the plot function:
+fmt
in 0.1.0, format strings were handled as arguments, but now they are passed as a kwarg. since the fmt kwarg is the first param after the data, the API in 0.1 and 0.2 is the same, except in 0.1 format strings could be passed in any position, and now they must be passed immediately after the data.
+title
can be passed to add a title to the plot
+elev
can be passed to change the elevation of the plot. useful for static plots in jupyter notebooks
+azim
can be passed to change the azimuth of a plot. useful for static plots in jupyter notebooks
+precog
is an animation only feature which plots a low-opacity trace ahead of the data (similar to chemtrails but in the opposite direction.
+bullettime
(animation only) is the same as the combinations of precog and chemtrails
+animate='spin'
will create a "static" plot (i.e. all the data is plotted at once) that rotates
+return_data has been eliminated. the data is now always returned by default
Minor changes:
- changed 'weights' example data from 3D numpy array to list of 2D numpy arrays
- updated examples for new 'weights' data format
- remove docs _build folder from repo
- added requests to setup.py file
- remove rogue class from init file
Bugs fixed:
if the rank is of the input matrix is smaller than the number of dimensions requested, the reduce function will now pad the reduced data matrix with ndims-rank columns of zeros.
v0.1.7 (April 2017)
Enhancements:
- added load function to load in example data
- moved example data out of repo to google drive
Bugs squashed:
- added missing
import sys
statement to helpers.py - fixed bug with in example scripts dealing with missing data
- fixed bug that caused software to crash when using PPCA
- fixed bug in readthedocs build caused by empty toctree
v0.1.6 (February 2017)
- fixed bug where
group
kwarg caused code to crash on some systems - fixed bug where requirements still listed matplotlib <2.0, even though it is supported
- patched bug where tail_duration would crash if not an integer value
- added warning to align function when n features exceeds n samples
v0.1.5 (February 2017)
- Added support for maplotlib 2.0
- Added future package to setup.py so its automatically installed
v0.1.4 (February 2017)
- Support for Python 3.4+
v0.1.3 (February 2017)
Bugs fixed:
- patched bug where future division was not being imported into align, procrustes and srm functions
- fixed bug where category labels could be returned out of order because of set