QuantileDiscretizer
pyspark.ml.feature。 QuantileDiscretizer ( *,numBuckets:int=2,inputCol:可選(str]=沒有一個,outputCol:可選(str]=沒有一個,relativeError:浮動=0.001,handleInvalid:str=“錯誤”,numBucketsArray:可選(列表(int]]=沒有一個,inputCols:可選(列表(str]]=沒有一個,outputCols:可選(列表(str]]=沒有一個 ) QuantileDiscretizer獲取一列一列連續特性和輸出與被分類特性。箱子的數量可以設置使用numBuckets參數。桶的數量可能會小於這個值使用,例如,如果有太少的不同值的輸入創造足夠的不同分位數。3.0.0以來,QuantileDiscretizer一次可以映射多個列通過設置inputCols參數。如果兩個的inputColinputCols參數設置,就會拋出一個異常。為每一列,指定桶的數量numBucketsArray參數可以設置,或者桶的數量應該是一樣的在列,numBuckets可以設置為一個方便。

筆記

南處理:也要注意QuantileDiscretizer將提高一個錯誤當找到NaN值的數據集,但是用戶也可以選擇保留或刪除NaN值在數據集通過設置handleInvalid參數。如果用戶選擇保留NaN值,它們將被特別處理,放置到自己的水桶,例如,如果使用了4桶,然後non-NaN數據將被放入水桶(0 - 3),但NaN將計算在一個特殊的桶[4]。

算法:本範圍選擇使用一個近似算法(參見文檔approxQuantile ()詳細描述)。近似的精度可以控製relativeError參數。上下本界限+∞,覆蓋所有真實值。

例子

> > >=((0.1),(0.4),(1.2),(1.5),(浮動(“南”),),(浮動(“南”),)> > >df1=火花createDataFrame(,(“價值觀”])> > >qds1=QuantileDiscretizer(inputCol=“價值觀”,outputCol=“桶”)> > >qds1setNumBuckets(2)QuantileDiscretizer……> > >qds1setRelativeError(0.01)QuantileDiscretizer……> > >qds1setHandleInvalid(“錯誤”)QuantileDiscretizer……> > >qds1getRelativeError()0.01> > >bucketizer=qds1適合(df1)> > >qds1setHandleInvalid(“保持”)適合(df1)變換(df1)()6> > >qds1setHandleInvalid(“跳過”)適合(df1)變換(df1)()4> > >分裂=bucketizergetSplits()> > >分裂(0]> > >打印(% 2.1度%(分裂(1),1))0.4> > >=bucketizer變換(df1)()> > >0.0> > >quantileDiscretizerPath=temp_path+“/ quantile-discretizer”> > >qds1保存(quantileDiscretizerPath)> > >loadedQds=QuantileDiscretizer負載(quantileDiscretizerPath)> > >loadedQdsgetNumBuckets()= =qds1getNumBuckets()真正的> > >輸入=((0.1,0.0),(0.4,1.0),(1.2,1.3),(1.5,1.5),(浮動(“南”),浮動(“南”)),(浮動(“南”),浮動(“南”)))> > >df2=火花createDataFrame(輸入,(“input1”,“input2”])> > >qds2=QuantileDiscretizer(relativeError=0.01,handleInvalid=“錯誤”,numBuckets=2,inputCols=(“input1”,“input2”),outputCols=(“output1”,“output2”])> > >qds2getRelativeError()0.01> > >qds2setHandleInvalid(“保持”)適合(df2)變換(df2)顯示()+ - - - - - - - - - - - - + - - - - - - - - - - - - - - +| input1 | input2 | output1 | output2 |+ - - - - - - - - - - - - + - - - - - - - - - - - - - - +| 0.1 | 0.0 | 0.0 | 0.0 || 0.4 | 1.0 | 1.0 | 1.0 || 1.2 | 1.3 | 1.0 | 1.0 || 1.5 | 1.5 | 1.0 | 1.0 || |南南| 2.0 | 2.0 || |南南| 2.0 | 2.0 |+ - - - - - - - - - - - - + - - - - - - - - - - - - - - +> > >qds3=QuantileDiscretizer(relativeError=0.01,handleInvalid=“錯誤”,numBucketsArray=(5,10),inputCols=(“input1”,“input2”),outputCols=(“output1”,“output2”])> > >qds3setHandleInvalid(“跳過”)適合(df2)變換(df2)顯示()+ - - - - - - - - - - - - + - - - - - - - - - - - - - - +| input1 | input2 | output1 | output2 |+ - - - - - - - - - - - - + - - - - - - - - - - - - - - +| 0.1 | 0.0 | 1.0 | 1.0 || 0.4 | 1.0 | 2.0 | 2.0 || 1.2 | 1.3 | 3.0 | 3.0 || 1.5 | 1.5 | 4.0 | 4.0 |+ - - - - - - - - - - - - + - - - - - - - - - - - - - - +

方法

清晰的(參數)

清除參數映射的參數是否被顯式地設置。

複製((額外的))

創建這個實例的副本具有相同uid和一些額外的參數。

explainParam(參數)

解釋一個參數並返回它的名字,醫生,和可選的默認值,用戶提供的字符串值。

explainParams()

返回文檔的所有參數選擇默認值和用戶提供的值。

extractParamMap((額外的))

提取嵌入默認參數值和用戶提供的值,然後合並他們額外的值從輸入平麵參數映射,後者使用價值如果存在衝突,即。排序:默認參數值< <額外的用戶提供的值。

適合(數據集[params))

適合一個模型與可選參數的輸入數據集。

fitMultiple(paramMaps數據集)

適合一個模型為每個參數映射的輸入數據集paramMaps

getHandleInvalid()

得到的價值handleInvalid或其默認值。

getInputCol()

得到的價值inputCol或其默認值。

getInputCols()

得到的價值inputCols或其默認值。

getNumBuckets()

得到的價值numBuckets或其默認值。

getNumBucketsArray()

得到的價值numBucketsArray或其默認值。

getOrDefault(參數)

得到參數的值在用戶提供的參數映射或其默認值。

getOutputCol()

得到的價值outputCol或其默認值。

getOutputCols()

得到的價值outputCols或其默認值。

getParam(paramName)

通過它的名稱參數。

getRelativeError()

得到的價值relativeError或其默認值。

hasDefault(參數)

檢查是否一個參數有默認值。

hasParam(paramName)

測試這個實例包含一個參數是否與給定名稱(字符串)。

isDefined(參數)

檢查參數是否由用戶或顯式地設置一個默認值。

收取(參數)

檢查參數是否由用戶顯式地設置。

負載(路徑)

從輸入路徑,讀取一個毫升實例的快捷方式read () .load(路徑)

()

返回一個MLReader這個類的實例。

保存(路徑)

這個毫升實例保存到給定的路徑,一個快捷方式的“寫().save(路徑)。

(參數值)

設置一個參數嵌入參數映射。

setHandleInvalid(值)

設置的值handleInvalid

setInputCol(值)

設置的值inputCol

setInputCols(值)

設置的值inputCols

setNumBuckets(值)

設置的值numBuckets

setNumBucketsArray(值)

設置的值numBucketsArray

setOutputCol(值)

設置的值outputCol

setOutputCols(值)

設置的值outputCols

setparam(自我,\ [,inputCol numBuckets…))

QuantileDiscretizer設置參數

setRelativeError(值)

設置的值relativeError

()

返回一個MLWriter實例毫升實例。

屬性

handleInvalid

inputCol

inputCols

numBuckets

numBucketsArray

outputCol

outputCols

參數個數

返回所有參數命令的名字。

relativeError

方法的文檔

清晰的 ( 參數:)→沒有
複製 ( 額外的:可選(ParamMap]=沒有一個 )→摩根大通
參數
額外的 東西,可選

額外參數複製到新實例

返回
JavaParams

這個實例的副本

explainParam ( 參數:聯盟(str,] )→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,] ]
參數
數據集 pyspark.sql.DataFrame

輸入數據集。

paramMaps collections.abc.Sequence

一係列的參數映射。

返回
_FitMultipleIterator

一個線程安全的iterable包含為每個參數映射模型。每次調用下一個(modelIterator)將返回(指數模型)模型是適合使用在哪裏paramMaps(指數)指數值可能不是連續的。

getHandleInvalid ( )→str
getInputCol ( )→str
getInputCols ( )→列表(str]
getNumBuckets ( )→int
getNumBucketsArray ( )→列表(int]
getOrDefault ( 參數:聯盟(str,(T]] )→聯盟(任何,T]
getOutputCol ( )→str
getOutputCols ( )→列表(str]
getParam ( paramName:str )
getRelativeError ( )→浮動
hasDefault ( 參數:聯盟(str,(任何]] )→bool
hasParam ( paramName:str )→bool
isDefined ( 參數:聯盟(str,(任何]] )→bool
收取 ( 參數:聯盟(str,(任何]] )→bool
classmethod 負載 ( 路徑:str )→RL
classmethod ( )→pyspark.ml.util.JavaMLReader(RL]
保存 ( 路徑:str )→沒有
( 參數:價值:任何 )→沒有
setHandleInvalid ( 價值:str )handleInvalid

setInputCol ( 價值:str )inputCol

setInputCols ( 價值:列表(str] )inputCols

setNumBuckets ( 價值:int )numBuckets

setNumBucketsArray ( 價值:列表(int] )numBucketsArray

setOutputCol ( 價值:str )outputCol

setOutputCols ( 價值:列表(str] )outputCols

setparam ( 自我,\ *,numBuckets = 2,inputCol =沒有,outputCol =沒有,relativeError = 0.001,handleInvalid = "錯誤",numBucketsArray =沒有,inputCols =沒有,outputCols =沒有 )
setRelativeError ( 價值:浮動 )relativeError

( )→pyspark.ml.util.JavaMLWriter屬性的文檔

handleInvalid :pyspark.ml.param.Param (str) =參數(父母=‘定義’,name = ' handleInvalid ', doc = "如何處理無效的條目。選項跳過(過濾掉行無效值),錯誤(拋出一個錯誤),或保持(無效值保存在一個特殊的附加桶)。注意,在多個列的情況下,無效的處理是適用於所有列。說“錯誤”,它將拋出一個錯誤——如果任何被發現在任何列,“跳過”它會跳過行中與任何問題的任何列,等。”)
inputCol =參數(父母=‘定義’,name = ' inputCol ', doc =輸入列名稱。)
inputCols =參數(父母=‘定義’,name = ' inputCols ', doc =輸入列名稱。)
numBuckets :pyspark.ml.param.Param (int) =參數(父母=‘定義’,name = ' numBuckets ', doc = '最大數量的桶(分位數,或類別),數據點進行分組。必須> = 2。)
numBucketsArray :pyspark.ml.param.Param(列表(int)) =參數(父母=‘定義’,name = ' numBucketsArray ', doc = '數組桶的數量(分位數,或類別),數據點進行分組。這是多個列輸入。如果將多個列和numBucketsArray沒有設置,但numBuckets設置,那麼numBuckets將被應用在所有列。”)
outputCol =參數(父母=‘定義’,name = ' outputCol ', doc =輸出列名稱。)
outputCols =參數(父母=‘定義’,name = ' outputCols ', doc =輸出列名稱。)
參數個數 dir ()所有的屬性類型參數

relativeError =參數(父母=‘定義’,name = ' relativeError ', doc = '相對目標精度的近似算法分位數。必須在[0,1]”)

以前的

PolynomialExpansion

下一個

RobustScaler