目 录CONTENT

文章目录

在低资源环境下构建智能机器学习:实用策略与案例解析

Administrator
2026-03-12 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://machinelearningmastery.com/building-smart-machine-learning-in-low-resource-settings/

原文作者:Nate Rosidi


在本文中,您将学习在计算能力有限、数据不完美且工程支持极少的情况下,构建实用机器学习解决方案的策略。

我们将涵盖的主题包括:

  • “低资源”在实际中意味着什么。
  • 在受限环境下,轻量级模型和简单工作流为何常常优于复杂模型。
  • 如何处理混乱和缺失的数据,以及在小型数据集上依然有效的小型迁移学习技巧。

让我们开始吧。

Building Smart Machine Learning in Low-Resource Settings

在低资源环境下构建智能机器学习
图片由作者提供

大多数想要构建机器学习模型的人,并没有强大的服务器、干净的数据或全栈的工程师团队。特别是如果您生活在农村地区并经营一家小型企业(或者您才刚刚起步,工具非常有限),您可能无法获得太多资源。

但您仍然可以构建强大、有用的解决方案。

许多有意义的机器学习项目发生在计算能力有限、互联网不可靠的地方,“数据集”看起来更像是装满手写笔记的鞋盒,而不是 Kaggle 竞赛。但那也是一些最巧妙的想法得以实现的地方。

在这里,我们将讨论如何在这些环境中实现机器学习,并借鉴真实项目中的经验,包括在 StrataScratch 等平台上看到的智能模式。

Machine Learning in Low-Resource

低资源到底意味着什么

总而言之,在低资源环境下工作可能看起来像这样:

  • 过时的或运行缓慢的计算机
  • 不稳定或无互联网连接
  • 不完整或混乱的数据
  • “数据团队”只有一人(可能就是您)

这些限制可能感觉很受限,但您的解决方案仍有很大的潜力变得智能、高效,甚至富有创新性。

轻量级机器学习实际上是一种强大的策略

事实是,深度学习获得了大量关注,但在低资源环境中,轻量级模型是您的最佳选择。逻辑回归、决策树和随机森林听起来可能有点过时,但它们能胜任工作。

它们速度快。它们可解释。并且它们在基本硬件上运行得非常好。

此外,当您为农民、店主或社区工作者构建工具时,清晰度至关重要。人们需要信任您的模型,而简单的模型更容易解释和理解。

使用经典模型常见的成功案例:

  • 作物分类
  • 预测库存水平
  • 设备维护预测

所以,不要追求复杂性。优先考虑清晰度。

将混乱的数据变成魔法:特征工程入门

如果您的数据集有些(或很多)混乱,欢迎加入我们。损坏的传感器、缺失的销售记录、手写笔记……我们都经历过。

以下是如何从混乱的输入中提取意义:

1. 时间特征

即使是时间戳不一致也可以很有用。将其分解为:

  • 星期几
  • 距离上次事件的时间
  • 季节性标志
  • 滚动平均值

2. 分类分组

类别太多?您可以将它们分组。例如,跟踪每个产品名称,不如尝试“易腐品”、“零食”或“工具”。

3. 基于领域的比率

比率通常优于原始数字。您可以尝试:

  • 每英亩的肥料用量
  • 每单位库存的销售额
  • 每株植物的水用量

4. 稳健的聚合

使用中位数而不是平均数来处理极端异常值(如传感器错误或数据录入错误)。

5. 标志变量

标志是您的秘密武器。添加诸如“手动更正的数据”、“传感器电池电量低”或“估计值而非实际值”之类的列。

它们为您的模型提供了重要的上下文。

数据缺失?

数据缺失可能是一个问题,但并非总是如此。它可能是伪装的信息。重要的是要谨慎且清晰地处理它。

将缺失视为信号

有时,未填写的内容讲述了一个故事。如果农民跳过某些条目,可能表明了他们的情况或优先事项。

坚持简单的插补

使用中位数、众数或向前填充。复杂的、多模型的插补?如果您的笔记本电脑已经吃不消了,就跳过它。

利用领域知识

领域专家通常有明智的规则,例如使用种植季节的平均降雨量或已知的假日销售高峰。

避免复杂的链式操作

不要试图用一切来插补一切;这只会增加噪音。定义几个可靠的规则并坚持下去。

数据量小?认识迁移学习

这是一个很棒的技巧:您不需要庞大的数据集也能从“大联盟”中获益。即使是简单的迁移学习形式也能大有裨益。

文本嵌入

有检查记录或书面反馈?使用小型预训练嵌入。以低成本获得巨大收益。

全局到局部

采用一个全局的“天气-产量”模型,并使用少量本地样本进行调整。线性调整就能产生奇效。

从基准数据中进行特征选择

利用公共数据集来指导包含哪些特征,特别是当您的本地数据混乱或稀疏时。

时间序列预测

借鉴全球趋势的季节性模式或滞后结构,并为您的本地需求进行定制。

真实案例:低资源农业中的智能作物选择

轻量级机器学习的一个有用说明来自一个 StrataScratch 项目,该项目处理了来自印度的真实农业数据。

Machine Learning in Low-Resource

该项目的目标是推荐适合农民实际耕作条件的作物:混乱的天气模式、不完美的土壤,等等。

其背后的数据集规模适中:约 2,200 行。但它涵盖了重要的细节,如土壤养分(氮、磷、钾)和 pH 值,以及基本的が气候信息,如温度、湿度和降雨量。以下是数据样本:

Machine Learning in Low-Resource

我们没有采用深度学习或其他复杂方法,而是有意识地保持分析的简洁性。

我们从一些描述性统计数据开始:

1
df.info()

Machine Learning in Low-Resource

1
df.select_dtypes(include=['int64', 'float64']).describe()

Machine Learning in Low-Resource

然后,我们进行一些可视化探索:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Setting the aesthetic style of the plots
sns.set_theme(style="whitegrid")
 
# Creating visualizations for Temperature, Humidity, and Rainfall
fig, axes = plt.subplots(1, 3, figsize=(14, 5))
 
# Temperature Distribution
sns.histplot(df['temperature'], kde=True, color="skyblue", ax=axes[0])
axes[0].set_title('Temperature Distribution')
 
# Humidity Distribution
sns.histplot(df['humidity'], kde=True, color="olive", ax=axes[1])
axes[1].set_title('Humidity Distribution')
 
# Rainfall Distribution
sns.histplot(df['rainfall'], kde=True, color="gold", ax=axes[2])
axes[2].set_title('Rainfall Distribution')
 
plt.tight_layout()
plt.show()

Machine Learning in Low-Resource

最后,我们运行一些 ANOVA 测试,以了解环境因素在不同作物类型之间如何存在差异:

湿度 ANOVA 分析

1
2
3
4
5
6
7
8
9
10
# Define crop_types based on your DataFrame 'df'
crop_types = df['label'].unique()
 
# Preparing a list of humidity values for each crop type
humidity_lists = [df[df['label'] == crop]['humidity'] for crop in crop_types]
 
# Performing the ANOVA test for humidity
anova_result_humidity = f_oneway(*humidity_lists)
 
anova_result_humidity

Machine Learning in Low-Resource

降雨量 ANOVA 分析

1
2
3
4
5
6
7
8
9
10
# Define crop_types based on your DataFrame 'df' if not already defined
crop_types_rainfall = df['label'].unique()
 
# Preparing a list of rainfall values for each crop type
rainfall_lists = [df[df['label'] == crop]['rainfall'] for crop in crop_types_rainfall]
 
# Performing the ANOVA test for rainfall
anova_result_rainfall = f_oneway(*rainfall_lists)
 
anova_result_rainfall

Machine Learning in Low-Resource

温度 ANOVA 分析

1
2
3
4
5
6
7
8
9
10
# Ensure crop_types is defined from your DataFrame 'df'
crop_types_temp = df['label'].unique()
 
# Preparing a list of temperature values for each crop type
temperature_lists = [df[df['label'] == crop]['temperature'] for crop in crop_types_temp]
 
# Performing the ANOVA test for temperature
anova_result_temperature = f_oneway(*temperature_lists)
 
anova_result_temperature

Machine Learning in Low-Resource

这个小规模、低资源的项目反映了农村农业中的现实挑战。我们都知道天气模式并非一成不变,气候数据也可能不完整或不一致。因此,我们没有使用复杂的模型去“碰运气”,而是手动深入研究了数据。

也许这种方法最有价值的方面是其可解释性。农民不需要不透明的预测;他们需要可以采取行动的指导。诸如“这种作物在高湿度下表现更好”或“那种作物更喜欢干燥条件”之类的陈述,将统计发现转化为实际决策。

整个工作流程都非常轻量级。没有炫酷的硬件,没有昂贵的软件,只有像 pandas、Seaborn 和一些基础统计测试这样可靠的工具。一切都在普通的笔记本电脑上顺利运行。

核心分析步骤使用了 ANOVA 来检查湿度或降雨量等环境条件在不同作物类型之间是否存在显著差异。

在许多方面,这体现了低资源环境中机器学习的精神。这些技术仍然是脚踏实地的、计算量温和的,并且易于解释,但它们仍然能提供有价值的见解,即使没有先进的基础设施,也能帮助人们做出更明智的决策。

给低资源环境下的有志数据科学家

您可能没有 GPU。您可能在使用免费的工具。您的数据可能看起来像一个缺失了拼图碎片的问题。

但关键是:您正在学习许多人忽略的技能:

  • 真实世界的数据清洗
  • 凭直觉进行特征工程
  • 通过可解释的模型建立信任
  • 聪明地工作,而不是花哨地工作

优先考虑这些:

  1. 干净、一致的数据
  2. 有效的经典模型
  3. 周到的特征
  4. 简单的迁移学习技巧
  5. 清晰的记录和可复现性

归根结底,这就是优秀数据科学家所做的工作。

结论

Machine Learning in Low-Resource
图片由作者提供

在低资源机器学习环境中工作是可行的。它要求您富有创造力,并对您的使命充满热情。归根结底是找到信号中的噪音,并解决能够让真实人们的生活更轻松的实际问题。

在本文中,我们探讨了在处理此类情况时,轻量级模型、智能特征、对缺失数据的诚实处理以及对现有知识的巧妙复用,如何帮助您取得进展。

您有什么想法?您是否曾在低资源环境下构建过解决方案?




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区