`
bewithme
  • 浏览: 422749 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DataVec/转换-3

    博客分类:
  • dl4j
阅读更多

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

有任何问题请联系微信 

如果您觉得我的文章给了您帮助,请为我买一杯饮料吧!以下是我的支付宝,意思一下我将非常感激!

   

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics