Comment puis-je obtenir la perplexité et la probabilité log dans Spark LDA? [fermé]
j'essaie d'obtenir la perplexité et la probabilité logarithmique d'un modèle Lda Spark (avec Spark 2.1). Le code ci-dessous ne fonctionne pas (méthodes logLikelihood
et logPerplexity
non trouvées) bien que je puisse sauvegarder le modèle.
from pyspark.mllib.clustering import LDA
from pyspark.mllib.linalg import Vectors
# construct corpus
# run LDA
ldaModel = LDA.train(corpus, k=10, maxIterations=10)
logll = ldaModel.logLikelihood(corpus)
perplexity = ldaModel.logPerplexity(corpus)
remarquez que de telles méthodes ne donnent pas dir(LDA)
.
Ce serait un exemple de travail?
0
demandé sur
desertnaut
2018-01-22 17:09:46
1 réponses
je peux le faire en train, mais pas en forme. L'objet "LDA" n'a pas d'attribut " fit "
C'est parce que vous travaillez avec l'ancienne, RDD-based API (MLlib) , i.e.
from pyspark.mllib.clustering import LDA # WRONG import
dont la classe LDA
ne comprend pas les méthodes , fit
, logLikelihood
ou logPerplexity
.
pour travailler avec ces méthodes, vous devez passer à le nouveau, dataframe API (ML) :
from pyspark.ml.clustering import LDA # NOTE: different import
# Loads data.
dataset = (spark.read.format("libsvm")
.load("data/mllib/sample_lda_libsvm_data.txt"))
# Trains a LDA model.
lda = LDA(k=10, maxIter=10)
model = lda.fit(dataset)
ll = model.logLikelihood(dataset)
lp = model.logPerplexity(dataset)
1
répondu
desertnaut
2018-01-22 14:49:54