DL4J中文文件/DataVec/轉換-3

weixin_34337265發表於2018-10-19

RemoveAllColumnsExceptForTransform 移除指定列的轉換

[原始碼]

該轉換移除除顯式指定的作為保留的列之外的所有列。

public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名
RemoveColumnsTransform 移除列轉換

[原始碼]

Remove the specified columns from the data. To specify only the columns to keep,

從資料中移除指定的列。來指定需人保留的列。

public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名

RenameColumnsTransform 重新命名列轉換

[source]

重新命名一個或多個列

public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名

ReorderColumnsTransform 重排序列轉換

[原始碼]

重排序列。注意:這裡可以使用列的部分列表。沒有明確提到的任何列都將放在輸出中的列之後,而不改變它們的相對順序。

transform
public Schema transform(Schema inputSchema) 

  • 引數newOrder是輸列中一部份或全部列
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名
ConditionalCopyValueTransform 有條件複製值變換

[原始碼]

如果條件滿足,從另外一個列取值將指定的列值替換。需要注意的是條件可以是任何通用條件,包括在其它列上,不同於如果滿足條件的情況下將被修改的列。注意:對於序列,此轉換使用將序列中的每個步驟傳遞給條件,並分別替換(或不替換)的約定(即,Condition.condition(List)在每個時間步驟上被使用)。

transform
public Schema transform(Schema inputSchema) 

  • 引數columnToReplace是需要被替換舊值的列
  • 引數sourceColumn是用來獲取新值的列名
  • 引數condition是條件
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名

ConditionalReplaceValueTransform 有條件替換值轉換

[原始碼]

如果條件滿足,在指定的列中用新值替換舊值。注意,條件可以是任何通用條件,包括在其他列上,不同於如果條件滿足則將修改的列。

注意:對於序列,此轉換使用將序列中的每個步驟傳遞給條件,並分別替換(或不替換)的約定(即,Condition.condition(List)在每個時間步驟上被使用)。

transform
public Schema transform(Schema inputSchema) 

  • 引數columnToReplace是如果條件成立需要用新值替換舊值的列
  • 引數 newValue是要使用新值
  • 引數condition是條件
map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名

ConditionalReplaceValueTransformWithDefault

[原始碼]

如果條件滿足,將指定的列的值替換為指定的“yes”值,如果不滿足條件,替換為指定的“no”值。

注意,條件可以是任何通用條件,包括在其他列上,不同於如果條件滿足則將修改的列。

注意:對於序列,此轉換使用將序列中的每個步驟傳遞給條件,並分別替換(或不替換)的約定(即,Condition.condition(List)在每個時間步驟上被使用)。


ConvertToDouble

[原始碼]

把任何值轉換為雙精度型別

map
public DoubleWritable map(Writable writable) 

  • 引數column是要轉換為雙精度型別的列名

DoubleColumnsMathOpTransform 雙精度列數學運算變換

[原始碼]

新增一個新的雙精度列,從一個或多個別的列計算而來。一個新列(指定的名稱)作為輸出的最終列被新增。沒有別的列被修改。

例如,如果新列的名稱==”newCol”, 數學運算==Add, 並且參與運算的列=={“col1”,”col2”},那麼名為newCol的輸出列的值為col1+col2。

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列

DoubleMathFunctionTransform 雙精度函式轉換

[原始碼]

一個簡單的轉換,用於數學運算,例如sin(x), ceil(x)等


DoubleMathOpTransform 雙精度數學運算轉換

[原始碼]

雙精度數學運算。

這是一個內部的雙精度列值和雙精度標量的運算。

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列

Log2Normalizer Log2歸一化器

[原始碼]

通過log2((in-列最小值)/(均值-列最小值) + 1)的比例來歸一化。in的範轉是 (列最小值 到 無窮大) 到 (0 到 無窮大)。最適合於具有幾何/負指數型分佈的值。

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件

MinMaxNormalizer 最小值最大值歸一化器

[原始碼]

用於建立 (最小值 到 最大值) -> (新最小值 到新最大值)的線性對映的歸一化器

數學:(新最大值-新最小值)/(最大值-最小值) (x-最小值) + 新最小值

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件

StandardizeNormalizer 標準化歸一化器

[原始碼]

使用(X-MIN)/STDEV歸一化。也稱為標準分數、標準化等。

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件

SubtractMeanNormalizer 減法平均值歸一化器

[原始碼]

通過減去平均值歸一化

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件

ConvertToInteger 轉換為整型

[原始碼]

把任意值轉換為整型。

map
public IntWritable map(Writable writable) 

  • 引數column是用來轉換為整型的列名。

IntegerColumnsMathOpTransform 整型列數學運算轉換

[原始碼]

新增一個新的整型列,從一個或多個別的列計算而來。一個新列(指定的名稱)作為輸出的最終列被新增。沒有別的列被修改。

例如,如果新列的名稱==”newCol”, 數學運算==Add, 並且參與運算的列=={“col1”,”col2”},那麼名為newCol的輸出列的值為col1+col2。

注意:如果要求十進位制輸出值,則這裡使用除法。

toString
public String toString() 

  • 引數newColumnName是輸出列的列名newColumnName
  • 引數mathOp是數學運算。這裡只允許加法/乘法/除法/求模。
  • 引數columns是參與數學運算的列
map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列

IntegerMathOpTransform 整型數學運算

[原始碼]

整型數學運算

這是一個內部的整型列值和整型標量的運算。

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件

IntegerToOneHotTransform 整型到OneHot碼騙轉換

[原始碼]

把一個整型列轉換為one-hot列集合

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名

ReplaceEmptyIntegerWithValueTransform 用指定值替換空的整型轉換

[原始碼]

用一個值替換空白缺失的整型資料

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件

ReplaceInvalidWithIntegerTransform 用整型替換無效值轉換

[原始碼]

用指定的整數替換列中無效的整數

map
public Object map(Object input)  

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件

LongColumnsMathOpTransform 整型列數學運算轉換

[原始碼]

新增一個新的長整型列,從一個或多個別的列計算而來。一個新列(指定的名稱)作為輸出的最終列被新增。沒有別的列被修改。

例如,如果新列的名稱==”newCol”, 數學運算==Add, 並且參與運算的列=={“col1”,”col2”},那麼名為newCol的輸出列的值為col1+col2。

map
public Object map(Object input)  

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件

mapSequence

public Object mapSequence(Object sequence)  

轉換一個序列

  • 引數sequence為要轉換的序列

LongMathOpTransform 長整型數學計算轉換

[原始碼]

長整型數學運算

這是一個內部的長整型列值和長整型標量的運算。

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件

TextToCharacterIndexTransform 文字到字元索引轉換

[原始碼]

將一個序列中的每個文字值轉換為一個較長的整數索引序列。例如,“abc” 將被轉換為 [1, 2, 3]。其他列中的值將被複制。


TextToTermIndexSequenceTransform 文字到詞元索引序列轉換

[原始碼]

將一個序列中的每個文字值轉換為一個較長的整數索引序列。例如,“zero one two” 將被轉換為 [0, 1, 2。其他列中的值將被複制。

SequenceDifferenceTransform 序列差分轉換

[原始碼]

對於一個輸入序列,計算一個列上的差異。對於每一個時間t,計算someColumn(t) - someColumn(t-s), 這個 s >= 1 是“迴環”期.

注意:在t=0(在序列中的第一個步驟;或更通常的,所有小於s的時間t),這些時間步沒有之前的值:

1.預設:輸出=someColumn(t) - someColumn(max(t-s, 0))

2.指定值:如果t-s >= 0或一個定製的Writable物件(例如,a DoubleWritable(0) 或 NullWritable)那麼輸出= someColumn(t) - someColumn(t-s)

注意:這是一個原地的運算:每個列的值被修改。如果原始值進行了差分運算,則原地複製。

outputColumnName
public String outputColumnName() 

用預設的迴環1建立一個序列差分轉換,並使用FirstStepMode.Default。輸出列與輸入列一樣。

  • 引數columnName是進行進算的列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名
map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列

SequenceMovingWindowReduceTransform 序列移動視窗縮減變換

[原始碼]

序列移動視窗縮減變換:新增一個新列,它的值是:

(a)使用單個列中最後n個值的視窗

(b)在視窗上應用一個縮減操作來計算一個新值,例如,這個轉換器可以用於實現一個最後n個值的一個簡單移動平均,或確定最後N個時間步長中的最小值或最大值。

defaultOutputColumnName
public static String defaultOutputColumnName(String originalName, int lookback, ReduceOp op) 

列舉指定如何處理每個例項:例如,對於一個週期為20的迴環,第一個19的輸值應該怎麼計算?

預設:和通常一樣進行以前的縮減,有很多的值可用。

指定值:用指定的值替代實際的輸出值。例如,你可以分配0或NullWritable到輸出的0到18的位置。

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名

SequenceOffsetTransform 序列偏移轉換

[原始碼]

序列偏移變換採用一個序列,並在一個或多個列中以指定的次數步轉換。它具有2種操作模式(OperationType enum),相對於它執行的列:

原處:將在原處進行操作,修改指定列中的值。

新列:操作可能產生新列,原始(源)列保持未修改。

此外還有兩種模式(EdgeHandling enum)處理原始序列之外的值:

修剪序列: 整個序列被一個指定的步驟修剪

指定值:對任何原始序列之外的值,他們將被給一個指定的值。

注意1:當指定偏移量時,它們按如下方式完成:正偏移:將指定列中的值移動到稍後的時間。更早的時間步長要麼被修剪要麼給定指定的值;這些列中的最後值將被截斷/刪除。

注意2:在使用TrimSequence時必須小心:例如,如果我們在一個資料集上鍊接多個序列偏移轉換,那麼最終可能修剪得比我們想象的要多得多。在這種情況下,最終使用指定值可能更好。


AppendStringColumnTransform 追加字串列轉換

[原始碼]

在一個列中追加一個字串

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的記錄
  • 返回一個轉換後的writable物件

ChangeCaseStringTransform 更改大小寫字串轉換

[原始碼]

更改一個字串列的大小寫(例如全改為小寫)


ConcatenateStringColumns 連線的字串列

[原始碼]

把一個或多個字串列連線成一個新的字串列。保留組成字串列,所以如果需要,使用者必須手動刪除他們。

TODO: 在資料向量中使用新的字元縮減功能?

transform
public Schema transform(Schema inputSchema) 

  • 引數columnsToConcatenate是輸出中的列的部份或所有全部順序
map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名

ConvertToString

[原始碼]

把任意值轉換為字串

map
public Text map(Writable writable) 

把writable轉換為字串

  • 引數writable是要進行轉換的writable
  • 返回這個writable的字串
map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的物件
  • 返回一個轉換後的writable物件

MapAllStringsExceptListTransform 對映除了列表外的所有字元轉換

[原始碼]

此方法將所有字串值(除了指定的列表)對映為單個字串值。

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的物件
  • 返回一個轉換後的writable物件

RemoveWhiteSpaceTransform 移除空白轉換

[source]

移除所有空白字元的轉換

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的物件
  • 返回一個轉換後的writable物件

ReplaceEmptyStringTransform 替換空字元轉換

[source]

用指定的字串替換空白字串

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的物件
  • 返回一個轉換後的writable物件

ReplaceStringTransform 替換字元轉換

[source]

替換匹配正規表示式的字串值

map
public Text map(final Writable writable) 

用指定的引數構建ReplaceStringTransform物件

  • 引數columnName是列的名稱
  • 引數map的鍵是正規表示式;值是用來替換舊值的值。

StringListToCategoricalSetTransform 字元列表到分類集合轉換

[原始碼]

將一個分割後的字元列表轉換為一個二分類列。假設可能的字元值為{“a”,”b”,”c”,”d”}並且需要轉換的字元列所括了字元“a,c”,那麼4個輸出列應該有這樣的值[“true”,”false”,”true”,”false”]

transform
public Schema transform(Schema inputSchema) 

  • 引數columnName是需要轉換的列名
  • 引數newColumnNames是需要建立的新列名
  • 引數 categoryTokens 是可能存在的令牌。注意:此列表必須具有與新列名稱列表相同的長度和順序。
  • 引數delimiter是用於轉換的字元的分割符
map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名
StringListToCountsNDArrayTransform 字元列表到統計的NDArray轉換

[原始碼]

把字元列轉換為詞袋,作為一個NDArray的統計。

需要注意的是原來的列會被移除

transform
public Schema transform(Schema inputSchema) 

  • 屬性columnName是要轉換的列名
  • 屬性vocabulary是可能存在的令牌
  • 屬性delimiter是要轉換的字串的分隔符
  • 屬性ignoreUnknown代表是否要忽略不認識的令牌
map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數param是需要轉換的物件
  • 返回一個轉換後的writable物件
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
outputColumnName
public String outputColumnName() 

運算被執行後輸出的列名

  • 返回輸出列名
columnName
public String columnName() 

輸出列名,這將經常和輸入相同

  • 返回輸出列名

StringListToIndicesNDArrayTransform 字元列表到索引的NDArray轉換

[原始碼]

將字元列轉換為稀疏的詞袋,代表NDArray的索引。在嵌入到密集陣列之前適合嵌入或作為有效儲存。


StringMapTransform 字元對映變換

[原始碼]

一個簡單的字元到字元的對映函式。

map中的鍵為原來的值;map中的值是用來替換原值的值。如果字元出現在資料中但沒有在提供的map中出現,這個字元值將不被修改。

map
public Text map(Writable writable) 

  • param columnName Name of the column
  • param map Key: From. Value: To
map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的記錄
  • 返回一個已被轉換的writable

DeriveColumnsFromTimeTransform 從時間得到列的變換

[原始碼]

通過獲取時間列的值得到一些列。可以用於用年,月,日,小時,分鐘,秒等作為新列的例子。

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的記錄
  • 返回一個已被轉換的writable
mapSequence
public Object mapSequence(Object sequence) 

轉換一個序列

  • 引數sequence為要轉換的序列
toString
public String toString() 

運算被應用後輸出列名稱

  • 返回輸出列名稱

StringToTimeTransform 字串到時間轉換

[原始碼]

用JodaTime 通過解析日期/時間字串,把一個字元列轉換為時間列。時間格式是按 http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html指定的

getNewColumnMetaData
public ColumnMetaData getNewColumnMetaData(String newName, ColumnMetaData oldColumnType) 

初始化時不需要指定一個時間格式。如果這個構造方法被使用,該變換將被允許處理靜態格式陣列中定義的幾種常見變換。

  • 引數columnName是字串列名
  • 引數timeZone是用於解析時間的時區
map
public Object map(Object input)  

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的記錄
  • 返回一個已被轉換的writable

TimeMathOpTransform 時間數學運算轉換

[原始碼]

在一個時間列上進行數學運算

需要注意的是:僅支援這些數學運算:加法,減法,標量最小值,標量最大值

對於標量最小值和最大值,時間單位必須是毫秒,值為紀元毫秒格式。

map
public Object map(Object input) 

把一個物件轉換為另外一個物件

  • 引數input是需要轉換的記錄
  • 返回一個已被轉換的writable

有任何問題請聯絡微信

14495907-db1c22bb2dd29e07.jpg
image

如果您覺得我的文章給了您幫助,請為我買一杯飲料吧!以下是我的支付寶,意思一下我將非常感激!

14495907-06e9f2c7606444e7.jpg
image

相關文章