Spring Boot中整合機器學習簡介

banq發表於2024-06-03

如今,機器學習提供了創新的解決方案和更好的使用者體驗。在動態的軟體開發領域,利用機器學習的力量對於建立智慧和自適應應用程式至關重要。Spring Boot 以其簡單性和高效性而聞名,為構建強大的企業應用程式提供了堅實的基礎。

當與 Deep Java Library (DJL)(一種用於 Java 深度學習的多功能框架)結合使用時,Spring Boot 將成為無縫整合機器學習的強大工具。本文探討了如何使用 DJL 將機器學習功能注入 Spring Boot 應用程式中,從而徹底改變應用程式與資料和使用者的互動方式。

機器學習在 Spring 應用程式中的重要性

  1. 改善使用者體驗

機器學習演算法具有分析使用者行為、偏好和模式的出色能力。透過將機器學習 (ML) 模型整合到 Spring 應用程式中,開發人員可以個性化使用者體驗,從而提高參與度和滿意度。
事實:根據埃森哲的一份報告,91% 的消費者更有可能購買提供個性化優惠和推薦的品牌。
  1. 改善決策

機器學習演算法擅長處理大量資料並提取有用的見解。透過將 ML 模型納入 Spring 應用程式的決策流程,組織可以做出更明智、更準確的決策,從而提高效率和盈利能力。
事實:麥肯錫全球研究所估計,使用機器學習進行決策任務的公司可以將其營業利潤率提高高達 60%。
  1. 預測分析

機器學習驅動的預測分析使組織能夠預測未來的趨勢、行為和結果。透過將預測模型嵌入到 Spring 應用程式中,企業可以主動應對挑戰並利用機遇。
事實:《福布斯洞察》的一項研究發現,86% 的高管認為預測分析對於組織未來的成功至關重要。
  1. 簡化運營

機器學習演算法可以自動執行重複性任務、最佳化流程並識別效率低下之處。將機器學習整合到 Spring 應用程式中,可讓組織簡化運營、降低成本並更有效地分配資源。
事實:根據德勤的一項調查,64% 的高管表示自動化和人工智慧技術已經提高了其組織的生產力。
  1. 欺詐檢測和安全

機器學習演算法在檢測欺詐活動和加強安全措施方面發揮著重要作用。透過將欺詐檢測模型嵌入到 Spring 應用程式中,公司可以保護敏感資料並降低財務風險。

事實:註冊舞弊審查師協會估計,企業每年因舞弊而損失的收入約佔 5%。

將機器學習整合到 Spring 應用程式中不僅是一種趨勢,而且對於尋求在當今數字環境中蓬勃發展的企業來說是一項戰略要務。透過利用 ML 演算法的強大功能,組織可以發掘新的機會、推動創新並獲得競爭優勢。

整合步驟

  • 設定 Spring Boot 應用程式:首先建立一個新的 Spring Boot 專案或使用現有專案。
  • 新增依賴項:在“pom.xml”或“build.gradle”中包含機器學習庫(如 DJL)的依賴項。
  • 模型訓練:使用適當的資料集和框架訓練您的機器學習模型。
  • 服務整合:實現服務以與 Spring Boot 應用程式中的訓練有素的模型進行互動。
  • 控制器設定:建立控制器來定義呼叫機器學習功能的端點。
  • 測試和部署:徹底測試您的應用程式並將其部署到您想要的環境。

使用 Apache Spark MLlib 整合機器學習推薦模型
Apache Spark ML lib 是一個可擴充套件的機器學習庫,是Apache Spark生態系統的一部分。它為分類、迴歸、聚類、協同過濾、降維等任務提供了廣泛的機器學習演算法和實用程式。以下是有關Apache Spark MLlib的一些要點:

概述

  • MLlib 是 Spark 的機器學習庫,旨在使實用的機器學習可擴充套件且易於使用。
  • 它提供了利用迭代計算的高質量演算法,可以產生比 MapReduce 中使用的單遍近似更好的結果。
  • MLlib 包括基於 RDD 的 API(目前處於維護模式)和基於 DataFrame 的 API,後者是未來的主要 API。

主要特徵
  • 提供廣泛的機器學習演算法,如分類、迴歸、聚類、協同過濾、降維等。
  • 提供資料處理、特徵提取、管道、模型永續性、線性代數和統計實用程式。
  • 促進實用的機器學習流程,尤其是特徵轉換。
  • 提供跨演算法和語言(如 Scala、Java、Python 和 R)的統一 API。
  • 利用 Breeze 等最佳化的線性代數庫實現高效能。

過渡到基於 DataFrame 的 API
  • 從 Spark 2.0 開始,基於 RDD 的 API 處於維護模式,僅修復了一些錯誤spark.mllib。
  • 現在,主要 API 是基於 DataFrame 的 API ,它提供了更加使用者友好的介面並促進了 ML 管道spark.ml。
  • MLlib 將繼續向基於 DataFrame 的 API 新增新功能,以達到與基於 RDD 的 API 相當的水平。

總之,Apache Spark MLlib 是一個全面且可擴充套件的機器學習庫,它提供了廣泛的演算法、實用程式和 API,用於在大規模資料上構建實用的機器學習管道

設定:
在你的`pom.xml`中包含 Spring Boot 和 Apache Spark MLlib 必要的依賴項。

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.12</artifactId>
    <version>3.2.1</version>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-mllib_2.12</artifactId>
    <version>3.2.1</version>
</dependency>

構建推薦系統

  1. 將使用者-商品互動資料載入並預處理到 RDD 或 DataFrame 中。
  2. 使用MLlib 包中的(交替最小二乘)演算法在使用者專案資料上訓練協同過濾模型ALSorg.apache.spark.mllib.recommendation

import org.apache.spark.mllib.recommendation.ALS;
import org.apache.spark.mllib.recommendation.MatrixFactorizationModel;

JavaRDD<Rating> ratings = ... <font>// Load ratings data<i>
int numIterations = 10;
MatrixFactorizationModel model = ALS.train(JavaRDD.toRDD(ratings), numIterations);

使用經過訓練的模型為使用者生成最佳推薦

int userId = 123;
int numRecommendations = 5;
Rating[] recommendationsForUser = model.recommendProducts(userId, numRecommendations);

整合SpringBoot:

  • 建立一個 Spring 服務,負責載入資料、訓練推薦模型並向使用者提供推薦。
  • 建立一個 REST 控制器來提供接收建議的端點。

@RestController
public class RecommendationController {
    private final MatrixFactorizationModel model;

    public RecommendationController(MatrixFactorizationModel model) {
        this.model = model;
    }

    @GetMapping(<font>"/recommendations/{userId}")
    public List<Rating> getRecommendations(@PathVariable int userId) {
        Rating[] recommendations = model.recommendProducts(userId, 5);
        return Arrays.asList(recommendations);
    }
}

透過遵循這些步驟,您可以將 Apache Spark MLlib 的推薦演算法整合到 Spring Boot 應用程式中,從而允許您構建和部署可擴充套件的推薦系統作為應用程式功能的一部分

相關文章