Значения NAN после применения итеративного импультера и обратного преобразования данныхPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Значения NAN после применения итеративного импультера и обратного преобразования данных

Сообщение Anonymous »

Я использую 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»