欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

DataVec/转换-2

程序员文章站 2022-03-01 19:57:33
...
stringMapTransform
public Builder stringMapTransform(String columnName, Map<String, String> mapping) 

在指定的列中用新的值替换一个或多个字符串值。map中的键是旧值;map中的值是要替换的新值。如果一个字符出现在数据中但不在map中,这个字符将不会被修改。

  • 参数columnName是需要进行替换值的列
  • 参数mapping是旧值和新值的映射
stringToTimeTransform
public Builder stringToTimeTransform(String column, String format, DateTimeZone dateTimeZone) 

 

把一个字符列(包括一个日期/时间字符)转换为时间列(通过解析日期/时间字符)

 

  • 参数column是包括日期/时间字符的列
  • 参数format是字符串的格式,时间格式按http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html 里的格试指定
  • 参数dateTimeZone是列的时区
appendStringColumnTransform
public Builder appendStringColumnTransform(String column, String toAppend) 

追加一个字符串到指定的列

  • 参数column是要追加字符串的列
  • 参数toAppend是要被追加到每个writable尾部的字符串
conditionalReplaceValueTransform
public Builder conditionalReplaceValueTransform(String column, Writable newValue, Condition condition) 

如果条件满足,把指定的例的值替换成指定新值。如果条件不满足,旧的值不会被修改。

  • 参数column是需要被操作的列
  • 参数newValue是当条件满足,用来替换旧值的字符串。
  • 参数condition是必须满足的条件
conditionalReplaceValueTransformWithDefault
public Builder conditionalReplaceValueTransformWithDefault(String column, Writable yesVal, Writable noVal, Condition condition) 

 

如果条件满足,将指定的列的值替换为指定的“yes”值,如果不满足条件,替换为指定的“no”值。

  • 参数column是需要被操作的列
  • param yesVal Value to use as replacement, if condition is satisfied  参数yesVal是在条件满足时用来替换旧值的值
  • 参数noVal是在条件不满足时用来替换旧值的值
  • 参数condition是必须满足的条件
conditionalCopyValueTransform
public Builder conditionalCopyValueTransform(String columnToReplace, String sourceColumn, Condition condition) 

 

如果条件满足,从另外一个列取值将指定的列值替换。需要注意的是条件可以是任何通用条件,包括在其它列上,不同于如果满足条件的情况下将被修改的列。

  • 参数columnToReplace是条件满足,值被替换的列。
  • 参数sourceColumn用于替换旧值的列名 
  • 参数condition是要用的条件 
replaceStringTransform
public Builder replaceStringTransform(String columnName, Map<String, String> mapping) 

 

在指定的列中替换一个或多个匹配正则表达式的字符串值。map中的键是正则表达式;map中的值是用于替换旧值的新值。例如:

原值 正则表达式  用于替换旧值的新值 结果
Data_Vec _   DataVec
B1C2T3 \\d one BoneConeTone
'&nbsp&nbsp4.25&nbsp' ^\\s+|\\s+$   '4.25'
  • 参数columnName是要进行替换的列
  • 参数mapping是旧值或正则表达式与新值的映射
ndArrayScalarOpTransform
public Builder ndArrayScalarOpTransform(String columnName, MathOp op, double value) 

在NDArray列上的点积数学运算

  • 参数columnName是要进行计算的NDArray列名
  • 参数op是要进行的数学运算
  • 参数value进行数学运算需要的值
ndArrayColumnsMathOpTransform
public Builder ndArrayColumnsMathOpTransform(String newColumnName, MathOp mathOp, String... columnNames) 

 

在NDArray列上进行一个点积数学运算(例如加法,减法,乘法)。已有列不会被改变,一个新的NDArray列会被添加。

  • 参数newColumnName是新的NDArray列列名
  • 参数mathOp是要进行的数学运算
  • 参数columnNames是用于运算的列名
ndArrayMathFunctionTransform
public Builder ndArrayMathFunctionTransform(String columnName, MathFunction mathFunction) 

 

在一个NDArray列上应用于个点积运算函数 (sin, tanh, abs 等)。这个操作在原来的列上进行。

  • 参数columnName是要进行运算的列名
  • 参数mathFunction是要进行应用的函数
ndArrayDistanceTransform
public Builder ndArrayDistanceTransform(String newColumnName, Distance distance, String firstCol,
                                                String secondCol) 

 

在两个大小相同的NDArray列上计算距离(余弦相似度,欧几里得,马哈顿)。这个操作会用结果添加一个新的列。

  • 参数newColumnName是新的结果列的列名
  • 参数distance是应用的距离
  • 参数firstCol是要参与距离计算的第一个列
  • 参数secondCol是要参与距离计算的第二个列
build
public TransformProcess build() 

创建一个TransformProcess对像


CategoricalToIntegerTransform  分类到整型转换

[源码]

Created by Alex on 4/03/2016.

map
public Object map(Object input) 

把一个对象转换为另外一个对象

  • 参数param是需要转换的对象
  • 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence) 

转换一个序列

  • 参数sequence为要转换的序列
outputColumnName
public String outputColumnName() 

运算被执行后输出的列名

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

输出列名,这将经常和输入相同

  • 返回输出列名

CategoricalToOneHotTransform  分类到OneHot码转换

[源码]

Created by Alex on 4/03/2016.

 
map
public Object map(Object input) 

把一个对象转换为另外一个对象

  • 参数param是需要转换的对象
  • 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence) 

转换一个序列

  • 参数sequence为要转换的序列
outputColumnName
public String outputColumnName() 

运算被执行后输出的列名

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

输出列名,这将经常和输入相同

  • 返回输出列名

IntegerToCategoricalTransform 整型到分类转换

[源码]

map
public Object map(Object input) 

把一个对象转换为另外一个对象

  • 参数param是需要转换的对象
  • 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence) 

转换一个序列

  • 参数sequence为要转换的序列

PivotTransform 转置变换

[源码]

 

转置变换在两个列上操作。

 

  • 作为一个键值操作的一个分类列 
  • 另外一列包括一个必要的值,转置变换取键值对把它们分解为独立的列。

例如,用概要 [col0, key, value, col3]和带有键{a,b,c}的值,输出概要为 [col0, key[a], key[b], key[c], col3]并且输入(col0Val, b, x, col3Val) 映射到(col0Val, 0, x, 0, col3Val)。

当列被扩大时,默认值会被使用,例如0用作数字列。

 

transform
public Schema transform(Schema inputSchema) 
  • 参数keyColumnName为用于扩展的键列
  • 参数valueColumnName是包括值的列名称

StringToCategoricalTransform 字符串到分类转换

[源码]

把一个字符串列转换为分类列

 
map
public Object map(Object input) 

把一个对象转换为另外一个对象

  • 参数param是需要转换的对象
  • 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence) 

转换一个序列

  • 参数sequence为要转换的序列

AddConstantColumnTransform 添加常量列变换

[源码]

添加一个新列,列中所有记录的值都是相同的


DuplicateColumnsTransform

[复制列转换]

 

复制一个或多个列。被复制的列就在原列的后面。

 

transform
public Schema transform(Schema inputSchema) 
  • 参数columnsToDuplicate是需要复制的列的列表
  • 参数newColumnNames是被复制后新列的名称
map
public Object map(Object input) 

把一个对象转换为另外一个对象

  • 参数input是需要转换的对象
  • 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence) 

转换一个序列

  • 参数sequence为要转换的序列
outputColumnName
public String outputColumnName() 

运算被执行后输出的列名

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

输出列名,这将经常和输入相同

  • 返回输出列名

 

有任何问题请联系微信 

DataVec/转换-2
            
    
    博客分类: dl4j dl4jdeeplearning4jjava机器学习

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

DataVec/转换-2
            
    
    博客分类: dl4j dl4jdeeplearning4jjava机器学习