Восстановление идентификаторов экземпляров после обучения и прогнозирования - PullRequest
0 голосов
/ 28 июня 2018

У меня есть набор данных со столбцом ID для каждого образца, как в этом примере:

id score1 score2 score3
1  0.41   0.37   0.04
2  0.19   0.33   0.277
3  0.21   0.33   0.037
4  0.49   0.23   0.378
5  0.51   0.78   0.041

Чтобы подогнать и предсказать классификатор ML по этим данным, я должен удалить столбец идентификатора из данных

X = np.array(df.drop(['id'], 1)) 
X_train, X_test = model_selection.train_test_split(X, test_size=0.2)`
clf.fit(X_train)
pred = clf.predict(X_test)

Мне интересно, как я могу восстановить идентификатор в результатах прогнозирования, чтобы я мог идентифицировать каждый образец, правильно ли он был классифицирован или нет? потому что я уже знаю правильную этикетку образцов. Или, если есть способ сохранить идентификатор (может быть числовым или не числовым) в тренинге?

Я нашел этот связанный вопрос, но я не могу понять, что делать, потому что они говорят о других вещах, таких как Census Estimator и т. Д., И я запускаю очень простой скрипт Python с numpy и библиотеки scikit-learn.

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете использовать функции Панд для этого. Я использовал набор данных iris, и код ниже работает нормально. label столбец фактических меток.

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
df = pd.read_csv("ids.csv", sep=",")
clf = LogisticRegression()

X = df
y = df['label']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
X_train_data = X_train.iloc[:,1:5]
X_test_data = X_test.iloc[:,1:5]
clf.fit(X_train_data, y_train)
pred = clf.predict(X_test_data)
sub = pd.DataFrame(data=X_test)
sub['pred'] = pred
sub.head() #Shows the first few rows

Результат выглядит так

id   f1   f2   f3   f4   label  pred
144  6.8  3.2  5.9  2.3   2     2
68   5.8  2.7  4.1  1.0   1     1
10   4.9  3.1  1.5  0.1   0     0
137  6.3  3.4  5.6  2.4   2     2
46   4.8  3.0  1.4  0.3   0     0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...