【发布时间】:2018-11-07 00:31:27
【问题描述】:
所以,我有这个疑问,一直在寻找答案。所以问题是我什么时候使用,
from sklearn import preprocessing
min_max_scaler = preprocessing.MinMaxScaler()
df = pd.DataFrame({'A':[1,2,3,7,9,15,16,1,5,6,2,4,8,9],'B':[15,12,10,11,8,14,17,20,4,12,4,5,17,19],'C':['Y','Y','Y','Y','N','N','N','Y','N','Y','N','N','Y','Y']})
df[['A','B']] = min_max_scaler.fit_transform(df[['A','B']])
df['C'] = df['C'].apply(lambda x: 0 if x.strip()=='N' else 1)
之后我将训练和测试模型(A,B 作为特征,C 作为标签)并获得一些准确度分数。现在我的疑问是,当我必须预测新数据集的标签时会发生什么。说,
df = pd.DataFrame({'A':[25,67,24,76,23],'B':[2,54,22,75,19]})
因为当我对列进行规范化时,A 和 B 的值将根据新数据而不是模型将要训练的数据进行更改。
所以,现在我的数据在下面的数据准备步骤之后,将是。
data[['A','B']] = min_max_scaler.fit_transform(data[['A','B']])
A 和 B 的值将相对于 df[['A','B']] 的 Max 和 Min 值发生变化。 df[['A','B']] 的数据准备是相对于df[['A','B']] 的Min Max。
数据准备如何对不同的数字关联有效?我不明白这里的预测如何正确。
【问题讨论】:
-
如果您想使用经过训练的模型,您将不得不使用相同的缩放器。保存缩放器并重新应用它。
标签: python machine-learning scikit-learn normalization sklearn-pandas