【问题标题】:Data Analytics: Group Value Streams acc. to Similarity数据分析:集团价值流acc。相似度
【发布时间】:2020-03-14 16:26:51
【问题描述】:

我和我的同事(都是机械工程师)喜欢学习 Python 并解决新的有趣问题。

我们的问题:我们想要分析我们组件的价值流 (> 50.000) 并根据它们价值流的相似性对它们进行分组。

举个例子 - 假设我们有三种材料 A、B 和 C,数据如下:

A = [610384, 521056, 112200, 194825633, 45]

B = [10389, 462, 1028503]

C = [10389, 462, 1028503, 112200, 45, 194825633]

每个数组代表一个价值流​​,价值流中的每个元素都是一台机器。例如,A 必须运行超过 5 台机器才能生产。 “610384”是价值流中第一台机器的编号。如您所见,A 和 B 与 C 相似,因为 B 是 C 的 100% 子流,但 A 包含 3 台相同的机器,但顺序不同。

约束:

  • 数字根本没有意义 -> 不能根据大小或任何东西进行比较

  • 数组有不同的长度,元素也不同

  • 数组可以包含子数组或以不同的顺序等。一切皆有可能(我们正在探索数据集)。

  • 我们可以分4个等级,从上到下等级:技术、工艺描述、工艺描述细节、机器号->含义:机器号10389和462根本不相等,但两台机器都用过“钻”孔。所以第 2 级(过程描述)将是相等的。所以,我们可以用它来评价它们不是 100% 或 0% 相等,但可能在这台机器上给它们 30% 的相似性(不是整个价值流!)。

4 级示例:手动钻孔 (1) -> 钻孔 (2) -> 钻孔 90 度 (3) -> 机器编号 462 (4)

问题:

  1. 我们应该如何评价每个价值流?考虑到不同的长度等

  2. 我们如何以有用的方式对给定的评分进行聚类?

我们应该使用合适的算法吗?我们需要自己定义规则吗?如果是这样,你能推荐任何读物吗?

我们的目标:将相似的价值流归为一组,这样我们就可以看到我们的价值流高速公路,看看是否应该移动机器。

PS:这是来自 Reddit r/analytics 的调整后转帖

【问题讨论】:

    标签: python stream analytics production


    【解决方案1】:

    这可能是我的部分解决方案,

    我使用了以下缩写。评分:

    md - 手动钻孔 ,d - 钻孔 ,30 or 45 or 60 - 一定程度的钻孔

    1) 机器 10389 等级 : 'md-d-90-10389' # 手动钻孔 + 钻孔 + 90 度

    2) 机器 462 等级:'md-d-45-462' # 手动钻孔 + 钻孔 + 45 度

    import fuzzywuzzy
    from fuzzywuzzy import process
    matches = fuzzywuzzy.process.extract('md-d-90-10389',['md-d-45-462'],scorer=fuzzywuzzy.fuzz.token_sort_ratio)
    print(matches[0][1], '%')
    

    输出: 33%

    有很多方法可以做到这一点,例如余弦相似度或 Jaccard 相似度。 我们可以先试试这个。

    如果相似度大于 80%,我们只保留两台机器中的一台。 例如:让我们只取 2 个价值流 A 和 C。如果 521056 和 10389 的相似度为 80%,那么我们可以仅出于简化目的而丢弃其他的。 让我们保留 10389。

    A = [610384, 10389, 112200, 194825633, 45] # 将 521056 替换为 10389

    C = [10389, 462, 1028503, 112200, 45, 194825633]

    然后我们可以检查 A 和 C 之间的余弦相似度来评估价值流的接近度。

    【讨论】:

    • 感谢您的帮助。但是,您的答案是不是错误地认为具有相似数字的机器的评级比具有不同数字的机器更接近?举个例子: A = md-d-90-99999999 B = md-d-90-10389 C = tt-x-50-10388 在这里,由于机器编号的高度相似性,B 到 C 可能更相似(什么也没说)。但是 B 和 C 应该被评为非常不相似,因为技术完全不同。
    • 一种解决方案是在评级比较阶段排除机器名称。首先将它们的实际名称存储在字典中以供参考,然后删除机器名称以进行匹配操作。 A = md-d-90, B = md-d-90, C = tt-x-50 , 现在在这种情况下 B 和 C 将完全不同。
    • 评论中的上述解决方案能解决您的问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    • 1970-01-01
    • 2022-12-07
    • 2019-05-21
    • 2015-09-30
    相关资源
    最近更新 更多