Разъяснение столбцов строки, содержащих тестовые данные - PullRequest
0 голосов
/ 02 мая 2018

Поэтому я использую машинное обучение для прогнозирования класса некоторых данных, как показано ниже в примере. Мои данные связаны с каким-то планировщиком, работающим на сервере, и по времени отправки и типу сервера я помечаю класс

Dataframe: df= sch_name  server_type  subit_time   submit_by    Class
               RCALCAPP  X3333        165703       AAAA         1
               RCALCAPP  X3333        105703       BBBB         0
               PCALCAPP  X3333        165703       AAAA         1
               .
               .
               TCALCAPP  X3344        095703       CCCC         0

Для запуска классификатора я делаю lableencoding для значений столбцов строки. Не уверен, что это правильный подход к экоде или нет, но он работает для меня

le = preprocessing.LabelEncoder()
df = df.apply(le.fit_transform)

Также мне не нужен столбец submit_by для обучения классификатора, поэтому я его удаляю

featureNames = [col for col in df.columns if col not in ['submit_by','status']]

Чтобы подготовить модель, которую я разбил на вышеупомянутом кадре данных, на тренировку, резюме, тестирование и использование ниже

trainFeatures = training[featureNames].values
trainClasses  = training['status'].values

testFeatures= test[featureNames].values
testClasses  = test['status'].values
clf = RandomForestClassifier()
clf.fit(trainFeatures, trainClasses)
score = clf.score(testFeatures, testClasses)
print(score) #.99823742

До сих пор все в порядке. Классификатор работает с данными. Но сейчас я хочу протестировать новый рекорд для классификации. Я пытался сделать следующее:

test_sch = ['TCALCAPP',  'X3344',  '075703']
class_code = clf.predict(test_sch) # [1]

выдал ошибку

ValueError: could not convert string to float: 'TCALCAPP'

И я знаю причину, поскольку она не была закодирована в число. Вот моя проблема, как именно это сделать. Мне нужно передать закодированное значение для «TCALCAPP», «X3344». Но как бы я узнал закодированное значение для новых тестовых данных. Мой подход может быть неправильным, но требование такое же, как указано выше. Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...