寻找洞察力并应用 ML 流程

Posted

技术标签:

【中文标题】寻找洞察力并应用 ML 流程【英文标题】:Finding insight and apply ML process 【发布时间】:2020-04-08 12:48:27 【问题描述】:

所以我仍然是 pandas 和 scikit-learn 的新手,并且已经完成了作业,以找到对给出的样本数据的任何见解。我得到的唯一线索是,部分见解应该与机器学习有关。

我查过数据后发现有很多不一致的地方。这是一个包含 2 列、地址和发货日期的一周发货数据。我遇到了地址列数据不一致的问题,这里是示例:

+--------------------------------+--------------+
|           to_address           | booking_date |
+--------------------------------+--------------+
| 52426 E. La Palma, Anaheim, CA | 11-12-17     |
| 52511 Blvd, Avn. Californi     | 12-12-17     |
|                                | 13-12-17     |
| 600 S.***hurst UTAH          | 14-12-17     |
| 190 E.Stacy Rd.,Allen,Texas    | 15-12-17     |
| 1075 W. I-20, Tex              | 15-12-17     |
+--------------------------------+--------------+

如您所见,地址输入有很多不一致的地方。有些地址的状态可以用逗号分隔,有些则没有。有些地址有完整的状态,有些缺少几个字符。地址列中还有空格和 \n 格式。到目前为止,我一直在清理这个地址列,方法是删除空格,从地址中删除 \n 格式,并通过用逗号分割地址列并获取最后一个索引来创建状态列(tbh,它不是很好,因为打字不一致)。

我的问题是,我在清理数据方面的工作方向是否正确?如何在这类数据中使用 seaborn 进行探索性数据分析以获得可能的洞察力? (我尝试过按预订日期使用计数图,它显示了 12 月 12 日和 15 日之间的巨大差距,这是洞察力吗?)。它真的适用于机器学习分类算法吗?

任何有用的方向都会非常棒,谢谢。

【问题讨论】:

【参考方案1】:

机器学习任务不是为了提供见解。您的任务是使用机器学习提供见解,这只是一种工具。 ML 不会告诉你用哪个算法来回答你的问题,你应该想出问题然后选择哪个算法正确回答你的问题,通常有几个。

在您的情况下,您有 2 列限制了 ML 可以帮助您提供见解的功能,因为只有两个参数,并且输出清晰不是问题。例如根据各种参数的流失或选举投票。

在我看来,这些任务不需要机器学习来提供洞察力,简单的统计模型就足够了。

什么可能让你走上正轨:

    什么时候预订最多? 目的地和预订日期之间是否存在关联? 哪个州的订单最多? 西海岸的订单比东海岸的多吗? 寒冷/炎热气候的国家是否订购更多?

由于您只有 2 列,因此您必须为您的 to_address 列创建额外的数据。比如是西海岸还是东海岸?国家是富还是穷?以此类推,您创建的额外数据点越多,您能够提供的见解就越有价值。

高级:

您可以创建目的地的交互式图表,并根据每个州每天的订单数对其进行着色。这将清楚地显示您的订单是如何处理的。

洞察力是可以回答业务问题或提出新问题的任何内容。所以说“大多数订单都在加利福尼亚”是一种洞察力,就像“大多数订单在星期一处理”一样。是很好的洞察力吗?这取决于您和企业来决定。由于缺乏更多数据,拥有您的数据我不希望有很多有价值的见解。

对于未来的参考,机器学习不应该应用在没有任何价值的地方,通常,统计数据就足够了。

编辑

你可以使用:

df['zipcode'] = df['to_address'].apply(lambda x:x.split(' ')[0])

使用邮政编码创建列。

【讨论】:

以上是关于寻找洞察力并应用 ML 流程的主要内容,如果未能解决你的问题,请参考以下文章

带有 Node.js 连接错误的 MongoDB (Mongoose) - 寻找洞察力

如何使用应用程序洞察力进行分布式跟踪/跟踪

在Cortex R5上快速输出用户数据

将 nginx 反向代理连接到应用程序洞察力

应用洞察和流分析

Azure 中应用程序洞察数据的来源?