#python #machine-learning #pickle #logistic-regression
Вопрос:
У меня есть два набора данных. Первый — тренировка , второй — испытание. Прежде всего , я использую LogisticRegression для обучения своей модели и сохраняю ее как ;
df = pd.read_csv('train.csv')
X = df[['Age', 'Gender']]
y = df['Race']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 42)
ohe = OneHotEncoder(handle_unknown='ignore')
ohe.fit(X_train)
X_train_ohe = ohe.transform(X_train).toarray()
ohe_df = pd.DataFrame(X_train_ohe, columns=ohe.get_feature_names(X_train.columns))
clf= LogisticRegression(solver='liblinear')
clf.fit(X_train_ohe, y_train.values.ravel())
X_test_ohe = ohe.transform(X_test)
y_preds = clf.predict(X_test_ohe)
print(" Logistic Regression ")
print ("Logistic Regression : ",accuracy_score(y_test, y_preds))
print(classification_report(y_test, y_preds))
model = LogisticRegression(solver='liblinear')
model.fit(X_train, y_train)
pickle.dump(model,open('model.pkl','wb'))
На этом шаге я хочу создать новый файл python и прочитать файл test.csv. Однако файл test.csv содержит значения NaN в заголовке «Гонка». Я могу заполнить значения NaN 0 в файле test.csv, но что мне нужно сделать после этого шага? Я должен предсказать значения гонки, используя загруженную модель. Я попробовал кодовый блок, как :
df = pd.read_csv('test.csv')
df['Race']=df['Race'].replace(['NaN'], '0')
X = df[['Age', 'Gender']]
model=pickle.load(open('model.pkl','rb'))
Комментарии:
1. Здравствуйте, ваша модель загружена, и вы должны прогнозировать ? или ваша модель еще не загружена ?
2. Привет @Харшпарех , моя модель загружена. Просто я должен предсказать заголовок test.csv «Гонка», который является NaN.
3. Привет, тогда просто используйте эту модель и передайте свой X (фрейм данных), как эти модели.предсказывайте(X) и не передавайте в нем свой Y-код.
4. Привет, ты закрыл свой файл?
5. @VibhavSurve еще нет, сэр.
Ответ №1:
model=pickle.load(open('model.pkl','rb'))
df = pd.read_csv('test.csv')
predictions=model.predict(df.drop('Race',axis=1))
print(predictions)
Комментарии:
1. спасибо за ваш ответ. Однако существует некоторая проблема. Итак , моя переменная «Гонка» имеет значения 1 , 2 , 3 , 4 ,5 в файле data.csv, но в прогнозах отображаются только значения 0 и 1.