机器数据分析平台

  • 机器数据分析平台 > 使用文档 > 应用平台 > Pandora机器学习工具包 >fit的使用方法详述 > 数据预处理

    数据预处理

    最近更新时间:2021-12-06 14:25:59

    使用场景

    在数据比较原始或者比较粗糙的情况下,我们需要先先通过数据缩放、数据编码等方式对数据进行一些处理,使其可以更有效地用于统计分析或者机器学习。

    通用语法

    |fit <algo_name> [options] <feature_field_1> <feature_field_2> [into model_name]...  
    

    通用参数说明:

    • <algo_name> 必填,用来指定训练模型采用的算法名称。
    • [options]可选,为算法的内置参数,根据提供的算法变化。
    • <feature_field> 必填,可以是一个或者多个字段,用来指定需要的特征字段,给定的feature_field值必须存在于数据集中。
    • [into model_name]可选,用来将fit训练出来的模型保存成model_name以便下次调用。
    • 数据集必须不为空。

    以下算法可以用来做特征加工:

    数据标准化 - StandardScaler

    数据标准化通过去除均值和方差缩放:即计算每个字段的(X-X_mean)/std,进而使所有数据聚集在0附近,方差为1。

    语法:

    ..| fit StandardScaler with_mean=<bool> with_std=<bool> <feature_field_1> <feature_field_2> [into model_name]...  
    

    参数说明:

    • with_mean参数,用来指定是否在缩放之前中心化数据。默认为True。不适用于原始数据特别稀疏的场景。
    • with_std参数,用来指定将原始数据根据标准差缩放。默认为True。

    稳健标准化 - RobustScaler

    稳健标准化是一种将数据标准化的方法,它基于数据的分位数,不易受到极端值的影响。

    稳健标准化将数据缩放到指定的分位数范围,默认为0.25和0.75分位数。

    语法:

    ..| fit RobustScaler with_centering=<bool> with_scaling=<bool> quantile_range=<tuple> <feature_field_1> <feature_field_2> [into model_name]...
    

    参数说明:

    • with_centering参数,默认为True。表明是否要进行中心化。

    • with_scaling参数,默认为True。表明是否要进行标准化。

    • quantile_range参数,用于指定作稳健标准化时的分位数范围。如不提供,默认值为25-75。

    独热编码 - OneHotEncoder

    独热编码是一种将对分类变量数值化的手段,它将变量的N个状态拆分成N个互斥的0-1变量。可以输入多个分类变量,则OneHotEncoder算子将返回各个分类变量的独热编码。

    语法:

    ..|fit OneHotEncoder drop=<first | if_binary | None(default)> handle_unknown=<raise (default) | retrain | ignore> <feature_field_1> <feature_field_2> [into model_name]...
    

    参数说明:

    • drop参数,用来指定是否要在某些情况下删除列:

      • drop=first,删除每一组独热变量中的第一列变量(通常用于防止线性回归出现多重共线性的问题)。

      • drop=if_binary,如果某个分类变量只有两个取值,则删除第一列变量。

      • drop=None(默认值),不删除列。

    • handle_unknown参数,用来指定如何处理在训练过程中没见过的数据,例如:原始数据中只有北京和上海,模型会将北京转换成01,上海转换成10,该参数用来处理如何处理在原始数据中未见过的数据,比如,深圳。默认值为raise。
      • handle_unknown=raise(默认值),即一旦遇到未见过的数据,就终止程序并报错。
      • handle_unknown=retrain,即每次遇到未见过的数据,都重新训练模型。
      • handle_unknown=ignore,忽略该数据并返回原始数据。

    标签编码 - LabelEncoder

    标签编码是一种将对分类变量数值化的手段,它建立起变量标签与一组整数编码的映射关系,并将分类变量编码为一个数值变量。

    标签编码会给予那些较小的字符串更小的整数编码,且整数编码从1开始递增。对于单个数字,英文字母或标点字符,由ascii码对应。对于中文字符(或其他语言字符),由unicode码对应,unicode码整体上会大于ascii码。对于多个字符的,则从其首个字符,依次向后进行比较。这实际上也是按照Python的ord()函数进行排序。

    语法:

    ..|fit LabelEncoder handle_unknown=<raise (default) | retrain | ignore> <feature_field_1> [into model_name]...
    

    参数说明:

    • handle_unknown参数,用来指定如何处理在训练过程中没见过的数据,例如:原始数据中只有北京和上海,模型会将北京转换成0,上海转换成1,该参数用来处理如何处理在原始数据中未见过的数据,比如,深圳。默认值为raise。
      • handle_unknown=raise(默认值),即一旦遇到未见过的数据,就终止程序并报错。
      • handle_unknown=retrain,即每次遇到未见过的数据,都重新训练模型。
      • handle_unknown=ignore,忽略该数据并返回原始数据。
    以上内容是否对您有帮助?
  • Qvm free helper
    Close