8000 GitHub - yuanzhongqiao/smile: 统计机器智能和学习引擎 Statistical Machine Intelligence & Learning Engine
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

yuanzhongqiao/smile

 
 

Repository files navigation

微笑

加入 https://gitter.im/haifengl/smile 的聊天 Maven 中心

Smile(统计机器智能和学习引擎)是一种快速而全面的机器学习、NLP、线性代数、 Java 和 Scala 中的图形、插值和可视化系统。 凭借先进的数据结构和算法,Smile 提供 最先进的性能。微笑是有据可查的,拜托 查看 Project 网站以获取编程指南和更多信息。

Smile 涵盖机器学习的各个方面,包括分类、 回归、聚类、关联规则挖掘、特征选择、 流形学习 多维缩放 遗传算法 / 缺失值插补、高效的最近邻搜索等。

Smile 实现了以下主要的机器学习算法:

  • 分类:支持向量机、决策树、AdaBoost、梯度提升、 随机森林 / Logistic 回归 / 神经网络 / RBF 网络 / 最大熵分类器 , KNN, 朴素贝叶斯 / Fisher/线性/二次/正则化判别分析。

  • 回归:支持向量回归 高斯过程 回归树 / 梯度提升、随机森林、RBF 网络、OLS、LASSO、ElasticNet、 岭回归。

  • 功能选择:基于遗传算法的特征选择,基于集成学习的特征 选择、TreeSHAP、信号噪声比、和方比。

  • 聚类:BIRCH, CLARANS, DBSCAN, DENCLUE, 确定性退火, K-Means, X 均值、G 均值、神经气体、不断增长的神经气体、分层 聚类 , 顺序信息瓶颈 / 自组织映射 / Spectral Clustering(光谱聚类)、Minimum Entropy Clustering(最小熵聚类)。

  • 关联规则和频繁的项目集挖掘:FP-growth 挖矿算法。

  • 流形学习:IsoMap、LLE、拉普拉斯特征图、t-SNE、UMAP、PCA、内核 PCA、 概率 PCA、GHA、随机投影、ICA。

  • 多维缩放:经典 MDS、等渗 MDS、Sammon 映射。

  • 最近邻搜索:BK-Tree、Cover Tree、KD-Tree、SimHash、LSH。

  • 序列学习:隐马尔可夫模型,条件随机场。

  • 自然语言处理:句子拆分器和分词器、二元语法统计测试、短语提取器、 关键字提取器、词干提取器、POS 标记、相关性排名

您可以通过 Maven 中央存储库使用库,方法是将 following 添加到您的项目 pom.xml 文件中。

    <dependency>
      <groupId>com.github.haifengl</groupId>
      <artifactId>smile-core</artifactId>
      <version>4.0.0</version>
    </dependency>

对于 NLP,请使用 artifactId smile-nlp。

对于 Scala API,请使用

    libraryDependencies += "com.github.haifengl" %% "smile-scala" % "4.0.0"

对于 Kotlin API,请将以下内容添加到该部分 的 Gradle 构建脚本。dependencies

    implementation("com.github.haifengl:smile-kotlin:4.0.0")

对于 Clojure API,请将以下依赖项添加到您的项目或构建文件中:

    [org.clojars.haifengl/smile "4.0.0"]

一些算法依赖于 BLAS 和 LAPACK(例如流形学习、 一些聚类算法、高斯过程回归、MLP 等)。 要使用这些算法,您应该包括 OpenBLAS 以优化矩阵 计算:

    libraryDependencies ++= Seq(
      "org.bytedeco" % "javacpp"   % "1.5.11"        classifier "macosx-arm64" classifier "macosx-x86_64" classifier "windows-x86_64" classifier "linux-x86_64",
      "org.bytedeco" % "openblas"  % "0.3.28-1.5.11" classifier "macosx-arm64" classifier "macosx-x86_64" classifier "windows-x86_64" classifier "linux-x86_64",
      "org.bytedeco" % "arpack-ng" % "3.9.1-1.5.11"  classifier "macosx-x86_64" classifier "windows-x86_64" classifier "linux-x86_64"
    )

在此示例中,我们包括所有支持的 64 位平台并筛选出 32 位平台。用户应仅包含要保存的平台 空间。

如果您更喜欢其他 BLAS 实现,则可以使用 “java.library.path”或类路径上,通过使用 “org.bytedeco.openblas.load” 系统属性。例如,要使用 BLAS 库,我们可以传递诸如 如。-Dorg.bytedeco.openblas.load=blas

如果您默认安装了 MKL 或只包含以下内容 模块中包含完整版 MKL 二进制文件,Smile 将自动 切换到 MKL。

libraryDependencies ++= {
  val version = "2025.0-1.5.11"
  Seq(
    "org.bytedeco" % "mkl-platform"        % version,
    "org.bytedeco" % "mkl-platform-redist" % version
  )
}

Smile 带有适用于 Java、Scala 和 Kotlin 的交互式 shell。 从发布页面下载预打包的 Smile。 在 Smile 的主目录中,键入

    ./bin/smile

进入 Scala shell。您可以运行任何有效的 Scala 表达式 在 shell 中。在最简单的情况下,您可以将其用作计算器。 此外,所有高级 Smile 运算符都在 shell 中预定义。 默认情况下,shell 使用高达 75% 的内存。如果您需要更多内存 要处理大型数据,请使用选项 或 。 例如-J-Xmx-XX:MaxRAMPercentage

    ./bin/smile -J-Xmx30G

您还可以修改 memory 和其他 JVM 设置。./conf/smile.ini

要使用 Java 的 JShell,请键入

    ./bin/jshell.sh

它在 Classpath 中有 Smile 的 jar。同样,运行

    ./bin/kotlin.sh

输入 Kotlin REPL。

模型序列化

大多数模型都支持 Java 接口(所有分类器 do support 接口),以便您可以在 Spark 中使用它们。Protostuff 是一个不错的选择,它支持向前-向后兼容性 (架构演变)和验证。除了 XML,Protostuff 还支持许多 其他格式,如 JSON、YAML、protobuf 等。SerializableSerializable

可视化

Smile 提供了一个基于 Swing 的数据可视化库 SmilePlot, 提供散点图、折线图、阶梯图、条形图、 箱形图, 直方图, 3D 直方图, 树状图, 热图, 六边形图, QQ 图、等值线图、曲面和线框。

要使用 SmilePlot,请将以下内容添加到依赖项中

    <dependency>
      <groupId>com.github.haifengl</groupId>
      <artifactId>smile-plot</artifactId>
      <version>4.0.0</version>
    </dependency>

Smile 还支持声明式方法的数据可视化。 使用 ,我们可以创建一个规范 将可视化描述为从数据到属性的映射 图形标记(例如,点或条形)。规范是 基于 Vega-Lite。这 Vega-Lite 编译器自动生成可视化组件 包括轴、图例和刻度。然后,它确定属性 基于一组精心设计的规则。smile.plot.vega package

画廊

Gallery

Kernel PCA

Kernel PCA

IsoMap

IsoMap

MDS

Multi-Dimensional Scaling

SOM

SOM

Neural Network

Neural Network

SVM

SVM

Agglomerative Clustering

Agglomerative Clustering

X-Means

X-Means

DBSCAN

DBSCAN

Neural Gas

Neural Gas

Wavelet

Wavelet

Mixture

Exponential Family Mixture

About

统计机器智能和学习引擎 Statistical Machine Intelligence & Learning Engine

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 67.0%
  • Scilab 10.0%
  • HTML 8.7%
  • Scala 6.9%
  • Jupyter Notebook 2.2%
  • Turing 2.2%
  • Other 3.0%
0