gpt4 book ai didi

machine-learning - "similar enough"对象的指标

转载 作者:行者123 更新时间:2023-11-30 08:43:59 26 4
gpt4 key购买 nike

假设我们有两个信号空间 S1 和 S2,每个信号空间包含数百个甚至数千个信号。 S1 是给定系统(飞机、汽车等)发送或接收的所有信号,S2 是系统内部子系统的软件模块发送或接收的所有信号。每个信号都有一组特定的数十个属性,例如信号名称、周期时间、电压等。

现在我想检查 S1 中的每个信号在 S2 中是否至少有一个表示,这意味着 S1 中信号的所有属性都等于 S2 中信号的所有属性。一开始这听起来很简单,因为人们可以迭代信号及其属性并检查某处是否存在等效信号。但事实证明,两侧(S1 和 S2 信号)可能存在错误的规范,因此无法识别属于在一起的信号对。

示例:

K1 = {名称:= CAN_1234_UHV;电压:=0.8毫伏;周期=100ms}

D1 = {名称:= CAN_1234_UH;电压:=0.8mV;周期=100 毫秒}

人类可以很容易地看出这两个信号可能非常适合在一起,尽管存在一些拼写错误。

所以我所做的是设计一种算法,计算每个属性的字符串的距离度量,将相似性映射到该特定属性等于其他信号的相同属性的某种概率,计算平均值并分类如果此概率达到某个阈值,则信号相等。

这产生了可怕的结果,因为两个信号可以被归类为相等,因为某些属性具有在信号空间中非常常见的值。因此,下一步是对这些属性进行加权(信号名称比周期时间更适合识别信号)。

这整个过程对我来说似乎相当随意,因为我真的不知道会产生良好结果的概率和权重。所以我有一种感觉,这个问题可以通过机器学习算法来解决,因为它可以从训练数据中得出概率和权重。

因此,总而言之,使用机器学习算法将信号识别为“足够相似”以便将它们归类为相等是否可行。我知道这个问题不能笼统地回答,我更感兴趣的是“直觉”和“插入正确的方向”。

提前致谢

最佳答案

解决方案 1 -您可以使用 Apache Solr。

  • 您可以在 Apache Solr 中保存(索引)所有信号,其中信号的每个属性都将存储为 Solr 的字段。

    Example:
    K1 = {Name:= CAN_1234_UHV; Voltage:= 0.8 mV; Cycle=100ms}
    D1 = {Name:= CAN_1234_UH; Voltage:= 0.8mV; Cycle=100 ms}

    K1 and D1 is a document in Solr. Name, Voltage, Cycle will be Solr's Field.
  • 然后您可以使用 Solr 的 MoreLikeThis 功能来识别相似的信号。

<小时/>

This yielded terrible results because two signals could be classified as equal because certain properties had values that were very common in the signal space. So the next step would be to weight these properties (signalname is better suited than cycle time to identify the signal).

为此请检查下面的mlt.qf

Solr 为 MoreLikeThis 提供了许多通用参数,可以根据您的需要进行调整。

  • mlt.fl 指定用于相似性的字段。如果可能的话,这些应该已经存储了 termVector。
  • mlt.mintf 指定最短期限频率,低于该频率的项将在源文档。
  • mlt.mindf 指定最小文档频率,未出现在 at 中的单词将被忽略的频率至少这么多文件。
  • mlt.maxdf 指定最大文档频率,出现的单词被忽略的频率不止这么多文档。
  • mlt.minwl 设置最小字数长度低于该长度的单词将被忽略。
  • mlt.maxwl 设置最大值单词长度超过该长度的单词将被忽略。
  • mlt.maxqt 设置将包含在任何生成的查询项中的最大数量查询。
  • mlt.maxntp 设置每个中要解析的最大标记数未使用 TermVector 支持存储的示例文档字段。
  • mlt.boost 指定是否将通过感兴趣的内容来增强查询术语相关性。它可以是“真”或“假”。
  • mlt.qf 查询字段及其增强使用与 DisMaxRequestHandler 使用的格式相同的格式。这些字段也必须在 mlt.fl 中指定。

解决方案 2 -编写您自己的解决方案。

您可以使用这些算法为此问题编写自定义解决方案。

  • Levenshtein Distance - 非正式地,两个单词之间的编辑距离是将一个单词更改为另一个单词所需的单字符编辑(即插入、删除或替换)的最小次数。
  • Hamming Distance - 在信息论中,两个等长字符串之间的汉明距离是对应符号不同的位置数。
  • Smith–Waterman-algorithm - Smith–Waterman算法执行局部序列比对;也就是说,用于确定两个字符串或核苷酸或蛋白质序列之间的相似区域。 Smith–Waterman 算法不是查看整个序列,而是比较所有可能长度的片段并优化相似性度量。
  • Sørensen–Dice Coefficient - 是用于比较两个样本相似度的统计量

关于machine-learning - "similar enough"对象的指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39566172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com