smile——Java機器學習引擎

資源

https://haifengl.github.io/
https://github.com/haifengl/smile

介紹

Smile(統計機器智能和學習引擎)是一個基於Java和Scala的快速、全面的機器學習、NLP、線性代數、圖形、插值和可視化系統。
憑藉先進的數據結構和算法,Smile提供了最先進的性能。Smile有很好的文檔記錄,請查看項目網站以獲取編程指南和更多信息。

Smile涵蓋了機器學習的各個方面,包括分類、迴歸、聚類、關聯規則挖掘、特徵選擇、流形學習、多維縮放、遺傳算法、缺失值插補、高效最近鄰搜索等。

Smile實現了以下主要的機器學習算法:

  • 分類:支持向量機、決策樹、AdaBoost、梯度提升、隨機森林、邏輯迴歸、神經網絡、RBF網絡、最大熵分類器、KNN、樸素貝葉斯、Fisher/線性/二次/正則判別分析。
  • 迴歸:支持向量迴歸、高斯過程、迴歸樹、梯度提升、隨機森林、RBF網絡、OLS、套索、彈性網絡、嶺迴歸。
  • 特徵選擇:基於遺傳算法的特徵選擇,基於集成學習的特徵選擇、樹形圖、信噪比和平方比。
  • 聚類:BIRCH、CLARANS、DBSCAN、DENCLUE、確定性退火、K-均值、X-均值、G-均值、神經氣體、生長神經氣體、層次聚類、順序信息瓶頸、自組織映射、光譜聚類、最小熵聚類。
  • 關聯規則和頻繁項集挖掘:FP增長挖掘算法。
  • 流形學習:IsoMap、LLE、拉普拉斯特徵映射、t-SNE、UMAP、PCA、核PCA、概率PCA、GHA、隨機投影、ICA。
  • 多維標度:經典MDS、等滲MDS和Sammon映射。
  • 最近鄰搜索:BK樹、覆蓋樹、KD樹、SimHash、LSH。
  • 序列學習:隱馬爾可夫模型,條件隨機場。
  • 自然語言處理:分句器和標記器、雙元統計測試、短語提取器、關鍵詞提取器、詞幹分析器、詞性標註、相關性排序

使用(Java等集成)

maven引入

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

Shell使用

模型序列化

大多數模型支持Java可序列化接口(所有分類器都支持可序列化接口),因此您可以在Spark中使用它們。
對於在非Java代碼中讀/寫模型,我們建議使用XStream以串行化訓練的模型。XStream是一個簡單的庫,用於將對象序列化爲XML並再次序列化。XStream易於使用,不需要映射(實際上不需要修改對象)。Protostuff是一個很好的替代方案,它支持向前向後兼容性(模式演化)和驗證。除了XML之外,Protostuff還支持許多其他格式,如JSON、YAML、protobuf等。

可視化

Smile提供了一個基於Swing的數據可視化庫SmilePlot,它提供散點圖、線圖、階梯圖、條形圖、方框圖、直方圖、3D直方圖、樹狀圖、熱圖、hexmap、QQ圖、等高線圖、曲面和線框。
需要引入庫

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

Smile還支持聲明方式的數據可視化。使用mile.plot.vega軟件包,我們可以創建一個規範,將可視化描述爲從數據到圖形標記(如點或條)屬性的映射。
該規範基於Vega-Lite。Vega-Lite編譯器自動生成可視化組件,包括軸、圖例和比例。然後,它根據一組精心設計的規則確定這些組件的屬性。

示例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章