前些天在 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_tran