• 在 小型数据集 上执行机器学习任务时,常常会遇到过拟合问题,因为模型可准确记住所有训练数据,包括噪音和不相关的特征。这种模型通常在新的测试或以前从未见过的真实数据上表现不佳。因为模型对待训练数据过于严肃,所以没有从中学习到真正有意义的模式,只是记住它所看到的一切。--解决法之一:正则化
  • 机器学习算法没有老新之分,只有说新的发现。经典算法反映客观规律,以前数据量不大,应用不广泛。但随着大数据出现, 数据量足够多,且计算机算力提高,GPU、分布式计算等,因此机器学习算法应用发挥巨大。
  • 特征工程具体内容包括:

    • 数据预处理
    • 特征选择
    • 特征变换与提取
    • 特征组合
    • 数据降维

    特征工程的两个基本面:

    • 基于数理和模型的考虑
    • 基于业务的考虑(需要了解数据所属业务领域的专业知识)

    几个重要观点:

    • 在实际的特征工程实践中,这两个基本面都要考虑,尤其是业务层面,直接关乎到模型的表现。
    • 在数据维度特别大、特征数量极多的情况下,找到数据中的 magic feature 至关重要。
    • 总之,数据和特征决定了机器学习效果的上限,模型和算法只是不断地逼近这个上限而已。
  • 特征选择即选择与目标变量相关的自变量进行用于建模,也叫变量筛选。 
    特征选择基于两个基本面:

    • 特征是否发散,即该特征对于模型是否有解释力,如果特征是一成不变的(0方差),这样的特征是无用的。
    • 特征是否与目标变量有一定的相关性。这一点要充分基于业务层面去考虑。

    特征选择柳叶三刀:

    • Filter (飞刀):特征过滤----------方差筛选、卡方检验
    • Wrapper (弯刀):特征包裹-----选定一些算法,根据算法在数据上的表现来选择特征集合,一般选用的算法包括随机森林、支持向量机和k近邻等常用算法。
    • Embedded (电刀):特征嵌入--基于惩罚项的特征选择法、基于树模型的特征选择法

    除了基于pandas和numpy的手动特征选择外,sklearn也有一套特征选择模块

  • 特征变换与特征提取

    数据特征逐个处理

    • 数据标准化:基于列
    • 数据区间缩放
    • 数据归一化:基于行
    • 数值目标变量对数化处理(有必要的情况下)
    • 定量特征二值化(有必要的情况下)
    • 定性特征哑编码(one-hot)
    • 大文本信息提取(效果类似于one-hot)