Столбцы отсутствуют после вменения и создания фиктивных переменных. Как мне это исправить?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Столбцы отсутствуют после вменения и создания фиктивных переменных. Как мне это исправить?

Сообщение Anonymous »

Вкратце: после вменения мои столбцы в наборе поездов и тестовом наборе различаются.
Код создания поезда, тестового набора данных

Код: Выделить всё

random_state_value = 0

#Define target
X = data.drop(columns = 'income', axis=1)
y = data['income']

#Split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state = random_state_value)

Код: Выделить всё

#Impute missing data
imputer_cat = SimpleImputer(strategy = 'most_frequent')
imputer_num = SimpleImputer(strategy = 'median')

X_train[['workclass', 'occupation', 'native-country']] = imputer_cat.fit_transform(X_train[['workclass', 'occupation', 'native-country']])
X_train[['age']] = imputer_num.fit_transform(X_train[['age']])

X_test[['workclass', 'occupation', 'native-country']] = imputer_cat.fit_transform(X_test[['workclass', 'occupation', 'native-country']])
X_test[['age']] = imputer_num.fit_transform(X_test[['age']])

Код: Выделить всё

#Create dummy vars
X_train = pd.get_dummies(X_train, columns=['workclass', 'education', 'marital-status',
'occupation', 'relationship', 'race', 'gender', 'native-country'], drop_first = True)
X_test = pd.get_dummies(X_test, columns=['workclass', 'education', 'marital-status',
'occupation', 'relationship', 'race', 'gender', 'native-country'], drop_first = True)

y_train = pd.get_dummies(y_train, columns='income', drop_first = True)
y_test = pd.get_dummies(y_test, columns='income', drop_first = True)

Код: Выделить всё

y_test = y_test.values.ravel()
y_train = y_train.values.ravel()
У меня были категориальные переменные, в которых отсутствовали значения. Это то, что я сделал.
1.
разделил данные на поезд и тестовый набор
2.
вменил каждое значение в обучающем и тестовом наборе
3.
создать фиктивные переменные для категориальных переменных
Но затем некоторые столбцы исчезли и длина X_test и X_train разная.
длина не соответствует
столбцы потеряны

Код: Выделить всё

temp_test = X_test.columns.sort_values()
temp_train = X_train.columns.sort_values()

[col for col in temp_train if col not in temp_test]
Это столбцы.
Почему это происходит? И как я могу решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/791 ... hould-i-fi
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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