2

Spark MLlib の ProbabilisticClassifer 型のパラメーターを持つメソッドを Scala で宣言したいと考えています。これは github からの署名です ( https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/ml/classification/ProbabilisticClassifier.scala ):

   abstract class ProbabilisticClassificationModel[
    FeaturesType,
    M <: ProbabilisticClassificationModel[FeaturesType, M]]
  extends ClassificationModel[FeaturesType, M] with ProbabilisticClassifierParams

つまり、そのパラメーターでクラスの確率を予測できるようにしたいのです。目的は、さまざまな確率的分類子 (ロジスティック回帰、ランダム フォレストなど) をこのメソッドに渡す機会を持つことです。

したがって、このメソッドを次のように宣言すると

  def method[
    FeaturesType,
    M <: ProbabilisticClassificationModel[FeaturesType, M]
  ] (c: ProbabilisticClassificationModel[FeatureType, M]): M = {...}

…テンプレートを指定せずにメソッドを呼び出すことを禁止します。いえ

 var x = method(RandomF);

動作しません。代わりに、私たちは書くべきです

 var x = method[Vector, RandomForestClassificationModel](RandomF);

このメソッドを定義して、すべての呼び出し仕様を回避できるようにする方法はありますか?

4

0 に答える 0