如何使用多个数据点将最相似的项目分成两组?

2024-09-29 21:59:05 发布

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

我从事教育工作,希望从多个任务中获取学生的分数,并根据他们的分数将学生分成两组。基本上,我需要把分数最接近的学生分成两组。我该怎么做呢?我对代码相当缺乏经验,不确定如何处理这个问题。我正在使用Python。例如,假设一个学生的分数为50%,100%,等等。我希望分数最相似的学生分组成对(他们名字的元组是理想的输出)。每个学生总共有八个分数,需要纳入代码中。 谢谢 瑞秋


Tags: 代码名字学生分数元组理想缺乏经验
2条回答

您可以运行“最近邻”算法。 例如: 见scikit NearestNeighbors

您将分数编码为8维空间中的点(例如50%->;0.5),并使用n=1运行算法

neigh = NearestNeighbors(n_neighbors=1)
neigh.fit(scores) 

您可以使用kmeans集群。见:https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

    from sklearn.cluster import KMeans
    import numpy as np
    #insert your csv file as 2D numpy array without the header or row index. Your input data size should be total number of students * 8.
    X = np.array(input_data)
    #set n_clusters to half the number of students
    kmeans = KMeans(n_clusters=num_students/2, random_state=0).fit(X)
    kmeans.labels_

相关问题 更多 >

    热门问题