Package: estream
An E-Stream implementation in PythonE-Stream is an evolution-based technique for stream clustering which supports
five behaviors:AppearanceDisappearanceSelf-evolutionMergeSplitThese behaviors are achieved by representing each cluster as aFading Cluster
Structure with Histogram (FCH), utilizing a histogram for each feature of the
data.The details for the underlying concepts can be foundhere:Udommanetanakit, K, Rakthanmanon, T, Waiyamai, K,E-Stream: Evolution-Based
Technique for Stream Clustering, Advanced Data Mining and Applications: Third
International Conference, 2007How to use E-StreamTheestreampackage aims to be substibutable withsklearnclasses so it
can be used interchangably with other transformers with similar API.fromestreamimportEStreamfromsklearn.datasets.samples_generatorimportmake_blobsestream=EStream()data,_=make_blobs()estream.fit(data)E-Stream contains a number of parameters that can be set; the major ones are as
follows:max_clusters: This limits the number of clusters the clustering can have
before the existing clusters have to be merged. The default is set to10.stream_speed/decay_rate: These determine the fading factor of the
clusters. In this implementation, the fading function is constant derived
from the default values of10and0.1, respectively.remove_threshold: This sets the lower bound for each cluster’s weight
before they are considered to be removed. The default is set to0.1.merge_threshold: This determines whether two close clusters can be merged
togther. The default is set to1.25.radius_threshold: This determines the minimum range from an existing
cluster that a new data must be in order to be merged into one. The default
is set to3.0.active_threshold: This sets the minimum weight of each cluster before
they are considered active. The default is set to5.0.An example of setting these parameters:fromestreamimportEStreamfromsklearn.datasets.samples_generatorimportmake_blobsestream=EStream(max_clusters=5,merge_threshold=0.5,radius_threshold=1.5,active_threshold=3.0)data,_=make_blobs()estream.fit(data)InstallationCurrently, the package is only available through eitherPyPI:pipinstallestreamor a manual install:wgethttps://github.com/mickeycj/estream/archive/master.zipunzipmaster.ziprmmaster.zipcdestream-masterpythonsetup.pyinstallHelp & SupportCurrently, there is no dedicated documentation available, so any questions or
issues can be asked via myemail.CitationIf you make use of this software for your work, please cite the paper from the
Advanced Data Mining and Applications: Third International Conference:@inproceedings{inproceedings,author={Udommanetanakit, Komkrit, and Rakthanmanon, Thanawin and Waiyamai, Kitsana},year={2007},month={08},pages={605-615},title={E-Stream: Evolution-Based Technique for Stream Clustering},volume={4632},doi={10.1007/978-3-540-73871}}Moreover, this implementation is based on a MOA implementaion of E-Stream (and
other related algorithms) byDavid Ratier. The
original source code can be found in thisrepository.LicenseTheestreampackage is under the GNU General Public License.ContributingContributions are always welcome! Everything ranging from code to notebooks and
examples/documentation will be very valuable to the growth of this project. To
contribute, pleasefork this project, make your changes and submit a pull request. I will do my best to fix any
issues and merge your code into the main branch.Author:Chanon JenakomVersion:0.0.3Dedicated:To DAKDL, Kasetsart University