文章目录
插眼:
- 百面机器学习—1.特征工程
- 百面机器学习—2. 特征工程与模型评估要点总结
- 百面机器学习—3.逻辑回归与决策树要点总结
- 百面机器学习—4.SVM模型基础知识
- 百面机器学习—5.SVM要点总结
- 百面机器学习—6.PCA与LDA要点总结
- 百面机器学习—7.K均值算法、EM算法与高斯混合模型要点总结
- 百面机器学习—8.概率图模型之HMM模型
- 百面机器学习—9.前馈神经网络面试问题总结
- 百面机器学习—10.循环神经网络面试问题总结
- 百面机器学习—11.集成学习(GBDT、XGBoost)面试问题总结
- 百面机器学习—12.优化算法
一、 特征归一化与标准化问题
1. 什么是归一化?
为了消除数据特征之间的量纲影响,我们需要对特征进行归一化,使得不同指标之间具有可比性,使得各指标处于同一数值量级,以便于分析。
2. 有哪些归一化方法?
3. 为什么要对数值类型特征做归一化?
1.使不同量纲的特征处于同一数值量级,减少方差大的特征的影响,使模型更准确。
2.加快学习算法的收敛速度。
以随机梯度下降为例,在学习率相同的情况下,经过归一化后的数据容易更快的通过梯度下降找到最优解。
在实际运用中,通过梯度下降的算法求解的模型都需要归一化,包括线性回归、逻辑回归、支持向量机、神经网络等模型。但对决策树模型并不适用,因为信息增益、信息增益比、基尼指数跟特征是否经过归一化是无关的。
4. 标准化与归一化的区别
我是这么理解的,这些可以统一称为归一化,这里的“一”指的同一量级。
最大最小归一化(Min-Max)与均值归一化对异常值敏感,零均值归一化对异常值的鲁棒性更强
二、 组合特征的相关问题
1. 什么是组合特征?
为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。
2. 怎么处理高维组合特征?
利用降维方法来减少两个高维特征组合后需要学习的参数
3. 怎样有效的找到组合特征?
如果只是简单的两两组合,依然会存在参数过多、过拟合问题,而且并不是所有的特征组合都是有意义的。因此我们需要有效的方法找到应该对哪些特征进行组合。基于决策树的特征组合寻找组合特征,每一条从根节点到叶结点的路径可以看做是一种特征组合的方式。
三、如何处理类别型特征?
描述
类别特征指在有限选项内取值的特征,通常为字符串形式。除决策树等少数模型可以直接处理字符串形式的输入,对于逻辑回归、支持向量机等模型都需要先将类别型特征直接转换成数值型特征。
在对数据进行预处理时,应该如何处理类别型特征?
-
序号编码
通常处理类别间具有大小关系的数据,会按照大小关系给类别特征赋予一个数值IDfrom sklearn.preprocessing import OrdinalEncoder import numpy as np label = OrdinalEncoder() list = ['中国', '美国', '法国', '德国'] list = np.array(list).reshape(-1,1) labels = label.fit_transform(list) print(labels)
[[0.] [3.] [2.] [1.]]
如果数据本身并不存在大小关系,使用该编码会给这个特征增加不存在的顺序关系,增加了噪声
-
独热编码—onehot编码
通常用于处理类别间不具有大小关系的特征。from sklearn.preprocessing import LabelEncoder,OneHotEncoder import numpy as np label = LabelEncoder() labels = label.fit_transform(['中国', '美国', '法国', '德国']) print(labels) labels