Обучение и тестирование ML из двух разных источников - PullRequest
0 голосов
/ 22 марта 2020

Я использую sklearn для задачи классификации. Я хочу тренировать свою модель по данным из таблицы «поезд» и проверять ее по данным из другой таблицы «тест». Обе таблицы имеют одинаковые точные характеристики, но разное количество строк. У меня есть код ниже, но я получаю сообщение об ошибке: (<class 'ValueError'>, ValueError('Found input variables with inconsistent numbers of samples: [123, 174]',), <traceback object at 0x0000016476E10C48>).

что я делаю не так?

get_train_data = 'select * from train;'  
get_test_data = 'select * from test;'
df_train = pd.read_sql_query(get_train_data, con=connection)  
df_test = pd.read_sql_query(get_test_data, con=connection)
X = df_train[:, 2:30]
Y = df_test[:, :30]
X_train, X_test, Y_train, Y_test = train_test_split(X, Y)
model.fit(X_train, Y_train)
predictions = model.predict(X_test)
split_mat=confusion_matrix(Y_test, predictions)

1 Ответ

1 голос
/ 22 марта 2020

Если вы хотите тренироваться на фрейме данных df_train и тестировать на фрейме данных df_test, почему вы берете функции df_train и целевой столбец df_test и передаете их в функцию train_test_split?

Вы можете просто сделать следующее:

get_train_data = 'select * from train;' 
get_test_data = 'select * from test;'

df_train = pd.read_sql_query(get_train_data, con=connection)  
df_test = pd.read_sql_query(get_test_data, con=connection)

X_train = df_train[:, 2:30]
y_train = df_train.y # assuming y is the name of your target variable in df_train

X_test = df_test[:, i:j] # change i to j with the number that allow you to take the same columns as X_train
y_test = df_test.y # assuming y is the name of your target variable in df_test

model.fit(X_train, y_train)
predictions = model.predict(X_test)

# Do something with predictions, e.g.
mean(predictions == y_test)

...