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