张量流随机森林回归

rit*_*ol1 5 python regression random-forest tensorflow

我想实现一个简单的随机森林回归来预测值。输入是具有多个功能的一些样本,标签是一个值。但是,我找不到有关随机森林回归问题的简单示例。因此,我看到的文件tensorflow,我发现:

可以训练和评估随机森林的估算器。例:

  python
  params = tf.contrib.tensor_forest.python.tensor_forest.ForestHParams(
      num_classes=2, num_features=40, num_trees=10, max_nodes=1000)
  # Estimator using the default graph builder.
  estimator = TensorForestEstimator(params, model_dir=model_dir)
  # Or estimator using TrainingLossForest as the graph builder.
  estimator = TensorForestEstimator(
      params, graph_builder_class=tensor_forest.TrainingLossForest,
      model_dir=model_dir)
  # Input builders
  def input_fn_train: # returns x, y
    ...
  def input_fn_eval: # returns x, y
    ...
  estimator.fit(input_fn=input_fn_train)
  estimator.evaluate(input_fn=input_fn_eval)
  # Predict returns an iterable of dicts.
  results = list(estimator.predict(x=x))
  prob0 = results[0][eval_metrics.INFERENCE_PROB_NAME]
  prediction0 = results[0][eval_metrics.INFERENCE_PRED_NAME]
Run Code Online (Sandbox Code Playgroud)

但是,当我按照示例进行操作时,出现了错误prob0 = results[0][eval_metrics.INFERENCE_PROB_NAME],该错误表明:

Example conversion:
est = Estimator(...) -> est = SKCompat(Estimator(...))
Traceback (most recent call last):
  File "RF_2.py", line 312, in <module>
    main()
  File "RF_2.py", line 298, in main
    train_eval(x_train, y_train, x_validation, y_validation, x_test, y_test, num_tree)
  File "RF_2.py", line 221, in train_eval
    prob0 = results[0][eval_metrics.INFERENCE_PROB_NAME]
KeyError: 'probabilities'
Run Code Online (Sandbox Code Playgroud)

我认为错误发生在INFERENCE_PROB_NAME,我看到了文档。但是,我仍然不知道替换这个词是什么INFERENCE_PROB_NAME

我尝试get_metric('accuracy')替换INFERENCE_PROB_NAME,它返回错误:KeyError: <function _accuracy at 0x11a06eaa0>

我也尝试get_prediction_key('accuracy')替换INFERENCE_PROB_NAME,它返回错误:KeyError: 'classes'

如果您知道可能的答案,请告诉我。先感谢您。

Meh*_*aie 1

我认为你无意中通过给出错误num_classes=2而不更改 的默认值来解决分类问题regression=False。请参阅此处的参数部分。就像快速测试一样,设置和,然后重新运行您的代码。num_classes=0regression=True