用法:
__init__(n_components=2, algorithm='tsqr', n_iter=5, random_state=None, tol=0.0, compute=True)
使用截断的 SVD(又名 LSA)进行降维。
该转换器通过截断奇异值分解 (SVD) 执行线性降维。与 PCA 不同,此估计器在计算奇异值分解之前不会将数据居中。
- n_components:整数,默认 = 2
输出数据的所需维度。必须小于或等于特征数。默认值对于可视化很有用。
- algorithm:{‘tsqr’, ‘randomized’}
要使用的 SVD 求解器。两者都在内部使用
tsqr
(用于“tall-and-skinny QR”)算法。 ‘randomized’ 使用更快但不精确的近似算法。有关更多信息,请参阅引用。- n_iter:int,可选(默认 0)
幂迭代次数,当奇异值衰减缓慢时很有用。随着 n_power_iter 的增加,误差呈 index 下降。在实践中,设置 n_power_iter <= 4。
- random_state:int,RandomState 实例或无,可选
如果是int,random_state是随机数生成器使用的种子;如果是RandomState实例,random_state是随机数生成器;如果没有,随机数生成器是
np.random
使用的 RandomState 实例。- tol:浮点数,可选
忽略。
- compute:bool
是否应立即计算 SVD 结果,默认为 True。
- components_:数组,形状(n_components,n_features)
- explained_variance_:数组,形状(n_components,)
通过投影变换到每个分量的训练样本的方差。
- explained_variance_ratio_:数组,形状(n_components,)
每个选定组件解释的方差百分比。
- singular_values_:数组,形状(n_components,)
对应于每个选定组件的奇异值。奇异值等于 lower-dimensional 空间中
n_components
变量的 2 范数。
参数:
属性:
注意:
SVD 遇到一个称为“sign indeterminacy” 的问题,这意味着
components_
的符号和变换的输出取决于算法和随机状态。要解决此问题,请将此类的实例与数据匹配一次,然后保留该实例以进行转换。警告
该实现目前不支持稀疏矩阵。
参考:
MapReduce 架构中tall-and-skinny 矩阵的直接 QR 分解。 A. Benson、D. Gleich 和 J. Demmel。 IEEE 大数据国际会议,2013 年。http://arxiv.org/abs/1301.1071
例子:
>>> from dask_ml.decomposition import TruncatedSVD >>> import dask.array as da >>> X = da.random.normal(size=(1000, 20), chunks=(100, 20)) >>> svd = TruncatedSVD(n_components=5, n_iter=3, random_state=42) >>> svd.fit(X) TruncatedSVD(algorithm='tsqr', n_components=5, n_iter=3, random_state=42, tol=0.0)
>>> print(svd.explained_variance_ratio_) [0.06386323 0.06176776 0.05901293 0.0576399 0.05726607] >>> print(svd.explained_variance_ratio_.sum()) 0.299... >>> print(svd.singular_values_) array([35.92469517, 35.32922121, 34.53368856, 34.138..., 34.013...])
请注意,
transform
返回一个dask.Array
。>>> svd.transform(X) dask.array<sum-agg, shape=(1000, 5), dtype=float64, chunksize=(100, 5)>
相关用法
- Python dask_ml.decomposition.PCA用法及代码示例
- Python dask_ml.datasets.make_blobs用法及代码示例
- Python dask_ml.datasets.make_counts用法及代码示例
- Python dask_ml.wrappers.ParallelPostFit用法及代码示例
- Python dask_ml.feature_extraction.text.CountVectorizer用法及代码示例
- Python dask_ml.preprocessing.MinMaxScaler用法及代码示例
- Python dask_ml.preprocessing.Categorizer用法及代码示例
- Python dask_ml.linear_model.LinearRegression用法及代码示例
- Python dask_ml.wrappers.Incremental用法及代码示例
- Python dask_ml.metrics.mean_squared_log_error用法及代码示例
- Python dask_ml.model_selection.GridSearchCV用法及代码示例
- Python dask_ml.preprocessing.OrdinalEncoder用法及代码示例
- Python dask_ml.feature_extraction.text.FeatureHasher用法及代码示例
- Python dask_ml.preprocessing.LabelEncoder用法及代码示例
- Python dask_ml.ensemble.BlockwiseVotingClassifier用法及代码示例
- Python dask_ml.model_selection.train_test_split用法及代码示例
- Python dask_ml.feature_extraction.text.HashingVectorizer用法及代码示例
- Python dask_ml.preprocessing.PolynomialFeatures用法及代码示例
- Python dask_ml.linear_model.LogisticRegression用法及代码示例
- Python dask_ml.xgboost.train用法及代码示例
注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask_ml.decomposition.TruncatedSVD.__init__。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。