跳到内容

随机选择器

本文件是 TPOT 库的一部分。

TPOT 当前版本由 Cedars-Sinai 开发,作者包括: - Pedro Henrique Ribeiro (https://github.com/perib, https://www.linkedin.com/in/pedro-ribeiro/) - Anil Saini (anil.saini@cshs.org) - Jose Hernandez (jgh9094@gmail.com) - Jay Moran (jay.moran@cshs.org) - Nicholas Matsumoto (nicholas.matsumoto@cshs.org) - Hyunjun Choi (hyunjun.choi@cshs.org) - Gabriel Ketron (gabriel.ketron@cshs.org) - Miguel E. Hernandez (miguel.e.hernandez@cshs.org) - Jason Moore (moorejh28@gmail.com)

TPOT 原始版本主要由宾夕法尼亚大学开发,作者包括: - Randal S. Olson (rso@randalolson.com) - Weixuan Fu (weixuanf@upenn.edu) - Daniel Angell (dpa34@drexel.edu) - Jason Moore (moorejh28@gmail.com) - 以及许多慷慨的开源贡献者

TPOT 是自由软件:您可以根据自由软件基金会发布的 GNU 宽通用公共许可证(LGPL)的条款重新分发和/或修改它,无论是该许可证的第 3 版,还是(由您选择)任何后续版本。

分发 TPOT 是希望它会有用,但没有任何担保;甚至不包括对适销性或特定用途适用性的默示担保。详情请参阅 GNU 宽通用公共许可证。

您应该已经随 TPOT 收到一份 GNU 宽通用公共许可证的副本。如果没有,请参阅 https://gnu.ac.cn/licenses/

random_selector(scores, k, n_parents=1, rng=None)

从得分矩阵中随机选择个体的索引。

参数

名称 类型 描述 默认值
scores ndarray

得分矩阵,其中行是个体,列对应于不同目标上的得分。

必需
k int

要选择的个体数量。

必需
n_parents int

每个个体要选择的父代数量。默认值为 1。

1
rng (int, Generator)

随机数生成器。默认值为 None。

None

返回

类型 描述
随机选择的个体索引数组(有放回),形状为 (k, n_parents)。
源代码位于 tpot/selectors/random_selector.py
def random_selector(scores,  k, n_parents=1, rng=None, ):
    """
    Randomly selects indeces of individuals from the scores matrix.

    Parameters
    ----------
    scores : np.ndarray
        The score matrix, where rows the individuals and the columns are the corresponds to scores on different objectives.
    k : int
        The number of individuals to select.
    n_parents : int, optional
        The number of parents to select per individual. The default is 1.
    rng : int, np.random.Generator, optional
        The random number generator. The default is None.

    Returns
    -------
        A array of indices of randomly selected individuals (with replacement) of shape (k, n_parents).

    """
    rng = np.random.default_rng(rng)
    chosen = rng.choice(list(range(0,len(scores))), size=k*n_parents)
    return np.reshape(chosen, (k, n_parents))