我从事教育工作,希望从多个任务中获取学生的分数,并根据学生的多个分数将学生分组为两人一组。我需要学生与最相似的分数被分组成对,基本上。我该怎么做呢?我对代码相当缺乏经验,也不确定如何处理这个问题。我使用的是Python。例如,假设一个学生的得分为50%、100%,等等。我希望将得分最接近的学生分组成对(他们的名字的元组将是理想的输出)。每个学生总共有八个分数,需要考虑到代码中。谢谢你,瑞秋
发布于 2020-12-10 02:38:35
你可以运行“最近邻居”算法。例如:请参阅scikit NearestNeighbors
您将分数编码为8维空间中的点(例如,50% -> 0.5 ),并使用n=1运行该算法。
neigh = NearestNeighbors(n_neighbors=1)
neigh.fit(scores)
发布于 2020-12-10 02:50:32
你可以使用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_
https://stackoverflow.com/questions/65222567
复制相似问题