我写了一个计算某些候选人的某些特征的算法,这些特征存储在一个数据框中,例如:(c1是candidate1)
feature1 feature2 feature3 ...
c1 score1_1 score1_2 score1_3 ...
c2 score2_1 score2_2 score2_3 ...
...
cn scoren_1 scoren_2 scoren_3 ...
我写了一个函数,它得到一个权重向量(它的长度是特征的数量)并计算一个总分的列(每行的向量乘法给出该行的分数'候选人)
然后我拿到前N名候选人(获得最高分,假设N = 10)并将它们与同一候选人的另一个工具的输出进行比较,写了一个算法来得出这个比较中的分数,基本上是它的加权交叉点,将此分数标记为S.
对于相同的权重向量,我会针对几组候选者执行此操作,并计算S的平均值,将平均值标记为S_avg。
我想迭代地执行上述操作,每次迭代调整权重向量以最大化S_avg,是否有人对Python中的简单迭代方式(向量调整)有任何建议?
谢谢,希望我足够清楚
编辑:我忘了提到有一个不变量,权重之和为1,每个特征得分从0到1,所以总得分也必须在0-1范围内