- 在 小型数据集 上执行机器学习任务时,常常会遇到过拟合问题,因为模型可准确记住所有训练数据,包括噪音和不相关的特征。这种模型通常在新的测试或以前从未见过的真实数据上表现不佳。因为模型对待训练数据过于严肃,所以没有从中学习到真正有意义的模式,只是记住它所看到的一切。--解决法之一:正则化
- 机器学习算法没有老新之分,只有说新的发现。经典算法反映客观规律,以前数据量不大,应用不广泛。但随着大数据出现, 数据量足够多,且计算机算力提高,GPU、分布式计算等,因此机器学习算法应用发挥巨大。
-
特征工程具体内容包括:
- 数据预处理
- 特征选择
- 特征变换与提取
- 特征组合
- 数据降维
特征工程的两个基本面:
- 基于数理和模型的考虑
- 基于业务的考虑(需要了解数据所属业务领域的专业知识)
几个重要观点:
- 在实际的特征工程实践中,这两个基本面都要考虑,尤其是业务层面,直接关乎到模型的表现。
- 在数据维度特别大、特征数量极多的情况下,找到数据中的 magic feature 至关重要。
- 总之,数据和特征决定了机器学习效果的上限,模型和算法只是不断地逼近这个上限而已。
-
特征选择即选择与目标变量相关的自变量进行用于建模,也叫变量筛选。
特征选择基于两个基本面:- 特征是否发散,即该特征对于模型是否有解释力,如果特征是一成不变的(0方差),这样的特征是无用的。
- 特征是否与目标变量有一定的相关性。这一点要充分基于业务层面去考虑。
特征选择柳叶三刀:
- Filter (飞刀):特征过滤----------方差筛选、卡方检验
- Wrapper (弯刀):特征包裹-----选定一些算法,根据算法在数据上的表现来选择特征集合,一般选用的算法包括随机森林、支持向量机和k近邻等常用算法。
- Embedded (电刀):特征嵌入--基于惩罚项的特征选择法、基于树模型的特征选择法
除了基于pandas和numpy的手动特征选择外,sklearn也有一套特征选择模块
-
特征变换与特征提取
数据特征逐个处理
- 数据标准化:基于列
- 数据区间缩放
- 数据归一化:基于行
- 数值目标变量对数化处理(有必要的情况下)
- 定量特征二值化(有必要的情况下)
- 定性特征哑编码(one-hot)
- 大文本信息提取(效果类似于one-hot)