gpt4 book ai didi

machine-learning - 如何将连续的 cosine-theta 分数压缩为离散的 (0/1) 输出?

转载 作者:行者123 更新时间:2023-11-30 09:31:24 26 4
gpt4 key购买 nike

我实现了一个 cosine-theta 函数,它计算两篇文章之间的关系。如果两篇文章非常相似,那么单词应该包含相当多的重叠。然而,余弦 theta 分数 0.54 并不意味着“相关”或“不相关”。我最终应该得到一个明确的答案,0 代表“不相关”,1 代表“相关”。

我知道有 sigmoid 和 softmax 函数,但我应该找到给予这些函数的最佳参数,并且我不知道这些函数是否是令人满意的解决方案。我想我有余弦θ分数,我可以计算两个句子之间的重叠百分比(例如,重叠单词的数量除以文章中的单词数量),也许还有一些更有趣的事情。然后有了数据,我也许可以编写一个函数(我不知道什么类型的函数,这是问题的一部分!),之后我可以通过 SciPy 库最小化错误。这意味着我应该进行某种监督学习,并且我愿意用标签 (0/1) 来标记文章对以训练网络。这值得付出努力吗?

        # Count words of two strings.
v1, v2 = self.word_count(s1), self.word_count(s2)
# Calculate the intersection of the words in both strings.
v3 = set(v1.keys()) & set(v2.keys())

# Calculate some sort of ratio between the overlap and the
# article length (since 1 overlapping word on 2 words is more important
# then 4 overlapping words on articles of 492 words).
p = min(len(v1), len(v2)) / len(v3)

numerator = sum([v1[w] * v2[w] for w in v3])

w1 = sum([v1[w]**2 for w in v1.keys()])
w2 = sum([v2[w]**2 for w in v2.keys()])

denominator = math.sqrt(w1) * math.sqrt(w2)

# Calculate the cosine similarity
if not denominator:
return 0.0
else:
return (float(numerator) / denominator)

如上所述,我想使用 p 和余弦 theta 分数等变量来生成准确的离散二进制标签(0 或 1)。

最佳答案

As said, I would like to use variables such as p, and the cosine theta score in order to produce an accurate discrete binary label, either 0 or 1.

这里真正归结为您所说的准确性。除非您有带标签的数据集,否则由您选择重叠如何影响两个字符串是否“匹配”。如果您有一个带标签的数据集(即一组带有 0 或 1 标签的字符串对),那么您可以训练二元分类算法并尝试基于该算法进行优化。由于您的问题可能具有高维、分类性质,我会推荐神经网络或 SVM 之类的东西。

然而,即使是优化也是一种主观衡量。例如,理论上,我们假设您有一个模型,在 100 个样本中仅预测 1 个答案(给出 99 个未知数)。从技术上讲,如果这个答案是正确的,那么该模型的准确度为 100%,但召回率非常低。一般来说,在机器学习中,您会发现召回率和准确性之间存在权衡。

有些人喜欢寻求将两者结合起来的某些指标(其中最著名的是 F1 score ),但老实说,这取决于应用程序。如果我有一个固定预算的营销事件,那么我更关心准确性 - 我只想针对可能购买我的产品的消费者。然而,如果我们想要测试致命疾病或银行欺诈标记,那么该测试的准确率可能只有 10% - 如果其对真阳性的召回率接近 100%。

最后,如果您没有标记数据,那么您最好的选择就是定义一些您认为表明良好匹配的截止值。这将更类似于二元聚类问题,您可以使用一些更抽象的度量(例如到质心的距离)来测试该点属于哪个簇(“相关”或“不相关”簇)。但请注意,在这里您的功能感觉很难定义。

关于machine-learning - 如何将连续的 cosine-theta 分数压缩为离散的 (0/1) 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56466247/

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