{"id":13394141,"url":"https://github.com/haifengl/smile","last_synced_at":"2026-01-08T15:05:25.568Z","repository":{"id":23553783,"uuid":"26921116","full_name":"haifengl/smile","owner":"haifengl","description":"Statistical Machine Intelligence \u0026 Learning Engine","archived":false,"fork":false,"pushed_at":"2025-05-02T03:03:49.000Z","size":256742,"stargazers_count":6169,"open_issues_count":6,"forks_count":1140,"subscribers_count":266,"default_branch":"master","last_synced_at":"2025-05-06T19:52:13.510Z","etag":null,"topics":["classification","clustering","computer-algebra-system","computer-vision","data-science","dataframe","deep-learning","genetic-algorithm","interpolation","linear-algebra","llm","machine-learning","manifold-learning","multidimensional-scaling","nearest-neighbor-search","nlp","regression","statistics","visualization","wavelet"],"latest_commit_sha":null,"homepage":"https://haifengl.github.io","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haifengl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"haifengl"}},"created_at":"2014-11-20T16:28:12.000Z","updated_at":"2025-05-05T14:51:11.000Z","dependencies_parsed_at":"2023-02-19T18:01:02.904Z","dependency_job_id":"44e785d6-8773-47eb-a2c5-69342cabc51d","html_url":"https://github.com/haifengl/smile","commit_stats":{"total_commits":3930,"total_committers":71,"mean_commits":"55.352112676056336","dds":"0.11323155216284986","last_synced_commit":"aa2bfb953b5aa5551b31bac1909f2b76b55c27e0"},"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haifengl%2Fsmile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haifengl%2Fsmile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haifengl%2Fsmile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haifengl%2Fsmile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haifengl","download_url":"https://codeload.github.com/haifengl/smile/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254020478,"owners_count":22000750,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["classification","clustering","computer-algebra-system","computer-vision","data-science","dataframe","deep-learning","genetic-algorithm","interpolation","linear-algebra","llm","machine-learning","manifold-learning","multidimensional-scaling","nearest-neighbor-search","nlp","regression","statistics","visualization","wavelet"],"created_at":"2024-07-30T17:01:10.277Z","updated_at":"2026-01-08T15:05:25.562Z","avatar_url":"https://github.com/haifengl.png","language":"Java","funding_links":["https://github.com/sponsors/haifengl"],"categories":["Java","Projects","特征工程","Table of Contents","项目","II. Databases, search engines, big data and machine learning","人工智能","Machine Learning","Wrappers"],"sub_categories":["Machine Learning","Science and Data Analysis","机器学习","Tools","Speech Recognition","8. Machine Learning","Papers"],"readme":"# Statistical Machine Intelligence \u0026 Learning Engine \u003cimg align=\"left\" width=\"40\" src=\"/web/src/images/smile.jpg\" alt=\"SMILE\"\u003e\n[![Maven Central](https://img.shields.io/maven-central/v/com.github.haifengl/smile-core)](https://central.sonatype.com/artifact/com.github.haifengl/smile-core)\n\n## Goal ##\nSMILE (Statistical Machine Intelligence \u0026 Learning Engine) is\na fast and comprehensive machine learning framework in Java.\nSMILE v5.x requires Java 25, v4.x requires Java 21, and all previous versions\nrequire Java 8. SMILE also provides APIs in Scala and Kotlin with\ncorresponding language paradigms. With advanced data structures and\nalgorithms, SMILE delivers state-of-art performance.\nSMILE covers every aspect of machine learning, including deep learning,\nlarge language models, classification, regression, clustering, association\nrule mining, feature selection and extraction, manifold learning,\nmultidimensional scaling, genetic algorithms, missing value imputation,\nefficient nearest neighbor search, etc. Furthermore, SMILE also provides\nadvanced algorithms for graph, linear algebra, numerical analysis,\ninterpolation, computer algebra system for symbolic manipulations,\nand data visualization.\n\n## Features ##\nSMILE implements the following major machine learning algorithms:\n\n- **LLM:**\nNative Java implementation of Llama 3.1, tiktoken tokenizer, high performance\nLLM inference server with OpenAI-compatible APIs and SSE-based chat streaming,\nfully functional frontend.\n\n- **Deep Learning:**\nDeep learning with CPU and GPU. EfficientNet model for image classification.\n\n- **Classification:**\nSupport Vector Machines, Decision Trees, AdaBoost, Gradient Boosting,\nRandom Forest, Logistic Regression, Neural Networks, RBF Networks,\nMaximum Entropy Classifier, KNN, Naïve Bayesian,\nFisher/Linear/Quadratic/Regularized Discriminant Analysis.\n\n- **Regression:**\nSupport Vector Regression, Gaussian Process, Regression Trees,\nGradient Boosting, Random Forest, RBF Networks, OLS, LASSO, ElasticNet,\nRidge Regression.\n\n- **Feature Selection:**\nGenetic Algorithm based Feature Selection, Ensemble Learning based Feature\nSelection, TreeSHAP, Signal Noise ratio, Sum Squares ratio.\n\n- **Clustering:**\nBIRCH, CLARANS, DBSCAN, DENCLUE, Deterministic Annealing, K-Means,\nX-Means, G-Means, Neural Gas, Growing Neural Gas, Hierarchical\nClustering, Sequential Information Bottleneck, Self-Organizing Maps,\nSpectral Clustering, Minimum Entropy Clustering.\n\n- **Association Rule \u0026 Frequent Itemset Mining:**\nFP-growth mining algorithm.\n\n- **Manifold Learning:**\nIsoMap, LLE, Laplacian Eigenmap, t-SNE, UMAP, PCA, Kernel PCA,\nProbabilistic PCA, GHA, Random Projection, ICA.\n\n- **Multi-Dimensional Scaling:**\nClassical MDS, Isotonic MDS, Sammon Mapping.\n\n- **Nearest Neighbor Search:**\nBK-Tree, Cover Tree, KD-Tree, SimHash, LSH.\n\n- **Sequence Learning:**\nHidden Markov Model, Conditional Random Field.\n\n- **Natural Language Processing:**\nSentence Splitter and Tokenizer, Bigram Statistical Test, Phrase Extractor,\nKeyword Extractor, Stemmer, POS Tagging, Relevance Ranking\n\n## License ##\nSMILE employs a dual license model designed to meet the development\nand distribution needs of both commercial distributors (such as OEMs,\nISVs and VARs) and open source projects. For details, please see\n[LICENSE](https://github.com/haifengl/smile/blob/master/LICENSE).\nTo acquire a commercial license, please contact smile.sales@outlook.com.\n\n## Issues/Discussions ##\n\n* **Discussion/Questions**:\nIf you wish to ask questions about SMILE, we're active on\n[GitHub Discussions](https://github.com/haifengl/smile/discussions) and\n[Stack Overflow](http://stackoverflow.com/questions/tagged/smile).\n\n* **Docs**:\nSMILE is well documented and [our docs are available online](https://haifengl.github.io/), where you can find tutorial,\nprogramming guides, and more information. If you'd like to help improve the docs, they're part of this repository\nin the `web/src` directory. [Java Docs](https://haifengl.github.io/api/java/index.html),\n[Scala Docs](https://haifengl.github.io/api/scala/index.html), [Kotlin Docs](https://haifengl.github.io/api/kotlin/index.html),\nand [Clojure Docs](https://haifengl.github.io/api/clojure/index.html) are also available.\n\n* **Issues/Feature Requests**:\n  Finally, any bugs or features, please report to our [issue tracker](https://github.com/haifengl/smile/issues/new).\n\n## Installation ##\nYou can use the libraries through Maven central repository by adding the\nfollowing to your project pom.xml file.\n```\n    \u003cdependency\u003e\n      \u003cgroupId\u003ecom.github.haifengl\u003c/groupId\u003e\n      \u003cartifactId\u003esmile-core\u003c/artifactId\u003e\n      \u003cversion\u003e5.1.0\u003c/version\u003e\n    \u003c/dependency\u003e\n```\n\nFor deep learning and NLP, use the artifactId `smile-deep` and `smile-nlp`, respectively.\n\nFor Scala API, please add the below into your sbt script.\n```\n    libraryDependencies += \"com.github.haifengl\" %% \"smile-scala\" % \"5.1.0\"\n```\n\nFor Kotlin API, add the below into the `dependencies` section\nof Gradle build script.\n```\n    implementation(\"com.github.haifengl:smile-kotlin:5.1.0\")\n```\n\nSome algorithms rely on BLAS and LAPACK (e.g. manifold learning,\nsome clustering algorithms, Gaussian Process regression, MLP, etc.).\nTo use these algorithms in SMILE v5.x, you should install OpenBLAS and ARPACK\nfor optimized matrix computation. For Windows, you can find the pre-built\nDLL files from the `bin` directory of release packages. Make sure to add this\ndirectory to PATH environment variable.\n\nTo install on Linux (e.g., Ubuntu), run\n```shell script\nsudo apt update\nsudo apt install libopenblas-dev libarpack2\n```\n\nOn Mac, we use the BLAS library from the Accelerate framework provided by macOS.\nBut you should install ARPACK by running\n```shell script\nbrew install arpack\n```\nHowever, macOS System Integrity Protection (SIP) significantly impacts how\nJVM handles dynamic library loading by purging dynamic linker (DYLD)\nenvironment variables like DYLD_LIBRARY_PATH when launching protected processes. \nA simple workaround is to copy /opt/homebrew/lib/libarpack.dylib to your working\ndirectory so that JVM can successfully load it.\n\nFor SMILE v4.x, OpenBLAS and ARPACK libraries can be added to your project with\nthe following dependencies.\n```\n    libraryDependencies ++= Seq(\n      \"org.bytedeco\" % \"javacpp\"   % \"1.5.11\"        classifier \"macosx-arm64\" classifier \"macosx-x86_64\" classifier \"windows-x86_64\" classifier \"linux-x86_64\",\n      \"org.bytedeco\" % \"openblas\"  % \"0.3.28-1.5.11\" classifier \"macosx-arm64\" classifier \"macosx-x86_64\" classifier \"windows-x86_64\" classifier \"linux-x86_64\",\n      \"org.bytedeco\" % \"arpack-ng\" % \"3.9.1-1.5.11\"  classifier \"macosx-x86_64\" classifier \"windows-x86_64\" classifier \"linux-x86_64\"\n    )\n```\nIn this example, we include all supported 64-bit platforms and filter out\n32-bit platforms. The user should include only the needed platforms to save\nspaces.\n\n## Studio ##\nSMILE Studio is an interactive desktop application to help you be more\nproductive in building and serving models with SMILE. Similar to Jupyter\nNotebooks, SMILE Studio is a REPL (Read-Evaluate-Print-Loop) containing\nan ordered list of input/output cells.\n\nDownload pre-packaged SMILE from the\n[releases page](https://github.com/haifengl/smile/releases).\nAfter unziping the package and cd into the `bin` directory of SMILE\nin a terminal, type\n```shell script\n    ./smile\n```\nto enter SMILE Studio. If you work in a headless environment without\ngraphical interface, you may run `./smile shell` to enter SMILE Shell\nfor Java, which pre-imports all major SMILE packages. If you prefer\nScala, type `./smile scala` to enter SMILE Shell for Scala.\n\nBy default, the Studio/Shell uses up to 4GB memory. If you need more memory\nto handle large data, use the option `-J-Xmx` or `-XX:MaxRAMPercentage`.\nFor example,\n```shell script\n    ./smile -J-Xmx30G\n```\nYou can also modify the configuration file `conf/smile.ini` for the\nmemory and other JVM settings.\n\n## Model Serialization ##\nMost models support the Java `Serializable` interface (all classifiers\ndo support `Serializable` interface) so that you can serialze a model\nand ship it to a production environment for inference. You may also\nuse serialized models in other systems such as Spark.\n\n## Visualization ##\nA picture is worth a thousand words. In machine learning, we usually handle\nhigh-dimensional data, which is impossible to draw on display directly.\nBut a variety of statistical plots are tremendously valuable for us to grasp\nthe characteristics of many data points. SMILE provides data visualization tools\nsuch as plots and maps for researchers to understand information more easily and quickly.\nTo use `smile-plot`, add the following to dependencies\n```\n    \u003cdependency\u003e\n      \u003cgroupId\u003ecom.github.haifengl\u003c/groupId\u003e\n      \u003cartifactId\u003esmile-plot\u003c/artifactId\u003e\n      \u003cversion\u003e5.1.0\u003c/version\u003e\n    \u003c/dependency\u003e\n```\n\nOn Swing-based systems, the user may leverage `smile.plot.swing` package to\ncreate a variety of plots such as scatter plot, line plot, staircase plot,\nbar plot, box plot, histogram, 3D histogram, dendrogram, heatmap, hexmap,\nQQ plot, contour plot, surface, and wireframe.\n\nThis library also support data visualization in declarative approach.\nWith `smile.plot.vega` package, we can create a specification\nthat describes visualizations as mappings from data to properties\nof graphical marks (e.g., points or bars). The specification is\nbased on [Vega-Lite](https://vega.github.io/vega-lite/). In a web browser,\nthe Vega-Lite compiler automatically produces visualization components\nincluding axes, legends, and scales. It then determines properties\nof these components based on a set of carefully designed rules.\n\n## Contributing ##\nPlease read the [contributing.md](CONTRIBUTING.md) on how to build and test SMILE.\n\n## Maintainers ##\n- Haifeng Li (@haifengl)\n- Karl Li (@kklioss)\n\n## Gallery\n\u003ctable class=\"center\" style=\"width:100%;\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/splom.png\"\u003e\u003cimg src=\"/web/src/images/splom.png\" alt=\"SPLOM\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eScatterplot Matrix\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/pca.png\"\u003e\u003cimg src=\"/web/src/images/pca.png\" alt=\"Scatter\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eScatter Plot\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/heart.png\"\u003e\u003cimg src=\"/web/src/images/heart.png\" alt=\"Heart\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eLine Plot\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/surface.png\"\u003e\u003cimg src=\"/web/src/images/surface.png\" alt=\"Surface\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eSurface Plot\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/bar.png\"\u003e\u003cimg src=\"/web/src/images/bar.png\" alt=\"Scatter\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eBar Plot\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/box.png\"\u003e\u003cimg src=\"/web/src/images/box.png\" alt=\"Box Plot\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eBox Plot\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/histogram2d.png\"\u003e\u003cimg src=\"/web/src/images/histogram2d.png\" alt=\"Histogram\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eHistogram Heatmap\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/rolling.png\"\u003e\u003cimg src=\"/web/src/images/rolling.png\" alt=\"Rolling\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eRolling Average\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/map.png\"\u003e\u003cimg src=\"/web/src/images/map.png\" alt=\"Map\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eGeo Map\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/umap.png\"\u003e\u003cimg src=\"/web/src/images/umap.png\" alt=\"UMAP\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eUMAP\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/text.png\"\u003e\u003cimg src=\"/web/src/images/text.png\" alt=\"Text\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eText Plot\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/contour.png\"\u003e\u003cimg src=\"/web/src/images/contour.png\" alt=\"Contour\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eHeatmap with Contour\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/hexmap.png\"\u003e\u003cimg src=\"/web/src/images/hexmap.png\" alt=\"Hexmap\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eHexmap\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/isomap.png\"\u003e\u003cimg src=\"/web/src/images/isomap.png\" alt=\"IsoMap\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eIsoMap\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/umap.png\"\u003e\u003cimg src=\"/web/src/images/lle.png\" alt=\"LLE\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eLLE\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/gallery/smile-demo-kpca.png\"\u003e\u003cimg src=\"/web/src/gallery/smile-demo-kpca-small.png\" alt=\"Kernel PCA\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eKernel PCA\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/gallery/smile-demo-ann.png\"\u003e\u003cimg src=\"/web/src/gallery/smile-demo-ann-small.png\" alt=\"Neural Network\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eNeural Network\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/gallery/smile-demo-svm.png\"\u003e\u003cimg src=\"/web/src/gallery/smile-demo-svm-small.png\" alt=\"SVM\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eSVM\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/gallery/smile-demo-agglomerative-clustering.png\"\u003e\u003cimg src=\"/web/src/gallery/smile-demo-agglomerative-clustering-small.png\" alt=\"Hierarchical Clustering\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eHierarchical Clustering\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/gallery/smile-demo-som.png\"\u003e\u003cimg src=\"/web/src/gallery/smile-demo-som-small.png\" alt=\"SOM\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eSOM\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/gallery/smile-demo-dbscan.png\"\u003e\u003cimg src=\"/web/src/gallery/smile-demo-dbscan-small.png\" alt=\"DBSCAN\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eDBSCAN\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/gallery/smile-demo-neural-gas.png\"\u003e\u003cimg src=\"/web/src/gallery/smile-demo-neural-gas-small.png\" alt=\"Neural Gas\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eNeural Gas\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/gallery/smile-demo-wavelet.png\"\u003e\u003cimg src=\"/web/src/gallery/smile-demo-wavelet-small.png\" alt=\"Wavelet\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eWavelet\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/gallery/smile-demo-mixture.png\"\u003e\u003cimg src=\"/web/src/gallery/smile-demo-mixture-small.png\" alt=\"Mixture\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eExponential Family Mixture\u003c/h3\u003e\u003c/figcaption\u003e\n    \u003c/figure\u003e\n    \u003c/td\u003e\n      \u003ctd\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/teapot.png\"\u003e\u003cimg src=\"/web/src/images/teapot.png\" alt=\"Teapot\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eTeapot Wireframe\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\n      \u003cfigure\u003e\n        \u003ca href=\"/web/src/images/grid-interpolation2d.png\"\u003e\u003cimg src=\"/web/src/images/grid-interpolation2d.png\" alt=\"Interpolation\"\u003e\u003c/a\u003e\n        \u003cfigcaption style=\"text-align: center;\"\u003e\u003ch3\u003eGrid Interpolation\u003c/h3\u003e\u003c/figcaption\u003e\n      \u003c/figure\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaifengl%2Fsmile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaifengl%2Fsmile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaifengl%2Fsmile/lists"}