机器数据分析平台

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

    特征加工

    最近更新时间:2021-10-19 17:30:29

    使用场景

    在数据中的字段比较原始或者比较粗糙的情况下,我们会需要先对特征做一些加工,通过数据缩放、数据编码、数据筛选、数据降维等方式实现特征加工的目的。

    通用语法

    |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以便下次调用。
    • 数据集必须不为空。

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

    数据缩放

    数据缩放指的是将不同范围的特征数据缩放到同一个范围之间,比如,将原始范围在[0,10000]之间的A字段和原始范围在[0.001,0.01]之间的B字段缩放到[0,1]之间,使建模过程中特征的重要性不会因为数据范围的大小而受到影响。常用的缩放方式有标准化、归一化、和指定范围缩放。在没有明确偏好的情况下, 推荐先使用标准化处理方式实现数据缩放。

    数据标准化 - 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。

    数据降维

    数据降维指的是采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中,旨在去除在原始的高维空间中冗余的噪音信息,提取出最有效的信息,提高建模的精确性。常用的数据降维方式有线性映射(PCA、LDA)和非线性映射(核PCA)。在没有明确偏好的情况下, 推荐先使用PCA方式实现数据缩放。

    主成分分析 - Principal Component Analysis/PCA

    主成分分析(PCA)通过计算协方差矩阵分解特征向量,通过线性投影,将高位的数据映射到地位的空间中表示,并期望在投影的维度上数据的方差最大,以此实现尽可能用少的特征数据解释最多的信息。

    语法:

    ..| fit PCA n_components=<int | float | mle | none(default) | > svd_solver=<auto(default) | full | arpack | randomized> <feature_field_1> <feature_field_2> [into model_name]...  
    

    参数说明:

    • n_components参数,用来指定保留多少个特征,即要降维到的维度数。如不提供,n_components默认为None。

      • n_components=int,即直接指定降维到的维度数目。
      • n_components=float, 即使用输入的值作为主成分的方差和所占的最小比例阈值,让PCA类自己去根据样本特征方差来决定降维到的维度数。
      • n_components=mle, 即PCA使用MLE算法自行决定将维到的维度数。
      • n_components=None(默认值), 使用min(样本数,特征数)作为维度数目。
    • svd_solver参数,用来指定奇异值分解SVD的方法,由于特征分解是奇异值分解SVD的一个特例,一般的PCA库都是基于SVD实现的。

      • svd_solver=auto(默认值),PCA方法自行从以下三种选项选择一种最合适的方法。
      • svd_solver=full, 使用传统意义上的SVD LAPACK分解。
      • svd_solver=arpack,使用加快的SVD ARPACK分解没适用于数据维度多同时主成分数目比例又较低的PCA降维。在这种场景下,n_components必须要小于样本量和特征量中偏小的一个。
      • svd_solver=randomized,使用Halko等人提出的分解方法。
    以上内容是否对您有帮助?
  • Qvm free helper
    Close