起初,我对虹膜数据集使用常规逻辑回归,得出的准确度为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))
答案 0 :(得分:0)
在机器学习中标准化数据集会降低准确性吗? -简短答案,不。
数据规范化主要与收敛性有关,与准确性无关。但是,有些模型假定数据是特定分布的,在这种情况下,规范化可能变得非常重要。
在情况1中,功能未进行标准化,因此优化算法的路径稍长;对于情况2,在所有方向上均相等,因此收敛速度稍快,但是此示例强烈适用于最小-最大,单位向量归一化。
逻辑回归的一些假设:
但是,逻辑回归不假设数据归一化。因此,这不是拟合逻辑回归模型的必要步骤。
假设是错误的,归一化将提高模型的准确性。
平均居中和缩放到单位方差通常是有用的,但这都取决于数据的属性。
如果您的数据不规则,那么平均减法可能会损害逻辑回归的任何强大假设,例如由于数字原因而引入一些非线性,从而使某些特征偏向导致精度降低的方向。