源码解读----之-----k_means相关方法(被k_means调用)


本文是个人的理解,由于刚接触并且自身能力也有限,也许会存在误解,欢迎留言指正,本人一定虚心请教,谢谢

def _tolerance(X, tol):
    """Return a tolerance which is independent of the dataset"""
    #判断是否是一个稀疏矩阵,如果是则,则计算X的纵轴(axis=0标识纵轴,axis=1表示横轴)均值和方差,得到方差
    if sp.issparse(X):
        from sklearn.utils.sparsefuncs import mean_variance_axis
        variances = mean_variance_axis(X, axis=0)[1]
    #否则,直接计算各列的方差
    else:
        variances = np.var(X, axis=0)
    #返回方差的均值*tol
    return np.mean(variances) * tol

def as_float_array(X, copy=True, force_all_finite=True):
    '''检验随机数生成器
    random_state:None | int | RandomState实例
    如果为None,则返回np.random的RandomState的一个实例
    如果为int,则返回一个以int为种子的新RandomState实例
    如果为RandomState实例,则返回该实例
    否则,ValueError'''
    if isinstance(X, np.matrix) or (not isinstance(X, np.ndarray)
                                    and not sp.issparse(X)):
        return check_array(X, ['csr', 'csc', 'coo'], dtype=np.float64,
                           copy=copy, force_all_finite=force_all_finite,
                           ensure_2d=False)
    elif sp.issparse(X) and X.dtype in [np.float32, np.float64]:
        return X.copy() if copy else X
    elif X.dtype in [np.float32, np.float64]:  # is numpy array
        return X.copy('F' if X.flags['F_CONTIGUOUS'] else 'C') if copy else X
    else:
        if X.dtype.kind in 'uib' and X.dtype.itemsize <= 4:
            return_dtype = np.float32
        else:
            return_dtype = np.float64
        return X.astype(return_dtype)


def check_array(array, accept_sparse=False, dtype="numeric", order=None,
                copy=False, force_all_finite=True, ensure_2d=True,
                allow_nd<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值