mds_with_anchors.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:openbadge-analysis 作者: HumanDynamics 项目源码 文件源码
def _smacof_single(dissimilarities, weights, init=None, anchors=None, n_components=2, maxitr=300, eps=1e-6, random_state=None):
    # Pre-compute the weights of the Guttman transform
    V = _gt_weights(weights)

    if random_state is None:
        random_state = np.random.RandomState()

    # Initial positions are random by default
    if init is None:
        init = random_state.randn(dissimilarities.shape[0]-anchors.shape[0], n_components)
    X = init

    Sprev = _stress(dissimilarities, weights, np.vstack([X, anchors]))  # Stress at previous iteration
    for itr in range(maxitr):
        X = _guttman_transform(dissimilarities, weights, X, anchors, V)

        S = _stress(dissimilarities, weights, np.vstack([X, anchors]))
        if np.abs(S - Sprev) < eps:
            break
        Sprev = S

    return X, Sprev
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号