稀疏编码器#
- class sklearn.decomposition.SparseCoder(dictionary, *, transform_algorithm='omp', transform_n_nonzero_coefs=None, transform_alpha=None, split_sign=False, n_jobs=None, positive_code=False, transform_max_iter=1000)[source]#
- 稀疏编码。 - 针对固定的、预先计算好的字典,查找数据的稀疏表示。 - 结果的每一行都是一个稀疏编码问题的解。目标是找到一个稀疏数组 - code,使得- X ~= code * dictionary - 更多信息请参见用户指南。 - 参数:
- dictionary形状为 (n_components, n_features) 的ndarray
- 用于稀疏编码的字典原子。假设各行已归一化为单位范数。 
- transform_algorithm{‘lasso_lars’, ‘lasso_cd’, ‘lars’, ‘omp’, ‘threshold’}, 默认值为’omp’
- 用于转换数据的算法 - 'lars':使用最小角回归法(- linear_model.lars_path);
- 'lasso_lars':使用Lars计算Lasso解;
- 'lasso_cd':使用坐标下降法计算Lasso解(linear_model.Lasso)。如果估计的成分是稀疏的,则- 'lasso_lars'会更快;
- 'omp':使用正交匹配追踪来估计稀疏解;
- 'threshold':将投影- dictionary * X'中所有小于alpha的系数压缩为零。
 
- transform_n_nonzero_coefsint,默认值为None
- 目标在解的每一列中获得的非零系数的数量。这仅用于 - algorithm='lars'和- algorithm='omp',并且在- omp情况下会被- alpha覆盖。如果为- None,则- transform_n_nonzero_coefs=int(n_features / 10)。
- transform_alphafloat,默认值为None
- 如果 - algorithm='lasso_lars'或- algorithm='lasso_cd',- alpha是应用于L1范数的惩罚。如果- algorithm='threshold',- alpha是系数将被压缩为零的阈值绝对值。如果- algorithm='omp',- alpha是容差参数:目标重建误差的值。在这种情况下,它会覆盖- n_nonzero_coefs。如果- None,则默认为1。
- split_signbool,默认值为False
- 是否将稀疏特征向量拆分为其负部分和正部分的串联。这可以提高下游分类器的性能。 
- n_jobsint,默认值为None
- 要运行的并行作业数。 - None表示1(除非在- joblib.parallel_backend上下文中)。- -1表示使用所有处理器。有关更多详细信息,请参见词汇表。
- positive_codebool,默认值为False
- 查找代码时是否强制执行正数。 - 在版本0.20中添加。 
- transform_max_iterint,默认值为1000
- 如果 - algorithm='lasso_cd'或- lasso_lars,则执行的最大迭代次数。- 在版本0.22中添加。 
 
- 属性:
- n_components_int
- 原子的数量。 
- n_features_in_int
- 在 - fit期间看到的特征数量。
- feature_names_in_形状为 (n_features_in_,) 的ndarray
- 在fit期间看到的特征名称。仅当 - X具有全是字符串的特征名称时才定义。- 在版本1.0中添加。 
 
 - 另请参见 - DictionaryLearning
- 查找稀疏编码数据的字典。 
- MiniBatchDictionaryLearning
- 字典学习算法更快、但不太精确的版本。 
- MiniBatchSparsePCA
- 小批量稀疏主成分分析。 
- SparsePCA
- 稀疏主成分分析。 
- sparse_encode
- 稀疏编码,其中结果的每一行都是稀疏编码问题的解。 
 - 示例 - >>> import numpy as np >>> from sklearn.decomposition import SparseCoder >>> X = np.array([[-1, -1, -1], [0, 0, 3]]) >>> dictionary = np.array( ... [[0, 1, 0], ... [-1, -1, 2], ... [1, 1, 1], ... [0, 1, 1], ... [0, 2, 1]], ... dtype=np.float64 ... ) >>> coder = SparseCoder( ... dictionary=dictionary, transform_algorithm='lasso_lars', ... transform_alpha=1e-10, ... ) >>> coder.transform(X) array([[ 0., 0., -1., 0., 0.], [ 0., 1., 1., 0., 0.]]) - fit(X, y=None)[source]#
- 不做任何操作并返回未更改的估计器。 - 此方法只是为了实现通常的API,从而在管道中工作。 - 参数:
- X忽略
- 未使用,出于约定,为了API一致性而存在。 
- y忽略
- 未使用,出于约定,为了API一致性而存在。 
 
- 返回:
- self对象
- 返回实例本身。 
 
 
 - fit_transform(X, y=None, **fit_params)[source]#
- 拟合数据,然后转换它。 - 使用可选参数 - fit_params将转换器拟合到- X和- y,并返回- X的转换版本。- 参数:
- X形状为 (n_samples, n_features) 的类数组
- 输入样本。 
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组,默认为None
- 目标值(无监督转换则为None)。 
- **fit_paramsdict
- 其他拟合参数。 
 
- 返回:
- X_new形状为 (n_samples, n_features_new) 的ndarray数组
- 转换后的数组。 
 
 
 - get_feature_names_out(input_features=None)[source]#
- 获取转换后的特征名称。 - 输出的特征名称将以小写的类名作为前缀。例如,如果转换器输出3个特征,则输出的特征名称为: - ["class_name0", "class_name1", "class_name2"]。- 参数:
- input_features类似数组的字符串或None,默认为None
- 仅用于使用在 - fit中看到的名称验证特征名称。
 
- 返回:
- feature_names_out字符串对象的ndarray
- 转换后的特征名称。 
 
 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看用户指南了解路由机制的工作原理。 - 返回:
- routingMetadataRequest
- 一个 - MetadataRequest封装路由信息。
 
 
 - get_params(deep=True)[source]#
- 获取此估计器的参数。 - 参数:
- deep布尔值,默认为True
- 如果为True,则将返回此估计器和包含的作为估计器的子对象的参数。 
 
- 返回:
- params字典
- 参数名称与其值的映射。 
 
 
 - property n_components_#
- 原子的数量。 
 - property n_features_in_#
- 在 - fit期间看到的特征数量。
 - set_output(*, transform=None)[source]#
- 设置输出容器。 - 请参见介绍set_output API了解如何使用API的示例。 - 参数:
- transform{"default", "pandas", "polars"},默认为None
- 配置 - transform和- fit_transform的输出。- "default":转换器的默认输出格式
- "pandas":DataFrame 输出
- "polars":Polars 输出
- None:转换配置保持不变
 - 1.4版本中新增: - "polars"选项已添加。
 
- 返回:
- self估计器实例
- 估计器实例。 
 
 
 
 
    