我正在加载train.csv文件以使其与RandomForestClassifier匹配。
.csv文件的加载和处理过程进行得很好。我可以随意使用我的数据帧。
当我尝试:

from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_estimators=150, min_samples_split=2, n_jobs=-1)
rf.fit(train, target)

我明白了:
ValueError: could not convert string to float: 'D'

我试过:
train=train.astype(float)

用另一个值替换所有“D”。
train.convert_objects(convert_numeric=True)

但问题仍然存在。
我还尝试打印csv文件中的所有valueErrors,但找不到对“D”的引用。
这是我的踪迹:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-20-9d8e309c06b6> in <module>()
----> 1 rf.fit(train, target)

\Anaconda3\lib\site-packages\sklearn\ensemble\forest.py in fit(self, X, y, sample_weight)
    222
    223         # Convert data
--> 224         X, = check_arrays(X, dtype=DTYPE, sparse_format="dense")
    225
    226         # Remap output

\Anaconda3\lib\site-packages\sklearn\utils\validation.py in check_arrays(*arrays, **options)
    279                     array = np.ascontiguousarray(array, dtype=dtype)
    280                 else:
--> 281                     array = np.asarray(array, dtype=dtype)
    282                 if not allow_nans:
    283                     _assert_all_finite(array)

\Anaconda3\lib\site-packages\numpy\core\numeric.py in asarray(a, dtype, order)
    460
    461     """
--> 462     return array(a, dtype, copy=False, order=order)
    463
    464 def asanyarray(a, dtype=None, order=None):

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

我应该如何处理这个问题?

最佳答案

如果没有RandomForestClassifier(就我所能找到的)就不是一个python库(包括在python中),那么很难知道在您的案例中发生了什么。然而,真正发生的是,在某个时刻,您试图将字符串“D”转换为浮点。
我可以重复你的错误:

float('D')

现在,为了能够调试此问题,我建议您捕获异常:
try:
  rf.fit(train, target)
except ValueError as e:
  print(e)
  #do something clever with train and target like pprint them or something.

然后你就可以调查到底发生了什么。我找不到关于随机森林分类器的更多信息,除了这个可能有帮助:
https://www.npmjs.com/package/random-forest-classifier

10-04 12:54