Je travaille sur un projet Spark avec scala. Je veux former un modèle qui peut être k_means, gaussian_mixture, la régression logistique, naive_bayes etc. Mais je ne peux pas définir un modèle générique comme type de retour. Puisque les types de ces algorithmes sont différents, comme GaussianMixtureModel, KMeansModel, etc. Je ne trouve aucun moyen logique de retourner ce modèle entraîné.Type multiple pour une variable en étincelle en utilisant scala
Voici une paix de code du projet:
model.model_algorithm match {
case "k_means" =>
val model_k_means = k_means(data, parameters)
case "gaussian_mixture" =>
val model_gaussian_mixture = gaussian_mixture(data, parameters)
case "logistic_regression" =>
val model_logistic_regression = logistic_regression(data, parameters)
}
Ainsi est-il un moyen de retourner ce modèle formé ou de définir un modèle générique qui accepte tous les types?
qu'est-ce que vous voulez _do_ avec le modèle formé? Ces classes étendent toutes les fonctions 'org.apache.spark.mllib.util.Saveable',' AntRef' et 'Any', donc votre méthode peut retourner n'importe lequel de ces types, mais cela ne vous aidera pas forcément. Si vous voulez effectuer l'action X sur ces résultats plus tard, vous pouvez créer un trait 'ModelResult' avec la méthode X, rendre ce pattern-matching' ModelResult', et avoir trois implémentations de ce trait, chacune gérant un modèle différent. –
J'ai essayé de les faire de type Any, mais la méthode predict() ne peut pas être utilisée dans ce cas. Pouvez-vous expliquer comment puis-je implémenter le pattern-matching dans ce cas. Merci pour votre réponse. –
Vous avez donc lancé trois modèles et l'appariement de modèles pour savoir lequel fonctionne. Si tel est le cas, c'est une mauvaise pratique. – eliasah