我是.NET开发人员,在我公司中,我们开发了一种引擎,该引擎根据简单的规则(提取地址,交付地址,驱动程序地址,驱动程序的地址)将任务(从A到B的那些程序包传输)分配给最匹配的驱动程序车辆特性(最大重量,长度),行进距离,要运输的包裹类型等)。 该引擎将尽力为用户提供3个最匹配的驾驶员运输任务。
我们正在尝试通过机器学习解决这种情况(数据库中有100000多个任务)。 我们要回答以下问题: -谁是此任务的最佳匹配驱动程序? -此任务的XXX驱动程序的匹配分数是多少?
请注意,随着时间的流逝,我们的驱动程序池也在不断发展(某些驱动程序已被删除,而另一些驱动程序已添加到我们的系统中)。
我正在发现机器学习并学习基本的机器学习算法,但是找不到能回答这个问题的算法。
我想使用新的(仍处于预览状态)Microsoft .NET开发人员(ML.NET)或Azure Machine Learning Studio或Azure Machine Learning Service开发
我们的数据看起来像(简化):
Drivers : Name City VehicleMaxWeight VehicleLength ... StreetName, ZipCode, Country, Latitude, Longitude ... Pierre Paris 19000Kg 12m Francois Bordeaux 26000Kg 12m Guillaume Montpellier 44000Kg 16.50m Jacques Montpellier 32000Kg 16.50m Jean Paris 12000Kg 8m Bernard Montauban 26000Kg 12m Transport mission history : PickupCity DeliveryCity Service TotalWeight TotalLenght DriverAssignment (Distance to PickupCity) Paris Marseille S1 2000Kg 5m Jean (5km) Paris Lyon S2 15000Kg 10m Pierre (8km) Toulouse Lyon S3 5000Kg 5m Bernard (53km) ... ... ... ... ... ... (...) Lyon Paris S2 3000Kg 3m ????????????????
或者如果第一个问题不能轻易解决,那么回答这个问题将很有用: 鉴于以下历史记录,我可以选择从里昂去巴黎以进行S2服务?
Transport mission history : PickupCity DeliveryCity Service DriverAssignment Paris Marseille S1 Jean Paris Lyon S2 Pierre Toulouse Lyon S3 Bernard ... ... ... ... Lyon Paris S2 ????????????????
我会尝试预测列
DriverAssignment
能否请您帮我找到此任务的算法?也许我如何在ML.NET或Azure ML Studio / Service中实现它?
谢谢!
答案 0 :(得分:0)
如果要使用ML,则可以将其表达为推荐系统问题:给定与任务相匹配的驾驶员顺序,那么下次该任务再次出现时应推荐哪些驾驶员?基于内容的协作过滤推荐系统均可使用。如果任务完全是新任务(没有匹配历史记录),则仍可以使用协作过滤。
但是,OR可能更适合此问题。 ML的基本假设是:过去的操作实践(您共享的数据)是最佳的;这是机器学习将作为良好实践学习的知识,并将随后用于提出未来的建议。除非使用强化学习,否则您需要提出一些累积奖励的概念。