🚀 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”,它改变了视频游戏的创作方式。