机器学习4——补充:数据预处理、转换器和预估器……


机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。


访问作者github: https://github.com/NefelibataBIGR/Machine_Learning_Notes ,获取笔记代码

  • 深度学习 ⊆ 机器学习 ⊆ 人工智能
    • 机器学习是人工智能的一个实现途径
    • 深度学习是由机器学习发展而来
  • 应用领域:传统预测、图像识别、自然语言处理
  • 理论书:《机器学习》“西瓜书”、《统计学习方法》
  • 库:sklearn
  • ==模型选择==:
    image.png

三、补充:数据预处理

  • 数据分为:
    • 连续型数据:一个区间内可以取任意值(如:身高、体重等)
    • 非连续型数据:只能取某些特定的值(如:性别、民族、血型等)

1、去除唯一属性

  • 通常是一些id属性,不能表示数据本身的分布规律

2、处理缺失值

(1)方法

  • 直接使用含有缺失值的特征(适用于某个数据比较偏离原始的所有数据)
  • 删除含有缺失值的特征(适用于某个特征含有大量缺失值、少量有效值,或含有的缺失值的数据数量相较于总体数据很少,删除影响不大)
  • 缺失值插补:均值插补、同类均值插补、建模预测、高维映射、多重插补、手动插补、极大似然估计、压缩感知、矩阵补全

(2)缺失值插补方法

  • 均值插补:数据可度量->平均值,不可度量->众数
  • 同类均值插补:先分类再用平均值插补
  • 建模预测:将缺失值作为预测目标,利用现有的机器学习算法
    • 缺点:如果其他属性与缺失值无关,则预测无效;如果相关,则没必要考虑缺失值;一般介于两者之间
  • 高维映射:用独热编码(one-hot编码)把属性映射到高维空间
    • 优点:最精确
    • 缺点:计算量大,所需样本量大
  • 多重插补:将缺失值视为一个计算后的值加一个随机噪声,不同噪声得到多个插补值,根据实际情况选择合适的插补值
  • 手动插补:主观估计插补值,需要符合现实规律
    • 优点:效果比较好

3、数据标准化

  • 将某个属性缩放到特定范围
  • 原因:某些算法要求数据零均值、单位方差;消除不同属性不同量级的影响
  • 方法:
    • min-max标准化(归一化):将所有值映射到(0,1)上均匀分布,上下界映射为0、1
    • z-score标准化(规范化):(原数据-均值)÷标准差,进行正态分布标准化

四、sklearn转换器和预估器

  • 转换器(transformer)、预估器(estimator)
  • 转换器用于特征工程、特征处理,预估器用于调用模型、模型训练,注意区分!!!

1、转换器

  • 特征工程处理第一步都要实例化一个转换器类,转换器可以看作特征工程方法的父类
  • fit_transform():
    • fit():输入数据不处理,只计算每一列的均值和标准差
    • transform():数据转换,利用fit()得到的均值和标准差计算

2、预估器

  • sklearn机器学习算法的实现,可以看作算法的父类
  • 分类、回归、无监督学习的所有算法都是estimator的子类
  • 步骤:
    1. 实例化一个预估器(算法)
    2. 训练,生成模型:调用 算法.fit(x_train , y_train)
    3. 模型评估:
      • 直接比对预测值与真实值:
        1. y_pred = 算法.predict(x_test)
        2. y_test == y_pred ?
      • 直接计算准确率:
        • accuracy = 算法.score(x_test, y_test)

七、模型保存与加载

  • 导入库:import joblib
    • joblib.dump(estimator , ‘xxx.pkl’):保存模型
    • esti = joblib.load(‘xxx.pkl’):加载模型

文章作者: Nefelibata BIGR
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Nefelibata BIGR !
  目录