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 ()所有的屬性類型參數