Python NLP - ValueError: не удалось преобразовать строку в число с плавающей точкой: 'UKN' - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь обучить случайного лесного регрессора прогнозировать почасовую заработную плату работника с учетом предоставленной должностной инструкции. Обратите внимание, я подписал NDA и не могу загрузить реальные данные. Приведенное ниже «наблюдение» является синтетическим класс, я возвращаю следующую ошибку:

rfr = RandomForestRegressor()
m0 = Model(model_instance=rfr,data=unique_templates,text_col='jp_description',target_col='onet_salary')

>>>> ValueError: could not convert string to float: 'UKN'

Что я могу сделать, чтобы устранить проблему? Есть ли токен в наборе тестов, который не в наборе поездов, который преобразуется в 'UKN' - что вызывает ошибку?

Есть какие-нибудь рекомендации?

Редактировать 1: Расширенное сообщение об ошибке:

ValueError                                Traceback (most recent call last)
<ipython-input-69-d21643a194e8> in <module>
      1 rfr = RandomForestRegressor()
----> 2 m0 = Model(model_instance=rfr,data=unique_templates,text_col='jp_description',target_col='onet_salary')

<ipython-input-68-88d95cf81383> in __init__(self, model_instance, data, text_col, target_col, test_size, random_state)
      9 
     10         self._split_data()
---> 11         self._fit()
     12 
     13     def _fit(self):

<ipython-input-68-88d95cf81383> in _fit(self)
     21             ('classifier', model),  
     22         ])
---> 23         self.pipeline.fit(self.text_train,self.value_train)
     24         self.preds = self.pipeline.predict(self.text_test)
     25 

~/opt/anaconda3/lib/python3.7/site-packages/sklearn/pipeline.py in fit(self, X, y, **fit_params)
    354                                  self._log_message(len(self.steps) - 1)):
    355             if self._final_estimator != 'passthrough':
--> 356                 self._final_estimator.fit(Xt, y, **fit_params)
    357         return self
    358 

~/opt/anaconda3/lib/python3.7/site-packages/sklearn/ensemble/forest.py in fit(self, X, y, sample_weight)
    276 
    277         if getattr(y, "dtype", None) != DOUBLE or not y.flags.contiguous:
--> 278             y = np.ascontiguousarray(y, dtype=DOUBLE)
    279 
    280         if expanded_class_weight is not None:

~/opt/anaconda3/lib/python3.7/site-packages/numpy/core/_asarray.py in ascontiguousarray(a, dtype)
    177 
    178     """
--> 179     return array(a, dtype, copy=False, order='C', ndmin=1)
    180 
    181 

ValueError: could not convert string to float: 'UKN'
...