首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将新数据集与预定义集匹配

将新数据集与预定义集匹配
EN

Data Science用户
提问于 2018-06-15 14:48:31
回答 4查看 69关注 0票数 0

我有一组数据,描述了某些任务所需的级别。以下是一个列表示例:

请注意,数据值在0到10之间的比例。

我在这里的问题是,我有一批员工,他们的技能(分析、耐心、理解……)已经进行了分析,类似于以下员工:

  • 分析-> 8.5
  • 耐心->5
  • 理解->7
  • 通讯-> 7.5
  • 创意->8

如何根据员工的技能和每项任务所需的技能,将其与最佳任务相匹配,并找到匹配的百分比。

请注意,任务的数量要大得多(大约有1000个任务),有更多的需求已经在统计上找到了。

EN

回答 4

Data Science用户

发布于 2018-06-15 15:00:04

你不需要机器学习来做这件事。

您可以将描述用户的向量减去任务的向量,并计算这些向量的大小。

最小幅值的向量将来自最匹配的任务。

票数 0
EN

Data Science用户

发布于 2018-06-20 10:10:06

作为对我问题的后续,经过一些研究,我发现了在这个线程https://stackoverflow.com/questions/32446703/find-closest-vector-from-a-list-of-vectors-python上使用Python的编程方法。

它基本上描述了一种使用Python空间枕库的方法。方法相当简单,您输入一组向量,创建一个KDTree,最后使用输入向量查询树。但其中一个不便之处是:输入向量应与其他向量长度相同,因此需要进行一些预处理。

所用的代码是:

代码语言:javascript
复制
>>> from scipy import spatial
>>> A = [[0,1,2,3,4], [4,3,2,1,0], [2,5,3,7,1], [1,0,1,0,1]]
>>> tree = spatial.KDTree(A)
>>> tree.query([0.5,0.5,0.5,0.5,0.5]) (1.1180339887498949, 3)
票数 0
EN

Data Science用户

发布于 2018-09-18 16:36:07

根据Vincenzo Lavorini的回答,下面是查找与员工能力最接近的任务的python代码:

代码语言:javascript
复制
import numpy as np

# Let tt be list of tasks and ee be employee: 
tt = [[0,1,2,3,4], [4,3,2,1,0], [2,5,3,7,1], [1,0,1,0,1]]
ee = [0.5,0.5,0.5,0.5,0.5]

# convert to numpy array: 
tt = np.array(tt)
ee = np.array(ee)

# find difference between each task and employee:
res = tt - ee
print(res)

输出:

代码语言:javascript
复制
[[-0.5  0.5  1.5  2.5  3.5]
 [ 3.5  2.5  1.5  0.5 -0.5]
 [ 1.5  4.5  2.5  6.5  0.5]
 [ 0.5 -0.5  0.5 -0.5  0.5]]

找出总差异:

代码语言:javascript
复制
res = [np.sum(x) for x in res]
print(res)

输出:

代码语言:javascript
复制
[7.5, 7.5, 15.5, 0.5]

使用numpy.argmin查找具有最小总差的任务的索引数:

代码语言:javascript
复制
print("Task number most suited for this employee:", np.argmin(res))

输出:

代码语言:javascript
复制
Task number most suited for this employee: 3

结果与scipy spatial代码的结果相同。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/33222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档