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);
このメソッドを定義して、すべての呼び出し仕様を回避できるようにする方法はありますか?