首页 > 解决方案 > 在机器学习中标准化数据集会降低准确性吗?

问题描述

起初,我对 iris 数据集使用了正态逻辑回归,它得到了 0.977 的准确度,而下一次对数据集进行预处理时,我得到了 0.955 的准确度。为什么会这样?

from sklearn.linear_model import LogisticRegression
import sklearn.metrics as metrics
logreg= LogisticRegression()
xtrain, xtest, ytrain, ytest= train_test_split(x,y, test_size= 0.3, random_state= 1)

logreg.fit(xtrain, ytrain)
ypred1= logreg.predict(xtest)
print(metrics.accuracy_score(ytest, ypred1))

带有预处理的模型

logreg= LogisticRegression()
xtrain, xtest, ytrain, ytest= train_test_split(x,y, test_size= 0.3, random_state= 1)

sc1 = StandardScaler()
sc1.fit(x_train)
X_train_std1 = sc1.transform(xtrain)
X_test_std1 = sc1.transform(xtest)

logreg.fit(X_train_std1, ytrain)
ypred1= logreg.predict(X_test_std1)
print(metrics.accuracy_score(ytest, ypred1))

标签: pythonmachine-learningscikit-learnlogistic-regression

解决方案


在机器学习中标准化数据集会降低准确性吗? - 简短的回答,不。

数据归一化主要与收敛性有关,而不是准确性。但是,有些模型假设数据的特定分布,在这些情况下,标准化可能变得非常重要。

在此处输入图像描述

在情况 1 中,特征未归一化,因此优化算法的路径稍长,对于情况 2,它在所有方向上都相等,因此收敛速度稍快,但此示例强烈适用于 min-max,单位向量归一化。

逻辑回归的一些假设:

  1. 观察应相互独立
  2. 自变量之间很少或没有多重共线性
  3. 自变量与对数几率线性相关

但是,逻辑回归不假设标准化数据。因此,这不是拟合逻辑回归模型的必要步骤。

假设是错误的,归一化会提高模型的准确性。

均值居中和缩放到单位方差通常很有用,但这完全取决于数据的属性。

如果您的数据采用不规则的方式,则平均减法可能会通过损害逻辑回归的任何强假设(例如由于数字原因引入一些非线性)而使某些特征偏向导致准确性降低的方向。


推荐阅读