一 缺失数据的处理
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类实现