admin 2025-10-03 15:31:34 赛事专题

🚀 2025 年的 Apache Mahout:大公司仍在使用被遗忘的机器学习工具来扩展规模

了解如何 阿帕奇驯象师 仍然是项目中的关键解决方案 人工智能 y 大数据,得益于其强大、可扩展性和分布式数学定制能力。

在浩瀚的宇宙中 机器学习 和 人工智能尽管时间流逝,但一些技术仍然保持着相关性。

其中之一是 阿帕奇驯象师是一个强大的开源项目,虽然被其他更适合媒体的工具所掩盖,但对于希望构建系统的企业、研究人员和开发人员来说,仍然具有巨大的潜力。 机器学习 可扩展。

在这篇文章中 iartificial.blog让我们深入了解 Apache Mahout 到底是什么,为什么它至今仍然具有相关性,它与其他平台有何不同,它的优势、劣势和实际用例是什么,以及如何在您自己的项目中充分利用它。

指数

什么是 Apache Mahout?

🔍 Apache Mahout 与其他机器学习工具有何不同?

Apache Mahout 背后的关键技术

阿帕奇 Hadoop的

Apache Spark

轮回:数学核心

Apache Mahout 的出色用例

推荐系统

客户分组

分类 文本和观点挖掘

Mahout 与其他流行工具的比较

2025 年如何开始使用 Apache Mahout?

1.安装Apache Mahout及其依赖项

2.搭建开发环境(推荐IDE:IntelliJ IDEA)

3. 探索并运行官方 Mahout 示例

4. 使用 Samsara 开发自己的模型

5. 将 Mahout 模型集成到真实的大数据环境中

通过简单的测试检查您的环境

实践:使用 Apache Mahout 的推荐系统(ALS-WR)

推荐系统的目标

使用的数据集:MovieLens 100k

步骤 1:为 Mahout 准备数据

第 2 步:转换为 Mahout 矢量格式

步骤 3:生成建议

步骤 4:解释结果

步骤 5:验证和指标

查看结果

如何扩展这个系统?

目前使用 Mahout 的优点和缺点

优点

缺点

在哪些项目中使用 Apache Mahout 最有意义?

Apache Mahout 在深度学习时代仍然是一个可行的选择吗?

❓ 关于 Apache Mahout 的常见问题

1. Apache Mahout 是否已经过时了? TensorFlow 还是 PyTorch?

2. 有必要知道 爪哇岛 或者 Scala 使用 Mahout?

3.我可以直接将 Apache Mahout 与 Apache Spark 一起使用吗?什么是 Apache Mahout? 阿帕奇驯象师 它是一个平台 机器学习 在 Apache 软件基金会生态系统中开发,旨在为 数据挖掘.

它旨在处理大量信息,主要基于分布式框架,例如 Apache Hadoop 最近, Apache Spark y 弗林克.

Mahout 的独特之处在于它专注于设计在计算集群上高效运行的算法,这在数据量和处理速度是关键因素的企业环境中至关重要。

我们发现其主要功能包括:

🔍 Apache Mahout 与其他机器学习工具有何不同?与书店不同 Scikit学习 o tensorflowMahout 不适用于本地环境或中等数据集的运行。它的真正威力在需要的时候就会显现出来:

虽然其他工具优先考虑易用性或与笔记本的集成, Python

, Mahout 专注于寻求真正性能、定制和可扩展性的开发人员和工程师。.

它专注于线性代数,通过 API 轮回,使其成为实现高级和自定义模型的极其强大的资源,这在传统框架中并不常见。

Apache Mahout 背后的关键技术Mahout 的基本支柱之一是它与分布式数据生态系统中其他尖端技术的集成。下面我们来看看实现这一目标的组件:

Apache Hadoop最初,Mahout 依赖于 Hadoop 及其 映射简化 处理大量数据。虽然与 Spark 相比它如今已经失去了相关性,但它仍然是 Mahout 遗产的一部分,并且仍然可以在某些情况下使用。

Apache Spark 如今,Spark已经成为Mahout的首选执行引擎。由于其内存处理能力和丰富的数据转换 API,它使机器学习算法能够与 潜伏期 比 Hadoop 低得多。

轮回:数学核心这个模块可能是 Mahout 的隐藏宝石。 轮回 它是一种富有表现力的线性代数引擎,面向稀疏矩阵,旨在以分布式方式执行操作。

使用 Samsara,您可以:

Apache Mahout 的出色用例尽管不如其他框架那么流行,Apache Mahout 已经在许多实际应用程序中使用,特别是在需要可扩展性的企业环境中。

一些值得注意的例子包括:

推荐系统Mahout 的历史优势之一是创造了 协作推荐系统,类似于亚马逊或 Netflix 所使用的。

由于它专注于分布式算法,因此它可以处理数百万用户和产品而不会失去准确性。

客户分组使用以下算法 k均值 o 模糊K均值Mahout 允许您对大型客户数据库执行聚类分析,以根据他们的行为、个人资料或购买历史对他们进行细分。

文本分类和观点挖掘在需要处理大量文本(例如用户评论、评价或社交帖子)的情况下,Mahout 可以帮助分类情绪、提取主题或识别相关模式。

Mahout 与其他流行工具的比较下面我们看到一个 Mahout 与其他框架的比较表。 机器学习 熟人:

工具主要语言可扩展性个性化易于使用非常适合...阿帕奇驯象师Scala/Java很高高Media分布式系统和大数据Scikit学习Python

低Media高快速成型和中型项目TensorFlowPython/C++高很高中高深度学习和复杂神经网络H2O.aiR/Python高高高自动建模和业务分析MLlib(Spark)Scala/Java很高MediaMedia大数据的内存处理Mahout 在高性能场景中表现出色,其目标不仅仅是训练模型,而是在 分布式和可定制 在企业环境中。

2025 年如何开始使用 Apache Mahout?虽然 阿帕奇驯象师 一开始它可能看起来很吓人,特别是对于那些来自 Python 世界的人来说,但实际上如果你遵循清晰的方法,只需几个小时就可以完成设置。

下面,我将从头开始介绍如何启动和运行 Mahout 的详细过程,并通过实际示例来验证一切是否正常运行。

1. 安装 Apache Mahout 及其依赖项在安装 Mahout 之前,您需要确保您的系统具有所需的基本工具。这里我解释如何准备你的环境:

先决条件安装 JDK(如果还没有)在基于 Debian/Ubuntu 的系统上:

bash复制编辑sudo apt update

sudo apt install openjdk-11-jdk

在 macOS 上使用 Homebrew:

bash复制编辑brew install openjdk@11

检查安装情况:

bash复制编辑java -version

安装 Maven的在Ubuntu中:

bash复制编辑sudo apt install maven

在macOS上:

bash复制编辑brew install maven

验证 Maven 是否正确安装:

bash复制编辑mvn -version

Apache Mahout 下载您 从 Mahout 官方仓库下载最新稳定版本 或者直接从 GitHub上:

bash复制编辑git clone https://github.com/apache/mahout.git

cd mahout

或者,如果您不想使用 Git:

bash复制编辑wget https://downloads.apache.org/mahout/0.14.0/mahout-distribution-0.14.0.tar.gz

tar -xvzf mahout-distribution-0.14.0.tar.gz

cd mahout-distribution-0.14.0

2. 设置您的开发环境(推荐IDE:IntelliJ IDEA)虽然您可以从命令行使用 Mahout,但我建议使用 智能创意 如果您计划使用 Scala 或修改算法。

在 IntelliJ 中配置 Mahout 的基本步骤:您还可以直接从 IntelliJ 运行和调试,如果您配置 亚军 来自 Maven 或 Spark。

3. 探索并运行官方 Mahout 示例Mahout 包含一个真实示例目录,可帮助您了解其工作结构。您可以找到以下示例:

为什么人工智能会对人类的生存构成威胁?没人敢做的分析要运行示例,请按照以下步骤操作:

bash复制编辑cd examples

mvn clean install

然后你可以运行以下命令:

bash复制编辑mahout org.apache.mahout.clustering.kmeans.KMeansDriver -i input -c clusters -o output -dm org.apache.mahout.common.distance.EuclideanDistanceMeasure -k 5 -x 20 -cl

注意:确保文件夹中有输入数据 input 采用预期格式(通常是矢量化)。

4. 使用 Samsara 开发您自己的模型这正是 Mahout 真正擅长的地方。 轮回 是用于分布式线性代数的 DSL(领域特定语言)。它写在 斯卡拉 并允许您有效地操作向量和矩阵。

Samsara 中的基本示例:scala复制编辑import org.apache.mahout.math.scalabindings._

import RLikeOps._

val x = drmParallelize(mhContext, (1 to 100).map(i => dvec(i, i*2)))

val y = x %*% x.t

y.collect.foreach(println)

此示例创建了一个分布式矩阵并执行了矩阵乘法。您可以构建从简单操作到完整的机器学习模型的一切。

开始使用 Samsara 的建议:5. 将您的 Mahout 模型集成到真实的大数据环境中Mahout 的一大优势是它能够直接与生态系统中的其他工具集成 阿帕奇.

一些有用的集成:示例:使用脚本在 Spark 上运行 Mahoutbash复制编辑./bin/mahout spark-shell

从那里您可以使用 Samsara 启动您的 Scala 脚本来测试您的分布式模型。

通过简单的测试检查您的环境为了确保一切正常运行,请创建一个小测试脚本,该脚本生成一个随机数组并执行一个简单的操作,例如 降低 或乘法:

scala复制编辑val m = drmParallelize(mhContext, (1 to 10).map(i => dvec(i, i * 2)))

val result = m.sum

println(result)

如果您获得正确的数值结果,则您的环境已准备好进行大规模建模。

总之,最重要的是要明白 Mahout 不是一个 书店 像 Scikit-learn 一样即插即用,但 面向分布式环境的专业平台 其中性能和定制是关键。

实践:使用 Apache Mahout 的推荐系统(ALS-WR)此示例使用 算法 ALS-WR(带加权正则化的交替最小二乘法) 根据用户和产品之间的互动生成个性化推荐(协同过滤 隐式)。

推荐系统的目标给定用户和他们评论过(或简单使用过)的产品的数据集,系统将推荐每个用户可能感兴趣的产品,即使他们还没有尝试过。

使用的数据集: MovieLens 100k我们将使用著名的数据集 MovieLens 100k,一个包含 100,000 个用户制作的电影评分的真实数据集。

📥 下载数据集bash复制编辑wget https://files.grouplens.org/datasets/movielens/ml-100k.zip

unzip ml-100k.zip

cd ml-100k

步骤 1:为 Mahout 准备数据Mahout 需要以下格式的数据 CSV o TSV 具有以下结构:

nginx复制编辑userID itemID rating

让我们转换文件 u.data 从 MovieLens 转换为该格式:

bash复制编辑cat u.data | tr '\t' ',' > ratings.csv

该文件将包含如下行:

复制编辑196,242,3

186,302,3

22,377,1

第 2 步:转换为 Mahout 矢量格式Mahout 需要以下格式的数据 sequenceFile o DRM,这是其内部使用的分布式格式。我们将使用命令 mahout spark-itemsimilarity 对于这个过程。

首先,如果您正在使用 Hadoop/Spark,请将文件移动到 HDFS:

bash复制编辑hdfs dfs -mkdir -p /mahout/input

hdfs dfs -put ratings.csv /mahout/input/

然后在 Mahout 中运行转换:

bash复制编辑mahout spark-itemsimilarity \

--input /mahout/input/ratings.csv \

--output /mahout/output/model \

--similarityClassname cooccurrence \

--booleanData false \

--tempDir /mahout/tmp

此命令基于以下内容训练模型 项目共现,如果设置为隐式模式,则使用下面的 ALS-WR(激活 --booleanData 如果没有数字评级)。

步骤 3:生成建议训练模型后,您可以为特定用户生成推荐,例如用户 196:

bash复制编辑mahout recommenditems \

--input /mahout/input/ratings.csv \

--output /mahout/output/recommendations \

--numRecommendations 5 \

--userID 196

这将生成一个包含针对用户 5 的 196 条推荐的文件,其中包括电影 ID 和估计评分。

步骤 4:解释结果输出文件 /mahout/output/recommendations 将包含如下内容:

复制编辑196 50:4.8, 101:4.7, 15:4.5, 100:4.3, 181:4.2

这意味着对于用户 196,Mahout 会推荐商品 50、101、15 等, 预言 评级接近5星。

步骤 5:验证和指标要评估模型的质量,您可以:

查看结果您可以使用 Python (大熊猫 + Matplotlib)加载建议文件并将其与文件进行交叉引用 u.item (电影)查看推荐的影片。

python复制编辑import pandas as pd

# Carga títulos

movies = pd.read_csv("ml-100k/u.item", sep="|", encoding="latin-1", header=None, usecols=[0, 1], names=["movie_id", "title"])

# Supongamos que tenemos una lista de IDs recomendados

recommended_ids = [50, 101, 15, 100, 181]

recommended_titles = movies[movies["movie_id"].isin(recommended_ids)]

print(recommended_titles)

如何扩展这个系统?一旦系统经过验证:

目前使用 Mahout 的优点和缺点像任何工具一样, Mahout 有光有影.

以下是根据您当前表现得出的诚实评估:

优点缺点在哪些项目中使用 Apache Mahout 最有意义?Mahout 并不适合所有人。但在以下情况下,这是一个明智的选择:

Apache Mahout 在深度学习时代仍然是一个可行的选择吗?尽管像 TensorFlow 这样的工具, PyTorch Øincluso AutoML 近年来备受瞩目的 对于那些需要构建完全定制的分布式机器学习模型的人来说,Apache Mahout 仍然是一颗隐藏的宝石。.

它并不是适合所有人的解决方案,也不打算成为所有人的解决方案。它的主张很明确:分布式环境中的高性能、可扩展性和灵活性。

如果您知道自己在做什么,并且正在寻找一个可以与您的大数据基础设施无缝集成的平台,那么 Mahout 将是一个强大的战略选择。

En iartificial.blog 我们认为 Mahout 值得再看一眼。这并不是出于怀旧,而是因为它在现代架构中仍然发挥着重要作用,而其他框架根本无法扩展或提供必要的控制级别。

您准备好在下一个开发项目中重新发现 Apache Mahout 了吗? 机器学习 分布式?

❓ 关于 Apache Mahout 的常见问题1. 与 TensorFlow 或 PyTorch 相比,Apache Mahout 是否过时了?未必。尽管 Mahout 并不专注于 神经网络 deep,它的优势在于经典算法的可扩展性和定制性,尤其是在分布式环境中。对于大规模推荐、聚类或分类系统来说,这是一个可行的选择。

2. 使用 Mahout 是否需要了解 Java 或 Scala?是的。 Mahout 主要为熟悉 Java 和 Scala 的开发人员设计。它的 Samsara 引擎是用 Scala 编写的,它的大部分示例和技术文档都集中在这些语言上。

3. 我可以直接将 Apache Mahout 与 Apache Spark 一起使用吗?是的。事实上,Apache Mahout 已经过定制,可以在 Apache Spark 上高效运行,利用其内存架构来提高处理速度。 训练 和模型执行。与其他不易于扩展的工具相比,这种集成是 Mahout 的最大优势之一。

为什么人工智能会对人类的生存构成威胁?没人敢做的分析

微软推出了其新的生成式人工智能“Muse”,它改变了视频游戏的创作方式。