Azure 根据当前日期和时间预测用户的下一个操作

Azure 根据当前日期和时间预测用户的下一个操作,azure,machine-learning,analytics,azure-machine-learning-studio,Azure,Machine Learning,Analytics,Azure Machine Learning Studio,我正在使用Microsoft Azure Machine Learning Studio尝试一个实验,在这个实验中,我使用以前捕获的关于用户的分析(在某个时间、某一天)来尝试和预测他们的下一个操作(基于日期和时间),以便我可以相应地调整UI。因此,如果用户通常在每周四下午1点访问某个页面,那么我想预测这种行为 警告-我是ML的完全新手,但已经看过不少视频,并完成了一些教程,如电影推荐示例 我有一个包含userid、action、datetime的csv数据集,我想训练一个火柴盒推荐模型,从我的研

我正在使用Microsoft Azure Machine Learning Studio尝试一个实验,在这个实验中,我使用以前捕获的关于用户的分析(在某个时间、某一天)来尝试和预测他们的下一个操作(基于日期和时间),以便我可以相应地调整UI。因此,如果用户通常在每周四下午1点访问某个页面,那么我想预测这种行为

警告-我是ML的完全新手,但已经看过不少视频,并完成了一些教程,如电影推荐示例

我有一个包含userid、action、datetime的csv数据集,我想训练一个火柴盒推荐模型,从我的研究来看,这是最好的模型。我看不到在培训中使用日期/时间的方法。这个想法是,如果我可以传递一个用户ID和日期,那么推荐模型应该能够给我一个用户最有可能做什么的结果

我从预测终点获得结果,但训练终点给出以下错误:

{
“错误”:{
“代码”:“ModuleExecutionError”,
“消息”:“模块执行遇到错误。”,
“详情”:[
{
“代码”:“18”,
“目标”:“火车火柴盒推荐人”,
“消息”:“错误0018:用户项目评级三元组的培训数据集包含无效数据。”
}
]
}

}
因此,我想我暂时不去想这件事,也许可以看出问题的症结所在。我认为火车火柴盒推荐器的前三个输入需要填写,以便准确预测。我还将包括推荐餐厅的样本截图

第一个输入是由用户、项目和评级组成的数据集。

第二个输入是每个用户的功能。

第三个输入是每个功能的功能(本例中为餐厅)。

因此,为了帮助解决日期/时间问题,我想知道是否需要对数据进行筛选,以匹配类似于餐厅和用户数据的内容

我知道这并不多,但我希望它能帮助你走上正确的道路。

也许会有帮助,你也可以看看你可以阅读的地方:

问题可能在于评级数据的范围。评级范围有一个上限,因为如果最小和最大评级之间的范围太大,培训成本就会很高

[……]

一种选择是将评级范围缩小

根据此MSDN,请注意,最小和最大注释之间的间隙不能大于
100

因此,您必须对csv文件列数据(用户ID、操作、日期时间等)进行预处理,以便将所有列数据保持在
[0-99]
范围内

请参见下面的Python实现(以共享逻辑):

这给了你:

[26.54494382022472, 0.0, 40.449438202247194, 28.18820224719101, 14.094101123595506, 70.3061797752809, 29.71769662921348, 29.76825842696629, 30.526685393258425, 30.31179775280899, 33.05477528089887, 44.924157303370784, 30.526685393258425, 29.995786516853933, 30.27387640449438, 41.01825842696629, 92.90730337078652, 29.742977528089888, 33.813202247191015, 70.71067415730337, 99.0]
请注意,所有数据现在都在
[0,99]
范围内


遵循此过程:

  • 用户id可以是浮点,而不是整数

  • 动作是整数(如果得到的动作少于100个)或浮点(如果得到的动作多于100个)

  • Datetime将拆分为两个整数(或一个整数和一个浮点),请参见以下内容:


关于:

(A) 在培训中使用日期/时间的方法

您可以将日期时间拆分为两列,如:

  • 工作日的一列:

    • 0:星期日
    • 1:星期一
    • 2:星期二
    • [……]
    • 6:星期六
  • 一列表示一天中的时间:

    • 0:00:00-00:15之间
    • 1:00:15-00:30之间
    • 2:00:30-00:40之间
    • [……]
    • 95:23:45至00:00之间

如果您需要更好的粒度(这里是一个15分钟的窗口),您也可以使用float number作为时间列。

是否可以在ML Studio中显示您的工作流?我最初的想法是如何将这些功能构建到模型中,但不能确定。:)当然,但它的价值很小,因为它离功能还很远,我也会向您的数据推荐它。这在评估模型的性能时应该会有所帮助。
[26.54494382022472, 0.0, 40.449438202247194, 28.18820224719101, 14.094101123595506, 70.3061797752809, 29.71769662921348, 29.76825842696629, 30.526685393258425, 30.31179775280899, 33.05477528089887, 44.924157303370784, 30.526685393258425, 29.995786516853933, 30.27387640449438, 41.01825842696629, 92.90730337078652, 29.742977528089888, 33.813202247191015, 70.71067415730337, 99.0]