---
title: SPCA
description: "SPCA提供ML SPCA API、MLlib SPCA API两套接口。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/bds/kunpengbdssparkml_16_0023.html
sourcePath: /source/zh/kunpengboostkithistory/2200/bds/kunpengbdssparkml_16_0023.html
indexId: f7f55474cf82e33dbd148e84574cc3293d2191225a264f92878e395abd26f86b73
---
# SPCA

SPCA提供ML SPCA API、MLlib SPCA API两套接口。

| 模型接口类别 | 函数接口 |
| --- | --- |
| ML SPCA API | def fit(dataset: Dataset[\_]): PCAModel |
| ML SPCA API | def fit(dataset: Dataset[\_], paramMaps: Array[ParamMap]): Seq[PCAModel] |
| ML SPCA API | def fit(dataset: Dataset[\_], paramMap: ParamMap): PCAModel |
| ML SPCA API | def fit(dataset: Dataset[\_], firstParamPair: ParamPair[\_], otherParamPairs: ParamPair[\_]\*): PCAModel |
| MLlib SPCA API | def fit(sources: RDD[Vector]): PCAModel |


#### ML SPCA API

- 功能描述
  输入Dataset形式的矩阵，输出它的主成分和对应的权重。


- 输入输出

  1. 包名：package org.apache.spark.ml.feature
  2. 类名：SPCA
  3. 方法名：fit
  4. 输入：矩阵Dataset[_]，主成分个数| 参数名称 | 取值类型 | 描述 |
| --- | --- | --- |
| dataset | Dataset[Vector] | 矩阵，以行为单位进行存储 |
| k | Int | 主成分个数 |


  5. 算法参数| 参数名称 | 取值类型 | 缺省值 | 描述 |
| --- | --- | --- | --- |
| setk(value:Int) | k | \- | 要求的主成分个数，取值范围[1,n] |


    参数及fit代码接口示例： 1 val pcaModel = new SPCA().setK(k).setInputCol(“matrix”).fit(data)

  6. 输出：SPCAModel，包含主成分和对应的权重| 参数名称 | 取值类型 | 描述 |
| --- | --- | --- |
| pc | DenseMatrix | 主成分矩阵，每一列都是一个主成分向量 |
| explainedVariance | DenseVector | 主成分对应的权重，每一维对应一个主成分 |


- 使用样例
  1 val pcaModel = new SPCA().setK(k).setInputCol(“matrix”).fit(data)


#### MLlib SPCA API

- 功能描述
  输入RDD[Vector]形式的矩阵，输出它的主成分和对应的权重。


- 输入输出

  1. 包名：package org.apache.spark.mllib.feature
  2. 类名：SPCA
  3. 方法名：fit
  4. 输入：矩阵RDD[Vector]，主成分个数| 参数名称 | 取值类型 | 描述 |
| --- | --- | --- |
| sources | RDD[Vector] | 矩阵，以行为单位进行存储 |
| k | Int | 主成分个数 |


  5. 算法参数| 参数名称 | 取值类型 | 缺省值 | 描述 |
| --- | --- | --- | --- |
| setk(value:Int) | k | \- | 要求的主成分个数，取值范围[1,n] |


    参数及fit代码接口示例： 1 val pcaModel = new SPCA(k).fit(data)

  6. 输出：PCAModel，包含主成分和对应的权重| 参数名称 | 取值类型 | 描述 |
| --- | --- | --- |
| pc | DenseMatrix | 主成分矩阵，每一列都是一个主成分向量 |
| explainedVariance | DenseVector | 主成分对应的权重，每一维对应一个主成分 |


- 使用样例
  1 val pcaModel = new SPCA(k).fit(data)
