Python 如何获得sklearn中的基尼系数

Python 如何获得sklearn中的基尼系数,python,scikit-learn,gini,Python,Scikit Learn,Gini,我想在sklearn包中,找到一类路径上每个特征的基尼系数 例如在虹膜数据中。如Iris virginica花瓣长度基尼:0.4,花瓣宽度基尼:0.4。您可以使用Python+numpy计算基尼系数,如下所示: from typing import List from itertools import combinations import numpy as np def gini(x: List[float]) -> float: x = np.array(x, dtype=

我想在sklearn包中,找到一类路径上每个特征的基尼系数
例如在虹膜数据中。如Iris virginica花瓣长度基尼:0.4,花瓣宽度基尼:0.4。

您可以使用Python+numpy计算基尼系数,如下所示:

from typing import List
from itertools import combinations

import numpy as np

def gini(x: List[float]) -> float:
    x = np.array(x, dtype=np.float32)
    n = len(x)
    diffs = sum(abs(i - j) for i, j in combinations(x, r=2))
    return diffs / (2 * n**2 * x.mean())

你能发布你想要找到gini的数据吗?
从sklearn import datasets iris=datasets.load_iris()
u可以使用此代码下载数据这是我见过的Python中最好的gini实现之一:-D.我喜欢它,因为有很多替代公式,但如果你环顾四周,这是你在文献中看到的最一致的基尼公式。问题是很难实现这个公式,但这里只有4行代码。做得好!!我可能说得太早了。我把这个和其他的工作()做了比较,我想知道你是否高估了n。我们想要平均绝对差,你的n是>你计算的平均绝对差的数量(从我看到的)。