首页 > 解决方案 > Sklearn 模型无法接受 TFIDF 向量输入

问题描述

我有一个随机森林回归模型。这个想法是将工资预测为 TFIDF 向量输入的函数。标记化过程没有打嗝。我不确定为什么会触发以下错误:

from sklearn.ensemble import RandomForestRegressor
rfr = RandomForestRegressor(n_estimators=25)
rfr.fit(m0.tfidf,m0.target)

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

我的输入看起来像这样

print(m0.tfidf)
>>>>

  (0, 81730)    0.08678124719228941
  (0, 81720)    0.4051829832483614
  (0, 81308)    0.02466923385401487
  (0, 80658)    0.09283202518518077
  (0, 79980)    0.037640159320294915
  (0, 78655)    0.08005811714948727
  (0, 78110)    0.1397255873105042
  (0, 78008)    0.03997373149323637
  (0, 77736)    0.04180617133028598
  (0, 77311)    0.05507981089212824
  (0, 76997)    0.10662513817286097
  (0, 75593)    0.027872186016968326
  (0, 75568)    0.043971243890655834
  (0, 74902)    0.04832667968768722
  (0, 73157)    0.022533926065197177
  (0, 72647)    0.0349761677792586
  (0, 71808)    0.024035496522681176
  (0, 71074)    0.10259091123985954
  (0, 71068)    0.029069548629712276
  (0, 69111)    0.034672135261239224
  (0, 67955)    0.028020431168325064
  (0, 67295)    0.08966352907219226
  (0, 67271)    0.07466916102470975
  (0, 65680)    0.07633327292778912
  (0, 65582)    0.06302560391647538
  : :
  (33176, 14634)    0.06590551471195294
  (33176, 13543)    0.10461979226562991
  (33176, 13456)    0.13212282016340926
  (33176, 13334)    0.06442044467320687
  (33176, 13305)    0.08944519590878486
  (33176, 12986)    0.12141184143278444
  (33176, 12422)    0.07503587946081758
  (33176, 12078)    0.055370951522851375
  (33176, 12072)    0.05526753229884225
  (33176, 11351)    0.06005084727061667
  (33176, 11228)    0.04758053186984806
  (33176, 10976)    0.05649949678481916
  (33176, 10386)    0.03386386645277619
  (33176, 10180)    0.0874550089809755
  (33176, 10178)    0.10022395321154942
  (33176, 8422) 0.041895956703497765
  (33176, 5090) 0.042348177892434245
  (33176, 4572) 0.03430959811550174
  (33176, 3952) 0.03911645709026695
  (33176, 3565) 0.053420564985650364
  (33176, 3191) 0.03409252329522664
  (33176, 2574) 0.06556944792700295
  (33176, 2168) 0.03405895402746877
  (33176, 804)  0.11463326965951669
  (33176, 483)  0.03643119719769616

print(m0.target)
>>>>
job_template_id
0a1503121721392501811267    22.04
0a1503121721483290712244    24.51
0a1503121721565752313317    24.51
0a1503121722295642819615    39.45
0a1503121722362699720498    52.41
                            ...  
z16092315345694244686913    33.38
z1609240007114166452790f    33.89
z1609261351036745094491a    28.85
z1609261614080106125891c    17.61
z16092623135294934160908     43.4

如您所见,m0 是用户定义类的一个实例;它本质上只是一个数据包装器。如果您需要更多信息,请参阅我的相关问题Python NLP - ValueError: could not convert string to float: 'UKN'

标签: pythonscikit-learntf-idf

解决方案


推荐阅读