用户物联网设置偏好的自适应学习

数据挖掘 机器学习
2022-02-25 08:39:00

我们正在开展一个项目来预测用户正在使用的物联网设备(风扇/灯/交流电)的设置,基于他的:位置、室外温度、湿度、一天中的时间等......

训练数据不可用,模型应该在每次用户使用物联网设备时开始构建/调整,以预测他在任何新环境中的首选设置。该模型对于每个用户都是唯一的。可能我们可以从演示模型开始,但它应该根据每个用户的喜好自行调整。

哪种(机器?)学习算法在这里有用?任何指向相同内容的链接和一些实施技巧将不胜感激。

1个回答

这听起来像是一个有趣的问题,但它非常开放!我将提供Scikit-Learn 用户指南中的一些链接。还有更多阅读选择,但 SKL 用户指南有很多示例,并且通常链接到学术出版物以进行更深入的阅读。另一个很棒的资源是:统计学习简介,如果你擅长数学:统计学习的要素

型号选择

第一个大问题是您尝试预测的设置是有序值还是连续值?连续值将允许您使用回归方法,而序数值将让您在回归方法和分类方案之间进行选择。我建议使用几个不同的模型开始,然后选择最好的一个继续前进。一些可能的候选人是:

  1. 线性回归(适当的非线性特征),因为线性模型通常很有洞察力,
  2. 支持向量分类/回归 ( SVC / SVR ),因为它们通常是非常准确的分类器。并且要么
  3. 朴素贝叶斯随机森林通常会在其他模型失败的情况下提供良好的结果。

初始训练数据

您将需要使用一些确定性数据或来自您已适应模型的另一个数据集的数据来启动您的解决方案。我建议用常识值启动系统,然后在系统训练有素时使用某种算法来忘记这些值。

向前进

您必须决定每个用户的模型是否会使用其他用户的数据。这有时可以通过聚类方法(如k-meansDBSCAN)来解决,其中用户被聚类成组,每个聚类都有与之关联的不同模型。我建议最初在常规时间框架内重新训练(拟合)模型,然后研究转向在线学习系统的可能性。

我绝对建议使用一个众所周知的库来解决您的问题。由于上述原因和原型设计,Scikit-Learn 非常棒,但扩展性不是特别好。H20Mahout是我推荐用于大数据生产系统的高质量可扩展库。 Mahout in Action也是一本值得学习的好书。

希望这可以帮助!