Сделать прогноз для новых данных для модели, обученной с использованием фиктивных данных

#linear-regression #prediction #dummy-variable

#линейная регрессия #прогнозирование #фиктивная переменная

Вопрос:

Я преобразовал свои категориальные данные в столбцы, используя фиктивные переменные. А затем выполнил разделение теста поезда. Наконец, обучили модель и протестировали с тестовыми данными. Поскольку тестовые данные уже находятся в том же формате, который понимает модель, он прогнозирует без каких-либо проблем, но когда я хочу сделать прогноз для совершенно новых данных, создание фиктивных переменных для новых данных работает плохо. Могу ли я узнать, как это обычно делается? Вот мой код..

 import pandas as pd
import numpy as np

df = pd.read_csv('salary_prediction_usa_finance_job_v2.csv')

df_columns = df.columns

degree = pd.get_dummies(df.degree, prefix='degree', drop_first=True)
masters = pd.get_dummies(df.masters, prefix='masters').iloc[:, 1:]
prof_member = pd.get_dummies(df.professional_membership, prefix='professional_membership', drop_first=True)
df = pd.concat([df, degree,masters,prof_member], axis=1)
df = df.drop(['degree','masters','professional_membership'], axis=1)

X = df.drop('salary_per_year', axis=1)
y = df['salary_per_year']

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)

new_data = {'degree':['yes'], 'masters':['no'], 'professional_membership':['no'], 'years_experience':[10],'audit_experience':[4], 'IT_skill_rate':[6], 'Size_of_the_company_worked':[3]}

single_df = pd.DataFrame(data=new_data)