匈牙利算法实现(sklearn 实现与 scipy实现测试)

sklearn里的linear_assignment()函数以及scipy里的linear_sum_assignment()函数都实现了匈牙利算法,两者的返回值的形式不同:

新增更改(2020/9/6),谢评论区网友指正:sklearn.utils.linear_assignment_.linear_assignment已被丢弃。

import numpy as np
from sklearn.utils.linear_assignment_ import linear_assignment
from scipy.optimize import linear_sum_assignment
const_matrix = np.array([[15, 40, 45], 
						 [20, 60, 35], 
						 [20, 40, 25]])
matches = linear_assignment(cost_matrix)
print("matches: ", matches)
matches2 = linear_sum_assignment(cost_matrix)
print("matches2: ", matches2)						 

output:

matches: [[0 1]
[1 0]
[2 2]]
matches2: (array([0, 1, 2]), array([1, 0, 2]))

从上面可以看出:

sklearn实现的匈牙利返回值与scipy实现的匈牙利返回值为互转置关系。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值