Python分类与分数序列匹配

2024-10-03 04:32:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个程序,在这个程序中,根据给定的分数数据集(即person 1在不同的测试中的分数是3,15,6,7,4,3,因此是C类型),比较person n的一组新分数,并确定这个人的类型(a-C)。对于分类,我想沿着机器学习的路线走,但我也想确定最接近于人n的人ID和最不相似的人ID(分数不太可能相同,我需要找到最接近的)。我在考虑使用levenshteinpythoncextension或SequenceMatcher,有人对我如何进行分类和匹配有什么建议吗? 提前谢谢


Tags: 数据程序机器id类型分类路线分数
1条回答
网友
1楼 · 发布于 2024-10-03 04:32:46

根据你的描述,不要认为测试是序列。考试的顺序对回答你的问题很重要吗?你知道吗

假设它们没有顺序或顺序不重要,可以将每个测试视为向量空间中的一个维度,例如:

            test1   test2   test3   class
person1       3       0       1       A
person2       5       7       9       C

对于分类问题,可以尝试使用线性回归或随机森林等有监督学习模型。你知道吗

为了找到最近的邻居,只需计算每对人之间的余弦相似度。分数1 - similarity可以用来找到最远的人。余弦相似性的替代方法包括欧几里德距离。你知道吗

下面是计算余弦相似性的简单Python代码:

def dot(v1, v2):
    return sum([x1*x2 for x1, x2 in zip(v1, v2)])

p1 = [3, 0, 1]
p2 = [5, 7, 9]
cosine = dot(p1, p2) / ((dot(p1, p1) ** 0.5) * (dot(p2, p2) ** 0.5))

相关问题 更多 >