Как принять пользовательский ввод и передать его в прогностическую модель - PullRequest
0 голосов
/ 05 февраля 2019

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

Теперь пользователь передает новые данные, которые должны пройти через эту модель и дать результат.

Этотекстовые данные, а ниже - фрейм данных:

     Description          Category
     Rejoin this domain   Network
     Laptop crashed       Hardware
     Installation Error   Software

Код:

  ############### Feature extraction ##############
  countvec = CountVectorizer()
  counts = countvec.fit_transform(read_data['Description'])
  df = pd.DataFrame(counts.toarray())
  df.columns = countvec.get_feature_names()
  print(df)

  ########## Join with original data ##############
  df = read_data.join(df)
  a = list(df.columns.values)

  ########## Creating the dependent variable class for "Category" variable 
  ###########
  factor = pd.factorize(df['Category'])
  df.Category = factor[0]
  definitions = factor[1]
  print(df.Category.head())
  print(definitions)

  ########## Creating the dependent variable class for "Description" 
  variable ###########
  factor = pd.factorize(df['Description'])
  df.Description = factor[0]
  definitions_1 = factor[1]
  print(df.Description.head())
  print(definitions_1)

  ######### Split into Train and Test data #######################
  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.80, random_state = 21)

  ############# Random forest classification model #########################
  classifier = RandomForestClassifier(n_estimators = 10, criterion = 'entropy', random_state = 42)
  classifier.fit(X_train, y_train)

  ######### Predicting the Test set results ##############
  y_pred = classifier.predict(X_test)

  #####Reverse factorize (converting y_pred from 0s,1s and 2s to original class for "Category" ###############
  reversefactor = dict(zip(range(3),definitions))
  y_test = np.vectorize(reversefactor.get)(y_test)
  y_pred = np.vectorize(reversefactor.get)(y_pred)

  #####Reverse factorize (converting y_pred from 0s,1s and 2s to original class for "Description" ###############
  reversefactor = dict(zip(range(53),definitions_1))
  X_test = np.vectorize(reversefactor.get)(X_test)

1 Ответ

0 голосов
/ 05 февраля 2019

Если вы хотите прогнозировать только данные пользователя, я бы просто загрузил новый csv (или другой формат), содержащий данные пользователя (убедившись, что столбцы такие же, как в исходном наборе обучающих данных, за вычетом зависимыхпеременная, очевидно), и вы можете получить прогнозы для вашей задачи:

user_df = pd.read_csv("user_data.csv")

#insert a preprocessing step if needed to make sure user_df is identical to the original dataset

new_predictions = classifier.predict(user_df)

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