Итак, у меня есть это сомнение и я искал ответы.Поэтому вопрос заключается в том, когда я использую
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
изменятся относительно значений Max
и Min
df[['A','B']]
.Подготовка данных df[['A','B']]
относится к Min Max
из df[['A','B']]
.
Как подготовка данных может быть действительной в отношении разных чисел?Я не понимаю, как прогноз будет верным здесь.