机器学习之数据预处理-构造好的训练数据集

一  缺失数据的处理

        df.isnull().sum() 得到每列缺失值数量

    (1)将存在缺失值的特征或样本删除

            df.dropna()删除数据集中包含缺失值的行

            df.dropna(axis=1)删除数据集中至少包含一个NAN值得列

    (2)缺失数据填充

        常用的插值技术之一就是均值插补,即使用相应的特征均值来替换缺失值。可以使用sklearn中的Impute类实现此方法。

二  处理类别数据

类别数据包括标称特征(举例:T恤的颜色)和有序特征(举例:衣服的尺寸,XL>L>M)。

    (1)有序特征的映射

        我们可以将类别字符串转换为整数。

    (2)类标的编码

        类标并不是有序的,对于特定的字符串类标,赋予哪个整数值对我们来说并不重要。我们可以采用枚举的方式从0开始设定类标。

    (3)标称特征上的独热编码(举例:color特征将转换为新的特征:blue,green,red,可以使用二进制编码)

三  将数据集划分为训练数据集和测试数据集

        这里调用sklearn中的train_test_split函数可以实现。

四 将特征的值缩放到相同的区间

        两种常用的方法为:归一化和标准化。归一化指的是将特征的值缩放到区间[0,1],它是最小-最大缩放的一个特例。但在大部分机器学习算法中,标准化的方法却更实用。前者可以调用MinMaxScaler类实现,后者可以调用StandardScaler类实现。

五 选择有意义的特征

六 通过随机森林判定特征的重要性

    利用RandomForestClassifier类实现





猜你喜欢

转载自blog.csdn.net/qq_27584277/article/details/80346731