内容主要涉及:
1,genism 的 word2vec 包的使用——model的训练和神经网络字向量、向量的准备。
2, scikit-kearn 中的 K-means 算法和一些特征提取算法的使用。
3,word2vec+TF_IDF通过文本 -词权重*词向量-的方式来表达文本语义,再进行文本聚类。——延伸:深度学习文本分类,文本语义的表达方式采用这种对模型进行修正。
4,利用肘部法则,确定聚类数目。
5,轮廓系数,检验效果。
word2vec的使用:
文本语义的表达:W*词向量:
小知识点:
CountVectorize()
CountVectorizer是属于常见的特征数值计算类,是一个文本特征提取方法。对于每一个训练文本,它只考虑每种词汇在该训练文本中出现的频率。
CountVectorizer会将文本中的词语转换为词频矩阵,它通过fit_transform函数计算各个词语出现的次数。
聚类数目的确定:肘部法则。K-Means的初始重心位置是随机选择的。有时,如果运气不好,随机选择的重心会导致K-Means陷入局部最优解。
小知识点:
肘部法则的计算原理是成本函数,成本函数是类别畸变程度之和,每个类的畸变程度等于每个变量点到其类别中心的位置距离平方和,若类内部的成员彼此间越紧凑则类的畸变程度越小,反之,若类内部的成员彼此间越分散则类的畸变程度越大。在选择类别数量上,肘部法则会把不同值的成本函数值画出来。随着值的增大,平均畸变程度会减小;每个类包含的样本数会减少,于是样本离其重心会更近。但是,随着值继续增大,平均畸变程度的改善效果会不断减低。值增大过程中,畸变程度的改善效果下降幅度最大的位置对应的值就是肘部
效果评估:轮廓系数。——先通过上述的方式计算出聚类的数目,再用Kmeans去聚类(肘部法则算出来的具体适合聚成几类),并用轮廓系数去评估。
轮廓系数的理解:同一类样本内部的距离越短,不同类别样本间距离越大。轮廓系数也是越大越好。
总结:
聚类是一种无监督学习的分类算法,我们一般选择使用k-means,聚类速度快,k-means随机选择重心,然后把样本点分配到离他们最近的类,在通过迭代吧该类的重心移到该类全部成员位置的平均值那里,以此类推进行迭代,但由于没有固定的类别标记,所以类别的数量和聚类的效果就需要我们通过肘部法则和轮廓系数进行判断。
聚类通常用于探索数据集。社交网络可以用聚类算法识别社区,然后向没有加入社区的用户进行推荐。在生物学领域,聚类用于找出有相似模式的基因组。推荐系统有时也利用聚类算法向用户推荐产品和媒体资源。在市场调查中,聚类算法用来做用户分组。
不过因为k-means随机选择重心点,所以可能会形成局部最优的聚类结果,所以还需重复运行聚类函数,每次重复时,它会随机的从不同的位置开始初始化。最后把最小的成本函数对应的重心位置作为初始化位置。
通过这个聚类项目:文本语义的表示方式可以思考加上权重的方式去尝试改良文本分类的效果。
参考学习链接:https://blog.csdn.net/u013719780/article/details/51755124
参考学习链接:https://www.jianshu.com/p/6dc5098bba1f
参考论文题目:基于Word2Vec的一种文档向量表示_唐明