dataesr/scientific-paragraphs-categorization huggingface dataset:
An ORWL implementation of the MPP ORWL is implemented in C. On the other hand, the PBD algorithm has been written in C++. A first step of the implementation consisted in transposing the code from C++ to C. However, we preserved some useful functionalities of the C++ library, for keeping the use of the CImg 5  library. In CImg, an image is represented as a matrix of pixels. The type can be determined during image creation. In our case, we have used images with pixel type unsigned char. Pixels values are accessible through an image. data object. The three color channels R, G, and B are stored linearly in a single memory buffer as follows: R 0 R 1 R 2 • • • G 0 G 1 G 2 • • • B 0 B 1 B 2 • • •. Other CImg functions are get_rows and get_columns. They allow to get horizontal and vertical parts of an image.
This is used in the distributed PBD algorithm to splice the borders of the neighbor map. The border width is half the wide axis of the ellipses. In an initial phase, a main node loads the entire image and splits it. A Ruby script using TAKTUK sends files to the computing node. Then each node loads its own image. Locations and handlers are defined. Several instances or orwl_tasks can be launched on a single node to parallelize the computation (see Listing 1). After the Mark Step, a new Exchange Border step is added. A first critical section enables a processor to write its border into a location. Then, a second critical section allows to retrieve the borders of the neighbors (Listing 5). Own borders are obtained by slicing the neighbors map. The interfaceStitchBand function adds neighbor borders to the processors neighbor map.
Clustering is a key data mining task. This is the problem of partitioning a set of observations into clusters such that the intra-cluster observations are similar and the inter-cluster observations are dissimilar. The traditional set-up where a static dataset is available in its entirety for random access is not applicable as we do not have the entire dataset at the launch of the learning, the data continue to arrive at a rapid rate, we can not access the data randomly, and we can make only one or at most a small number of passes on the data in order to generate the clustering results. These types of data are referred to as data streams. The data stream clustering problem requires a process capable of partitioning observations continuously while taking into account restrictions of memory and time.
This is an advantage compared to SOM and NG, as there is no need to fix the graph size in advance. Algorithm 1 outlines an online version of the GNG approach. In this version, unlike the standard approach of GNG, the data is seen only once. A number of authors have proposed variations on the Growing Neural Gas (GNG) approach. The GNG algorithm creates a new node every λ iterations (λ is fixed by the user as an input parameter). Hence, it is not adapted for data streams, or non-stationary datasets, or to novelty detection. In order to deal with non-stationary datasets, the author of  [21]  has investigated modifying the network by proposing an on-line criterion for identifying "useless" nodes. The algorithm proposed is known as the Growing Neural Gas with Utility (GNGU). Slow changes of the distribution are handled by adaptation of existing nodes, whereas rapid changes are handled by removal of "useless" neurons and subsequent insertions of new nodes in other places.
The authors of  [22]  modified GNG to detect incrementally emerging cluster structures. The proposed GNGC algorithm is able to match the temporal distribution of the original Algorithm 3: Node Insertion 1 Find node q with the maximum accumulated error; 2 Find the neighbor f of q with the largest accumulated error; 3 Add the new node, r, half-way between nodes q and f : w r = 0. 5(w q + w f ); 4 Insert edges connecting the new node r with nodes q and f, and remove the original edge between q and f ; dataset by creating a new node whenever the received new data point is too far from its nearest node. It is noted that the algorithm is computationally demanding. The clustering method proposed in  [23]  consists of two steps. In the first step, the data are prepared by generating the Voronoi partition using a modified GNG algorithm (which does not exceed linear complexity).
GWR The 'Grow When Required' (GWR) network  [24]  may add a new node at any time, whose position is dependent on the input and the current winning node. The GWR deals with the problem of novelty detection by adding new nodes into the network structure whenever the activity of the current best-matching node is below some threshold, which implies that the best-matching node is not trained to deal with that particular input. This means that the network grows very quickly when new data is presented, but stops growing once the network has matched the data to a given accuracy. This has benefits in that there is no need to decide in advance how large the network should be, as nodes will be added until the network is saturated. This means that for small datasets the complexity of the network is significantly reduced.
In addition, if the dataset changes at some time in the future, further nodes can be added to represent the new data without disturbing the network that has already been created  [24, 25]. Considering one iteration of the GWR algorithm, GWR has approximatively the same time complexity as one iteration of GNG. Hence, the complexity of GWR is O(knm) where k is the number of iterations, n is the number of data points of the data stream m is the number of nodes in the graph. For more details on the complexity of GNG the reader is referred to  [26].
IGNG Still in the same idea of relaxing the constraint of periodical evolution of the network, the IGNG  [27]  algorithm has been proposed. In this algorithm a new neuron is created each time the distance of the current input data to the existing neuron is greater than a predefined fixed threshold σ , which is dependent on the global datasets. However, one disadvantage of this algorithm is the global character of the parameter σ and also that it must be computed prior to the learning. In order to resolve this weakness, I2GNG  [28]  associates a threshold variable σ to each neuron. However, its major drawback is the initialization of the σ values at the creation of each node. The authors of  [29]  address the problem of choosing the final winner neuron among the many input equidistant neurons.
For the same reason, links between nodes are also weighted by an exponential function. The data received in each interval is stored reliably across the cluster to form an input dataset for that interval. Once the time interval is completed, this dataset is processed via deterministic parallel operations, such as Map and Reduce to produce new datasets representing either program outputs or intermediate states  [7]. The input data is split and the master assigns the splits to the Map workers. Each worker processes the corresponding input split, generates key/value pairs and writes them to intermediate files (on disk or in memory). The Reduce function is responsible for aggregating information received from the Map functions. The algorithm uses a generalization of the mini-batch GNG update rule, where the nearest node and all of its neighbors are moved in the direction of the data point.
Hierarchical stream methods A hierarchical clustering method groups the given data into a tree of clusters which is useful for data summarization and visualization. This is a binary-tree based data structure called the dendrogram. Once the dendrogram is constructed, one can automatically choose the right number of clusters by splitting the tree at different levels to obtain different clustering solutions for the same dataset without rerunning the clustering algorithm again. Hierarchical clustering can be achieved in two different ways, namely, bottomup and top-down clustering. Though both of these approaches utilize the concept of dendrogram while clustering the data, they might yield entirely different sets of results depending on the criterion used during the clustering process  [36]. In hierarchical clustering once a step (merge or split) is done, it can never be undone.
There are two optional steps: the"tree condensing" step which aims to refine the initial CF-tree by re-inserting its leaf entries; and the "clustering refinement" step which re-assigns all the data points based on the cluster centroid produced by the global clustering step. [38]  classifies the evolution of data into five categories: appearance, disappearance, self evolution, merge, and split. This algorithm is an evolution-based stream clustering method, i. e. , a stream clustering method that supports the monitoring and the change detection of clustering structures. It uses another data structure for saving summary statistics, named the α-bin histogram. Indeed, each cluster is represented as a Fading Cluster Structure (FCS) utilizing an α-bin histogram for each feature of the dataset. A histogram of the cluster data values is utilized to identify cluster splits.
HUE-Stream The distance function, cluster representation and histogram management are introduced for the different types of clustering structure evolution. A distance function between the probability distributions of two objects is introduced to support uncertainty in categorical attributes. To detect changes in the clustering structure, the proposed distance function is used to merge clusters and find the closest cluster of a given incoming data and the proposed histogram management to split clusters for categorical data. To decrease the weight of old data over time, a fading function is used. Experimental results show that HUE-Stream gives better cluster quality, in terms of purity and the F-measure, compared to UMicro for the KDD-CUP'99 dataset  [39].
StreamKM++ StreamKM++  [3]  is a two-phase (online-offline) algorithm which maintains a small outline of the input data using the merge-and-reduce technique. The merge step is performed by via a data structure, named the bucket set, which is a set of L buckets (also named buffers), where L is an input parameter. The reduce step is performed by a significantly different summary data structure that is suitable for high-dimensional data, the coreset tree, when we consider that it reduces 2m data points to m data points (m is an input parameter). The advantage of such a coreset is that we can apply any fast approximation algorithm (for the weighted problem) on the usually much smaller coreset to compute an approximate solution for the original dataset more efficiently. The coreset tree is constructed as follow.
StrAP StrAP  [4]  is an extension of the Affinity Propagation (AP)  [44]  algorithm for data streams, which uses a reservoir for saving potential outliers. The Affinity Propagation approach proposes an equivalent formulation of the k-medoids problem in the sense that a prototype is an effective data point, with the difference that the number of clusters to be found is not fixed. Formulating the clustering problem in terms of energy minimization, AP outputs a set of clusters, each of which is characterized by an actual data point, referred to as an exemplar or a prototype; the penalty value parameter controls the cost of adding another prototype. AP provides some asymptotic guarantees of the optimality of the solution. The trade-off for these properties is the AP's quadratic computational complexity, excluding its use on large scale datasets.
SOStream SOStream  [50]  is a density-based clustering algorithm inspired by both the principle of the DBSCAN algorithm and self-organizing maps (SOM)  [18] , in the sense that a winner influences its immediate neighborhood. Generally speaking, density-based clustering algorithms need setting a threshold manually (similarity threshold, grid size, etc. ) for which is difficult to choose the most suitable value and if it is set to an unsuitable value, then the algorithm will suffer from over-fitting, or from unstable clustering. SOStream addresses this problem by using a dynamically learned threshold value for each cluster based on the idea of building neighborhoods with a minimum number of points. SOStream is also represented by a set of micro-clusters where for each cluster a cluster feature (CF) vector is stored, which is a tuple with three elements N i = (n i , r i , C i ), n i is the number of data points assigned to N i , r i is the cluster's radius and C i is the centroid.
If the new point is not absorbed by any micro-cluster, a new micro-cluster is created for it. In the SOStream algorithm, merging, updating and adapting dynamically the threshold value for each cluster are performed in an online manner. Clusters are merged if they overlap with a distance that is less than the merge-threshold, i. e. , the spheres in d-dimensional space defined by the radius of each cluster overlap. Hence, the threshold value is a determining factor for the number of clusters. When two clusters are merged, the largest radius of these two clusters is chosen to be the radius of the cluster to avoid losing any data points within the clusters. However, no split feature is proposed in the algorithm. SOStream also uses an exponential fading function to reduce the impact of old data whose relevance diminishes over time.
• μ 2 is the squared length of the sphere center μ. • R SV is the radius of the sphere. • R BSV is the maximum Euclidean distance of the bounded support vectors from the sphere center μ. The multi-sphere set SS is defined as a set consisting of multiple spheres, that is, SS = {S 1 ,. , S |SS| }, where the superscript denotes the index of a sphere. In SVStream, the elements of a data stream are mapped to a kernel space, and the support vectors are used as the summary information of the historical elements to construct the cluster boundaries of arbitrary shape. To adapt both dramatic and gradual changes, multiple spheres are dynamically maintained, each describing the corresponding data domain presented in the data stream. When a new data batch arrives, if a dramatic change occurs, a new sphere is created; otherwise, only the existing spheres are updated to take into account the new batch.
Streaming platforms In today's applications, evolving data streams are ubiquitous. As the need by industry for real time analysis has emerged, an increasing number of systems to support real-time data integration and analytics in the recent years. Generally speaking, there exists two types of streaming processing systems. Traditional streaming platforms, on which we can implement a streaming algorithm using a traditional programming language in a sequential manner. Distributed streaming platforms, where the data is distributed across a cluster of machine and the processing model is implemented using the MapReduce framework. This section gives a survey on the most well-known streaming platforms with a focus on the streaming clustering task. Liu  [59]  gives a general survey on real-time processing systems for big data.
Spark streaming Spark Streaming  [7]  is an extension of the Apache Spark  [60]  project by adding the ability to perform online processing through a similar functional interface to Spark, such as map, filter, reduce, etc. Spark is a cluster computing system originally developed by UC Berkeley AMPLab. Now it is an umbrellaed project of Apache foundation. The execution model of Spark is based on an abstraction called Resilient Distributed Dataset (RDD), which is a distributed memory abstraction of data. Spark performs in-memory computations on large clusters in a fault-tolerant manner through RDDs  [61]. Spark Streaming runs streaming computations as a series of short batch jobs on RDDs withing a programming model called discretized streams (D-Streams). The key idea behind D-Streams is to treat a streaming computation as a series of deterministic batch computations on small time intervals.
In the streaming clustering point of view, Spartakus 2 is an open-source project on top of Spark-notebook 3 which provides front-end packages for some clustering algorithms implemented using the MapReduce framework. This includes the MBG-Stream 4 algorithm  [35]  (detailed in "Background" section) with an integrated interface for execution and visualization checks. MLlib  [64]  gives implementations of some clustering algorithms, especially a Streaming k-means 5 open-source code. streamDM 6 is another open source software for mining big data streams using Spark Streaming, developed at Huawei Noah's Ark Lab. For streaming clustering, it includes Clustream  [1]  and StreamKM++  [3].
Flink Flink 7 is an open source platform for distributed stream and batch data processing. The core of Flink is a streaming iterative data flow engine. On top of the engine, Flink exposes two language-embedded fluent APIs, the DataSet API for consuming and processing batch data sources and the DataStream API for consuming and processing event streams. The key idea behind Flink is the optimistic recovery mechanism that does not checkpoint every state  [8]. Therefore, it provides optimal failure-free performance and simultaneously uses less resources in the cluster than traditional approaches. Instead of restoring such a state from a previously written checkpoint and restarting the execution, a user-defined, algorithm-specific compensation function is applied. In case of a failure, this function restores a consistent algorithm state and allows the system to continue the execution.
MOA MOA 8 (Massive On-line Analysis) is a framework for data stream mining  [6]. It includes tools for evaluation and a collection of machine learning algorithms. Related to the WEKA project 9 (Waikato Environment for Knowledge Analysis), it is also written in Java, while scaling to more demanding problems. The goal of MOA is a benchmark framework for running experiments in the data stream mining context by proving storable settings for data streams (real and synthetic) for repeatable experiments, a set of existing algorithms and measures from the literature for comparison, and an easily extendable framework for new streams, algorithms and evaluation methods. MOA currently supports stream classification, stream clustering, outlier detection, change detection and concept drift and recommender systems.
Currently MOA contains several stream clustering methods including: StreamKM++  [3] , CluStream  [1] , ClusTree  [16] , DenStream  [2] , D-Stream  [57]. SAMOA SAMOA 10 (Scalable Advanced Massive Online Analysis) is distributed streaming machine learning (ML) framework that contains a programing abstraction for distributed streaming ML algorithms. It is a project started at Yahoo Labs Barcelona. SAMOA is both a framework and a library  [65]. As a framework, it allows algorithm developers to abstract from the underlying execution engine, and therefore reuse their code on different engines. It features a pluggable architecture that allows it to run on several distributed stream processing engines such as Storm 11 , S4 12 , and Samza 13. As a library, SAMOA contains implementations of state-of-the-art algorithms for distributed machine learning on streams.
Lambda Architecture  [70]  is a useful framework for designing big data applications where we can combine these two models in a same plateform. Figure  5  is a diagram of the Lambda Architecture. Essentially, the Lambda Architecture comprises the following components, processes, and responsibilities: • New Data: All data entering the system is dispatched to both the batch layer and the speed layer for processing. • Batch layer: This layer has two functions: (i) managing the master dataset, an immutable, append-only set of raw data, and (ii) to pre-compute arbitrary query functions from scratch, called batch views. • Serving layer: This layer indexes the batch views so that they can be queried in ad hoc with low latency. • Speed layer: This layer compensates for the high latency of updates to the serving layer, due to the batch layer.
"Central nuclei" and "centrally located nuclei" are both widely used expressions to describe the nuclear positioning in skeletal muscle fibers during embryogenesis or muscle regeneration, as opposed to the definitive, subsarcolemmal (i. e. , peripheral) nuclear position in adult muscle fibers. The two expressions are mutually exclusive in major databases of scientific literature and authors from different research groups seem to opt for one or the other stochastically, though are consistent with their choice over time. This poses a problem, since a search for one or the other set of keywords retrieves different subsets of articles, limiting the bibliography available. Defining nuclear position is very important in pathology, since many muscle disorders share the mispositioning of nuclei in the muscle fibers  (Romero and Bitoun, 2011).
, 2006). However, other species complexes show no clear morphological discontinuities (e. g. ,  Vanderpoorten et al. , 2003)  and even greater intra-than interspecific variation  (Renner et al. , 2013a). Variations within populations of a single species (infra-specific level) have also been explored through traditional morphometry, showing strong correlations with geographical and ecological factors  (Pereira et al. , 2013). Finally, morphometrics have been incorporated into citizen science in an ongoing initiative at the Field Museum in Chicago 1. From images of the leafy liverwort Frullania, the public is asked to measure leaves and lobules to build a huge dataset for analysis at intra-or inter-specific levels. Geometric morphometry, which includes shape analysis through coordinates analysis of homologous points (landmarks;  Bookstein, 1991)  or outline analysis (elliptical Fourrier analysis;  Ferso et al.
Although impossible to do by eye, two software programs (2D and LeafSnake) have been developed that automatically acquire measurements from digitized images of thalli. Statistical analysis show that specific branching patterns, typical of a species or group of species, can be identified  (Reeb, 2014). These approaches are complementary to those conducted on fixed animals  (Kaandorp and Kübler, 2001) , but also in medicine (neuronal or blood webs, e. g. ,  Grueber et al. , 2002) , in geology (river catchment areas, e. g. ,  Zanardo et al. , 2013) , and even in data-mining (email networks, e. g. ,  Guimera et al. , 2006)  reflecting universal and mathematical laws driving such constructions. The branching patterns of bryophytes and other early land plants are also of interest to studies of plant allometry.
959 and 0. 694, respectively) and the p-value of the CV ANOVA test is 0. 045. In the PLS model, the first component (horizontal) clearly separates the unmanipulated group from the sepsis survivor group and the second component, the sham group, is separated from the two other groups (Figure  S1 ). The loading plot shows that along the first component, several metabolites are changed in a decreasing order from unmanipulated to sham and to sepsis survivors. The same trend holds true for maltose and glucose, and amino acids such as alanine, beta-alanine, and glutamine. We compared NMR-acquired data of sham flies to the unmanipulated flies using an orthogonal projection on latent structures (OPLS) model. Figure  2  shows that the sterile pricking in sham flies directly affects the flies' metabolome, as the model quality parameters were R 2 Y = 0.