人工智能-机器学习-哪些机器学习算法不需要做归一化处理?

101 阅读2分钟

在实际应用中,需要归一化的模型:(私信小编免费领取AI面试资料包)

1.基于距离计算的模型:KNN。

2.通过梯度下降法求解的模型:线性回归、逻辑回归、支持向量机、神经网络。

 

但树形模型不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、随机森林(Random Forest)。

 

其他如管博士所说,我归一化和标准化主要是为了使计算更方便 比如两个变量的量纲不同 可能一个的数值远大于另一个那么他们同时作为变量的时候 可能会造成数值计算的问题,比如说求矩阵的逆可能很不精确 或者梯度下降法的收敛比较困难,还有如果需要计算欧式距离的话可能 量纲也需要调整 所以我估计lr 和 knn 标准化一下应该有好处。

至于其他的算法 我也觉得如果变量量纲差距很大的话 先标准化一下会有好处。

 

我们会经常提到标准化、归一化,那到底什么是标准化和归一化呢?

 

标准化:特征均值为0,方差为1

公式:

归一化:把每个特征向量(特别是奇异样本数据)的值都缩放到相同数值范围,如[0,1]或[-1,1]。

 

最常用的归一化形式就是将特征向量调整为L1范数(就是绝对值相加),使特征向量的数值之和为1。

而L2范数就是欧几里得之和。

data_normalized = preprocessing.normalize( data , norm="L1" )

 

公式:

这个方法经常用于确保数据点没有因为特征的基本性质而产生较大差异,即确保数据处于同一数量级(同一量纲),提高不同特征数据的可比性。