学习完机器学习,把知识点做一个整理,提供给需要面试的各位以及后期自己的巩固复习作一个简单的知识点梳理。
本文针对有一定机器学习基础的同学,如果有不正确处请指正。
预处理与特征工程
异常值/缺失值
- 1个:可以直接删除;
- 多个:通过方差齐性检验判断是否删除异常值所在特征列,或者用众数(针对离散值)或者均数(针对连续值)进行替换补充所在行。
归一化、标准化
- 树模型/逻辑回归型模型:不需要此预处理;
- SVM:需要此预处理,因为数据必须满足正态分布才可以进行后续的损失函数中去运用最小二乘法和距离计算,且提高精度
- 梯度和矩阵:加快求解速度
文字编码独热化,时间sin化
特征选择
- 过滤法:方差过滤、相关性过滤(卡方检验、F检验、互信息法),适合需要遍历所有特征的模型(决策树合适但随机森林不合适)
- 嵌入法:L1,L2,输入阈值即可通过模型判断选择特征,适合线性回归和逻辑回归
- 包装法:RFE,黑箱,通过Loss function判断选择特征,适合SVM
总结:一般来说,过滤法更快,但是粗糙。后两者更准确但是比较慢。当数据量很大时,优先使用方差过滤和互信息法。使用逻辑回归时,用嵌入法。使用SVM时,用包装法。迷茫的时候,从过滤法走起。
降维
- PCA:衡量指标是对角线,对角线上是方差,利用特征值分解映射新维度,不可解释
- SVD:衡量指标是奇异值,对角线上是奇异值,利用奇异值分解映射新维度,减少计算量
- LDA:找到有判别力的维度映射,相似的特征映射在一起
- PCA与LDA之间的差别:PCA和LDA虽然都用到数据降维的思想,但是监督方式不一样,目的也不一样。PCA是为了去除原始数据集中冗余的维度,让投影子空间的各个维度的方差尽可能大,也就是熵尽可能大。LDA是通过数据降维找到那些具有有判