VectorIndexer

pyspark.ml.feature。 VectorIndexer ( *,maxCategories:int=20.,inputCol:可选(str]=没有一个,outputCol:可选(str]=没有一个,handleInvalid:str=“错误” )

类索引分类特征列的数据集向量

这有两个使用模式:
  • 自动识别分类功能(默认行为)
    • 这有助于处理数据集的未知向量与一些连续的特性和分类数据集的特性。连续之间的选择和分类是基于maxCategories参数。

    • 设置maxCategories直言任何分类特性的最大数量。

    • 例如:0具有独特的特性值{-1.0,0.0},和特性1值{1.0,3.0,5.0}。如果maxCategories = 2,那么功能0将分类和使用指标{0,1},和特性1将连续的。

  • 指数的所有功能,如果所有功能分类
    • 如果maxCategories将是非常大的,那么这将构建索引所有功能独特的值。

    • 警告:这可能会导致一些问题如果功能是连续的,因为这将收集所有惟一值司机。

    • 例如:0具有独特的特性值{-1.0,0.0},和特性1值{1.0,3.0,5.0}。如果maxCategories > = 3,那么这两个特性将宣布直言。

这返回一个模型可以使用基于指数变换分类特性。

指数稳定性:
  • 这是不能保证选择跨多个运行同一类别索引。

  • 如果分类特性包括值0,那么这是保证地图索引0值。这保持向量稀疏。

  • 可以添加在未来更稳定。

待办事项:未来的扩展:以下功能计划在未来:
  • 保存元数据变换;如果一个特性的元数据已经存在,不能再计算。

  • 指定某些特性指数,通过一个参数或现有的元数据。

  • 添加警告如果只有1分类特征类别。

例子

> > >pyspark.ml.linalg进口向量> > >df=火花createDataFrame(((向量密集的([- - - - - -1.0,0.0),),(向量密集的([0.0,1.0),),(向量密集的([0.0,2.0),),(“一个”])> > >索引器=VectorIndexer(maxCategories=2,inputCol=“一个”)> > >索引器setOutputCol(“索引”)VectorIndexer……> > >模型=索引器适合(df)> > >索引器getHandleInvalid()“错误”> > >模型setOutputCol(“输出”)VectorIndexerModel……> > >模型变换(df)()输出DenseVector ([1.0, 0.0])> > >模型numFeatures2> > >模型categoryMaps{0:{0.0:0,-1.0:1}}> > >索引器setparam(outputCol=“测试”)适合(df)变换(df)收集()(1]测试DenseVector ([0.0, 1.0])> > >参数个数={索引器maxCategories:3,索引器outputCol:“向量”}> > >model2=索引器适合(df,参数个数)> > >model2变换(df)()向量DenseVector ([1.0, 0.0])> > >vectorIndexerPath=temp_path+“/ vector-indexer”> > >索引器保存(vectorIndexerPath)> > >loadedIndexer=VectorIndexer负载(vectorIndexerPath)> > >loadedIndexergetMaxCategories()= =索引器getMaxCategories()真正的> > >modelPath=temp_path+“/ vector-indexer-model”> > >模型保存(modelPath)> > >loadedModel=VectorIndexerModel负载(modelPath)> > >loadedModelnumFeatures= =模型numFeatures真正的> > >loadedModelcategoryMaps= =模型categoryMaps真正的> > >loadedModel变换(df)(1)= =模型变换(df)(1)真正的> > >dfWithInvalid=火花createDataFrame(((向量密集的([3.0,1.0),),(“一个”])> > >索引器getHandleInvalid()“错误”> > >model3=索引器setHandleInvalid(“跳过”)适合(df)> > >model3变换(dfWithInvalid)()0> > >model4=索引器setparam(handleInvalid=“保持”,outputCol=“索引”)适合(df)> > >model4变换(dfWithInvalid)()索引DenseVector ([2.0, 1.0])

方法

清晰的(参数)

清除参数映射的参数是否被显式地设置。

复制((额外的))

创建这个实例的副本具有相同uid和一些额外的参数。

explainParam(参数)

解释一个参数并返回它的名字,医生,和可选的默认值,用户提供的字符串值。

explainParams()

返回文档的所有参数选择默认值和用户提供的值。

extractParamMap((额外的))

提取嵌入默认参数值和用户提供的值,然后合并他们额外的值从输入平面参数映射,后者使用价值如果存在冲突,即。排序:默认参数值< <额外的用户提供的值。

适合(数据集[params))

适合一个模型与可选参数的输入数据集。

fitMultiple(paramMaps数据集)

适合一个模型为每个参数映射的输入数据集paramMaps

getHandleInvalid()

得到的价值handleInvalid或其默认值。

getInputCol()

得到的价值inputCol或其默认值。

getMaxCategories()

得到的价值maxCategories或其默认值。

getOrDefault(参数)

得到参数的值在用户提供的参数映射或其默认值。

getOutputCol()

得到的价值outputCol或其默认值。

getParam(paramName)

通过它的名称参数。

hasDefault(参数)

检查是否一个参数有默认值。

hasParam(paramName)

测试这个实例包含一个参数是否与给定名称(字符串)。

isDefined(参数)

检查参数是否由用户或显式地设置一个默认值。

收取(参数)

检查参数是否由用户显式地设置。

负载(路径)

从输入路径,读取一个毫升实例的快捷方式read () .load(路径)

()

返回一个MLReader这个类的实例。

保存(路径)

这个毫升实例保存到给定的路径,一个快捷方式的“写().save(路径)。

(参数值)

设置一个参数嵌入参数映射。

setHandleInvalid(值)

设置的值handleInvalid

setInputCol(值)

设置的值inputCol

setMaxCategories(值)

设置的值maxCategories

setOutputCol(值)

设置的值outputCol

setparam(自我\ * (maxCategories,…))

为这个VectorIndexer设置参数。

()

返回一个MLWriter实例毫升实例。

属性

handleInvalid

inputCol

maxCategories

outputCol

参数个数

返回所有参数命令的名字。

方法的文档

清晰的 ( 参数:pyspark.ml.param.Param )→没有

清除参数映射的参数是否被显式地设置。

复制 ( 额外的:可选(ParamMap]=没有一个 )→摩根大通

创建这个实例的副本具有相同uid和一些额外的参数。这个实现第一次调用参数。复制and then make a copy of the companion Java pipeline component with extra params. So both the Python wrapper and the Java pipeline component get copied.

参数
额外的 东西,可选

额外参数复制到新实例

返回
JavaParams

这个实例的副本

explainParam ( 参数:联盟(str,pyspark.ml.param.Param] )→str

解释一个参数并返回它的名字,医生,和可选的默认值,用户提供的字符串值。

explainParams ( )→str

返回文档的所有参数选择默认值和用户提供的值。

extractParamMap ( 额外的:可选(ParamMap]=没有一个 )→ParamMap

提取嵌入默认参数值和用户提供的值,然后合并他们额外的值从输入平面参数映射,后者使用价值如果存在冲突,即。排序:默认参数值< <额外的用户提供的值。

参数
额外的 东西,可选

额外的参数值

返回
dict

合并后的参数映射

适合 ( 数据集:pyspark.sql.dataframe.DataFrame,参数个数:联盟[ParamMap、列表(ParamMap)元组(ParamMap),没有一个)=没有一个 )→联盟(,列表(] ]

适合一个模型与可选参数的输入数据集。

参数
数据集 pyspark.sql.DataFrame

输入数据集。

参数个数 dict或列表或元组,可选的

一个可选的参数覆盖嵌入参数的地图。如果列表/元组的参数映射,这适用于每一个参数并返回一个列表的模型映射。

返回
变压器或者一个列表变压器

拟合模型(年代)

fitMultiple ( 数据集:pyspark.sql.dataframe.DataFrame,paramMaps:序列(ParamMap] )→迭代器(元组(int,] ]

适合一个模型为每个参数映射的输入数据集paramMaps

参数
数据集 pyspark.sql.DataFrame

输入数据集。

paramMaps collections.abc.Sequence

一系列的参数映射。

返回
_FitMultipleIterator

一个线程安全的iterable包含为每个参数映射模型。每次调用下一个(modelIterator)将返回(指数模型)模型是适合使用在哪里paramMaps(指数)指数值可能不是连续的。

getHandleInvalid ( )→str

得到的价值handleInvalid或其默认值。

getInputCol ( )→str

得到的价值inputCol或其默认值。

getMaxCategories ( )→int

得到的价值maxCategories或其默认值。

getOrDefault ( 参数:联盟(str,pyspark.ml.param.Param(T]] )→联盟(任何,T]

得到参数的值在用户提供的参数映射或其默认值。如果没有设置提出了一个错误。

getOutputCol ( )→str

得到的价值outputCol或其默认值。

getParam ( paramName:str )pyspark.ml.param.Param

通过它的名称参数。

hasDefault ( 参数:联盟(str,pyspark.ml.param.Param(任何]] )→bool

检查是否一个参数有默认值。

hasParam ( paramName:str )→bool

测试这个实例包含一个参数是否与给定名称(字符串)。

isDefined ( 参数:联盟(str,pyspark.ml.param.Param(任何]] )→bool

检查参数是否由用户或显式地设置一个默认值。

收取 ( 参数:联盟(str,pyspark.ml.param.Param(任何]] )→bool

检查参数是否由用户显式地设置。

classmethod 负载 ( 路径:str )→RL

从输入路径,读取一个毫升实例的快捷方式read () .load(路径)

classmethod ( )→pyspark.ml.util.JavaMLReader(RL]

返回一个MLReader这个类的实例。

保存 ( 路径:str )→没有

这个毫升实例保存到给定的路径,一个快捷方式的“写().save(路径)。

( 参数:pyspark.ml.param.Param,价值:任何 )→没有

设置一个参数嵌入参数映射。

setHandleInvalid ( 价值:str )pyspark.ml.feature.VectorIndexer

设置的值handleInvalid

setInputCol ( 价值:str )pyspark.ml.feature.VectorIndexer

设置的值inputCol

setMaxCategories ( 价值:int )pyspark.ml.feature.VectorIndexer

设置的值maxCategories

setOutputCol ( 价值:str )pyspark.ml.feature.VectorIndexer

设置的值outputCol

setparam ( 自我,\ *,maxCategories = 20,inputCol =没有,outputCol =没有,handleInvalid = "错误" )

为这个VectorIndexer设置参数。

( )→pyspark.ml.util.JavaMLWriter

返回一个MLWriter实例毫升实例。

属性的文档

handleInvalid =参数(父母=‘定义’,name = ' handleInvalid ', doc = "如何处理无效数据(看不见的标签或NULL值)。选择“跳过”(过滤掉行无效数据),“错误”(抛出一个错误),或“保持”(把无效的数据放在一个特别的额外的桶,在指数类别的特性)的数量。”)
inputCol =参数(父母=‘定义’,name = ' inputCol ', doc =输入列名称。)
maxCategories =参数(父母=‘定义’,name = ' maxCategories ', doc =“阈值分类特征的数量可以(> = 2)。如果发现> maxCategories特性值,然后宣布连续”。)
outputCol =参数(父母=‘定义’,name = ' outputCol ', doc =输出列名称。)
参数个数

返回所有参数命令的名字。默认实现使用dir ()所有的属性类型参数