前些天在 100-Days-Of-ML-Code 上回答了一个关于数据拆分与特征缩放的顺序先后的一个issue,感觉挺有争议性的,故单独拎出来做下笔记说明。我的观点是:机器学习工程中,应该先进行数据划分,再进行特征缩放。出于严谨性,本篇文章是从机器学习-数据挖掘方面进行数据拆分与特征缩放的顺序问题阐述,同时也欢迎大家一起讨论这个问题。
问题阐述
关于数据拆分与特征缩放的顺序先后问题,一般会在工程中遇到,具体表现为:
先数据拆分再特征缩放
from sklearn.preprocessing import StandardScaler,MinMaxScaler
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.1)
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
先数据缩放再数据拆分
from sklearn.preprocessing import StandardScaler,MinMaxScaler
sc = StandardScaler()
X_transform = sc.fit_transform(X)
X_train,X_test,y_train,y_test = train_test_split(X_transform,y,test_size=0.1)</

本文讨论了在机器学习数据预处理中,数据拆分与特征缩放的顺序问题。作者主张应先进行数据划分,再执行特征缩放。文中通过对比两种不同顺序的影响,解释了这样做的理由,强调了样本分布一致性对模型的重要性,并引用sklearn官方代码作为支持。结论认为,遵循先数据拆分后特征缩放的原则能更好地保持数据的样本同质性。

628

被折叠的 条评论
为什么被折叠?



