ASP вложенные теги в пользовательском пользовательском элементе управления

Вы не можете напрямую получить вероятности классификации, но относительно легко вычислить ее самостоятельно. RandomForest - это ансамбль деревьев, и его выходная вероятность - это большинство голосов этих деревьев, деленное на общее количество деревьев.

Так как RandomForestModel в MLib дает вам обученные деревья, это легко сделать сами. Следующий код дает вероятность проблемы двоичной классификации. Его обобщение на многоклассовую классификацию прост.

  def predict(points: RDD[LabeledPoint], model: RandomForestModel) = {
    val numTrees = model.trees.length
    val trees = points.sparkContext.broadcast(model.trees)
    points.map { point =>
    trees.value
    .map(_.predict(point.features))
    .sum / numTrees
  }

}

для случая с несколькими классами вам нужно заменить карту только с помощью .map (_. pred (point.features) -> 1.0) и group by key вместо суммы и, наконец, взять максимум значений.

9
задан Rob 1 February 2019 в 21:47
поделиться

3 ответа

Я записал сообщение в блоге об этом некоторое время назад. Короче говоря, если Вы имели контроль со следующей разметкой:

<Abc:CustomControlUno runat="server" ID="Control1">
    <Children>
        <Abc:Control1Child IntegerProperty="1" />
    </Children>
</Abc:CustomControlUno>

Вам был бы нужен код в управлении, чтобы быть вроде:

[ParseChildren(true)]
[PersistChildren(true)]
[ToolboxData("<{0}:CustomControlUno runat=server></{0}:CustomControlUno>")]
public class CustomControlUno : WebControl, INamingContainer
{
    private Control1ChildrenCollection _children;

    [PersistenceMode(PersistenceMode.InnerProperty)]
    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
    public Control1ChildrenCollection Children
    {
        get
        {
            if (_children == null)
            {
                _children = new Control1ChildrenCollection();
            }
            return _children;
        }
    }
}

public class Control1ChildrenCollection : List<Control1Child>
{
}

public class Control1Child
{
    public int IntegerProperty { get; set; }
}
16
ответ дан 4 December 2019 в 08:35
поделиться

Мое предположение, Вы ищете что-то вроде этого? http://msdn.microsoft.com/en-us/library/aa478964.aspx

Ваши теги были удалены или невидимы, так не может действительно помочь Вам там.

1
ответ дан 4 December 2019 в 08:35
поделиться

Я следил за сообщениями в блоге Роба и сделал немного другое управление. Этот элемент управления является условным, на самом деле точно так же, как if-clause:

<wc:PriceInfo runat="server" ID="PriceInfo">
    <IfDiscount>
        You don't have a discount.
    </IfDiscount>
    <IfNotDiscount>
        Lucky you, <b>you have a discount!</b>
    </IfNotDiscount>
</wc:PriceInfo>

В коде я затем устанавливаю для свойства HasDiscount элемента управления логическое значение, которое определяет, какое предложение будет отображаться.

Большое отличие от решения Роба состоит в том, что предложения в элементе управления действительно могут содержать произвольный код HTML / ASPX.

А вот код для элемента управления:

using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebUtilities
{
    [ToolboxData("<{0}:PriceInfo runat=server></{0}:PriceInfo>")]
    public class PriceInfo : WebControl, INamingContainer
    {
        private readonly Control ifDiscountControl = new Control();
        private readonly Control ifNotDiscountControl = new Control();

        public bool HasDiscount { get; set; }

        [PersistenceMode(PersistenceMode.InnerProperty)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public Control IfDiscount
        {
            get { return ifDiscountControl; }
        }

        [PersistenceMode(PersistenceMode.InnerProperty)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public Control IfNotDiscount
        {
            get { return ifNotDiscountControl; }
        }

        public override void RenderControl(HtmlTextWriter writer)
        {
            if (HasDiscount)
                ifDiscountControl.RenderControl(writer);
            else
                ifNotDiscountControl.RenderControl(writer);
        }
    }
}
6
ответ дан 4 December 2019 в 08:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: