Python - 分数的分类和序列匹配器

时间:2018-06-06 05:37:19

标签: python machine-learning pattern-matching match classification

我在Python中编写一个程序,根据给定的分数数据集(即人1在3,15,6,7,4,3的不同测试中得分,因此是一种类型) C),比较人n的一组新分数并确定该人的类型(AC)。对于分类,我想考虑下机器学习路线,但我也想确定与人n最接近的人ID,哪个是最不相似的(分数不太可能相同) ,我需要找到最近的)。我在考虑使用Levenshtein Python C扩展或SequenceMatcher,有没有人对我如何进行分类和匹配有任何建议或建议? 提前致谢

1 个答案:

答案 0 :(得分:0)

根据您的描述,不要认为测试是序列。在回答您的问题时,测试是按特定顺序排列的吗?

假设它们没有被订购或订单不重要,您可以将每个测试视为向量空间中的维度,例如:

            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))