Я использую iterativeImputer из Sklearn.Impute, чтобы заполнить недостающие значения в моем наборе данных. Один из моих столбцов, Education_level, является категориальной функцией, поэтому я сначала применил метку для преобразования его в числовую форму, прежде чем вменять. Однако после обратного преобразования кодированных значений обратно в их исходные категории я получаю значения NAN в некоторых строках.import numpy as np
import pandas as pd
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
from sklearn.preprocessing import StandardScaler, LabelEncoder
# Copy the original dataset
df_iter = df.copy()
# Encode categorical column
encoder = LabelEncoder()
df_iter['Education_Level'] = encoder.fit_transform(df_iter['Education_Level'])
# Apply StandardScaler
scaler = StandardScaler()
data_scaled = scaler.fit_transform(df_iter)
# Apply IterativeImputer
imputer = IterativeImputer(max_iter=10, random_state=42)
imputed_data = imputer.fit_transform(data_scaled)
# Convert back to original scale
df_iter = pd.DataFrame(scaler.inverse_transform(imputed_data), columns=df_iter.columns)
# Convert Education_Level back to integer values
df_iter['Education_Level'] = np.round(df_iter['Education_Level']).astype(int)
# Inverse transform the encoded labels
df_iter['Education_Level'] = encoder.inverse_transform(df_iter['Education_Level'])
< /code>
Проблема, с которой сталкиваются:
Некоторые строки в образовании_LEVEL по -прежнему содержат значения NAN после upverse_transform. < /p>
Я подозреваю, что итеративный Иимпутер генерирует значения, которые не совпадают с исходными категориями, приводящие к ошибке, когда они не соответствуют значениям. Точно соответствует исходным кодируемым категориям? Описание изображения здесь
Введите описание изображения здесь < /p>
Что я попробовал
использовал использованный метка Значения. < /p>
обратное преобразование данных обратно с использованием strandardscaler.inverse_transform. < /p>
округление значений образования_лвеля до ближайшего целого числа, прежде чем я ожидал, что я ожидал, что я ожидал, что я ожидаю, что я ожидаю, что я ожидал, что я ожидаю, что я ожидал, что я ожидал, что я ожидал, что я ожидал, что я ожидал, что я ожидаю, что я ожидаю, что я ожидаю, что я ожидаю, что я ожидаю, что я ожидал. переменные. < /p>
После обратной преобразования метки, я ожидал, что все строки имеют достоверные метки категорий вместо NAN. < /p>
Что на самом деле произошло
Некоторые строки в образовании. (например, 1,75, 2.3), который не отображался правильно с исходными категориями метки. < /p>
Дополнительные попытки исправить его
Пробое значения округления перед обратным преобразованием, но все же получили NAN, потому что некоторые значения были немного за пределами достоверного диапазона марки.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... belencoded
Значения NAN после применения итеративного импультера и обратного преобразования данных ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Вычисление повторного интеграла путем итеративного применения правила одномерных трапеций.
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Многопоточные методы вычисления итеративного решателя (итерации Якоби) на ЦП
Anonymous » » в форуме JAVA - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Оптимизация итеративного расчета a[i] = a[i-1]*b[i] + c[i] с помощью NumPy
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-