Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 困惑随着话题的增多而增加_Python_Scikit Learn_Lda_Topic Modeling_Perplexity - Fatal编程技术网

Python 困惑随着话题的增多而增加

Python 困惑随着话题的增多而增加,python,scikit-learn,lda,topic-modeling,perplexity,Python,Scikit Learn,Lda,Topic Modeling,Perplexity,关于这个具体问题有很多帖子,但我无法解决这个问题。 我一直在使用Sklearn和Gensim实现在20newgroup语料库上进行LDA实验。文献中描述,困惑通常随着话题的增多而减少,但我得到了不同的结果 我已经尝试过不同的参数,但一般来说,随着主题数量的增加,测试集的困惑度会增加,而火车集的困惑度会降低。这可能表明模型在训练集上拟合过度。但在使用其他文本数据集时也会出现类似的模式。此外,专门使用该数据集的研究也减少了困惑。(例如) 我用SkLearn、Gensim和Gensim Mallet包

关于这个具体问题有很多帖子,但我无法解决这个问题。 我一直在使用Sklearn和Gensim实现在20newgroup语料库上进行LDA实验。文献中描述,困惑通常随着话题的增多而减少,但我得到了不同的结果

我已经尝试过不同的参数,但一般来说,随着主题数量的增加,测试集的困惑度会增加,而火车集的困惑度会降低。这可能表明模型在训练集上拟合过度。但在使用其他文本数据集时也会出现类似的模式。此外,专门使用该数据集的研究也减少了困惑。(例如)

我用SkLearn、Gensim和Gensim Mallet包装器进行了实验,所有包都显示了不同的困惑值(这是可以预期的,因为LDA是随机初始化的+不同的推理算法),但常见的模式是,每个包的困惑都会增加,这与文献中的许多论文相矛盾

#导入代码示例
从sklearn.feature\u extraction.text导入countvectorier
从sklearn导入数据集
从sklearn.model\u选择导入列车\u测试\u拆分
从sklearn.decomposition导入LatentDirichletAllocation
小样本代码

#检索数据
新闻组\u all=数据集。获取\u 20新闻组(subset='all',remove=('headers','footers','quotes'),shuffle=True)
打印(“为LDA提取tf特征…”)
tf\u矢量器\u列=计数矢量器(最大值为0.95,最小值为2,停止词为英语)
X=tf\u矢量器\u train.fit\u变换(新闻组\u all.data)
X_序列,X_测试=序列测试分割(X,测试大小=0.2,随机状态=42)
k=N
lda=最新DirichletAllocation(n\u components=k,doc\u topic\u Previor=1/k,topic\u word\u Previor=0.1)
lda.fit(X_系列)
perp_检验=lda.困惑(X_检验)
perp_train=lda.困惑(X_train)
我希望所有的困惑都会减少,但我得到了以下结果:

k=5, 列车困惑:5531.15, 测试困惑度:7740.95

k=10, 列车困惑:5202.80, 测试困惑度:8805.57

k=15, 列车困惑:5095.42, 测试困惑度:10193.42

编辑:在运行5倍交叉验证(10-150,步长:10)并平均每倍的复杂度后,创建以下曲线图。似乎训练集的困惑度仅在1-15个主题之间降低,然后在主题数较高时略有增加。测试集的复杂性不断增加,几乎是线性的。sklearn/gensim实现和研究出版之间的复杂度计算是否存在差异,从而减少复杂度