Код создания поезда, тестового набора данных
Код: Выделить всё
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