python kmeans实战
来源:互联网 发布:2017网络情歌 编辑:程序博客网 时间:2024/06/12 23:58
# coding=utf-8
"""
#K-means
"""
import time
import re
import os
import sys
import codecs
import shutil
import numpy as np
from sklearn import feature_extraction
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
if __name__ == "__main__":
#########################################################################
# 第一步 计算TFIDF
#文档预料 空格连接
corpus = []
#读取预料 一行预料为一个文档
for line in open('D:/pyfenlei/p2-1-fenci.txt', 'r').readlines():
print (line)
corpus.append(line.strip())
#print corpus
#time.sleep(1)
#将文本中的词语转换为词频矩阵 矩阵元素a[i][j] 表示j词在i类文本下的词频
vectorizer = CountVectorizer()
#该类会统计每个词语的tf-idf权值
transformer = TfidfTransformer()
#第一个fit_transform是计算tf-idf 第二个fit_transform是将文本转为词频矩阵
tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))
#获取词袋模型中的所有词语
word = vectorizer.get_feature_names()
#将tf-idf矩阵抽取出来,元素w[i][j]表示j词在i类文本中的tf-idf权重
weight = tfidf.toarray()
#打印特征向量文本内容
print ('Features length: ' + str(len(word)))
resName = "D:/pyfenlei/p2-1-tfidf.txt"
result = codecs.open(resName, 'w', 'utf-8')
for j in range(len(word)):
result.write(word[j] + ' ')
result.write('\r\n\r\n')
#打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重
for i in range(len(weight)):
print ("-------这里输出第",i,u"类文本的词语tf-idf权重------")
for j in range(len(word)):
#print weight[i][j],
result.write(str(weight[i][j]) + ' ')
result.write('\r\n\r\n')
result.close()
########################################################################
# 第二步 聚类Kmeans
print ('Start Kmeans:')
from sklearn.cluster import KMeans
clf = KMeans(n_clusters=10)
s = clf.fit(weight)
print (s)
#20个中心点
print(clf.cluster_centers_)
#每个样本所属的簇
print(clf.labels_)
i = 1
while i <= len(clf.labels_):
print (i, clf.labels_[i-1])
i = i + 1
#用来评估簇的个数是否合适,距离越小说明簇分的越好,选取临界点的簇个数
print(clf.inertia_)
"""
#K-means
"""
import time
import re
import os
import sys
import codecs
import shutil
import numpy as np
from sklearn import feature_extraction
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
if __name__ == "__main__":
#########################################################################
# 第一步 计算TFIDF
#文档预料 空格连接
corpus = []
#读取预料 一行预料为一个文档
for line in open('D:/pyfenlei/p2-1-fenci.txt', 'r').readlines():
print (line)
corpus.append(line.strip())
#print corpus
#time.sleep(1)
#将文本中的词语转换为词频矩阵 矩阵元素a[i][j] 表示j词在i类文本下的词频
vectorizer = CountVectorizer()
#该类会统计每个词语的tf-idf权值
transformer = TfidfTransformer()
#第一个fit_transform是计算tf-idf 第二个fit_transform是将文本转为词频矩阵
tfidf = transformer.fit_transform(vectorizer.fit_transform(corpus))
#获取词袋模型中的所有词语
word = vectorizer.get_feature_names()
#将tf-idf矩阵抽取出来,元素w[i][j]表示j词在i类文本中的tf-idf权重
weight = tfidf.toarray()
#打印特征向量文本内容
print ('Features length: ' + str(len(word)))
resName = "D:/pyfenlei/p2-1-tfidf.txt"
result = codecs.open(resName, 'w', 'utf-8')
for j in range(len(word)):
result.write(word[j] + ' ')
result.write('\r\n\r\n')
#打印每类文本的tf-idf词语权重,第一个for遍历所有文本,第二个for便利某一类文本下的词语权重
for i in range(len(weight)):
print ("-------这里输出第",i,u"类文本的词语tf-idf权重------")
for j in range(len(word)):
#print weight[i][j],
result.write(str(weight[i][j]) + ' ')
result.write('\r\n\r\n')
result.close()
########################################################################
# 第二步 聚类Kmeans
print ('Start Kmeans:')
from sklearn.cluster import KMeans
clf = KMeans(n_clusters=10)
s = clf.fit(weight)
print (s)
#20个中心点
print(clf.cluster_centers_)
#每个样本所属的簇
print(clf.labels_)
i = 1
while i <= len(clf.labels_):
print (i, clf.labels_[i-1])
i = i + 1
#用来评估簇的个数是否合适,距离越小说明簇分的越好,选取临界点的簇个数
print(clf.inertia_)
0 0
- python kmeans实战
- Python Kmeans
- python-kmeans
- Spark-Kmeans实战
- 机器学习实战--kMeans
- 机器学习实战 Kmeans
- 机器学习实战之KMeans
- SparkML实战之二:Kmeans
- SparkML实战之二:Kmeans
- kmeans python实现
- Kmeans聚类Python程序
- python kmeans算法
- python 实现 Kmeans
- kmeans 算法,python
- python KMeans算法学习
- Kmeans python 实现
- kmeans++ Python 实现
- Python-kmeans算法实践
- RCTDeviceEventEmitter 实现简单的观察者模式
- 快速幂运算
- 未来已来——十五年网龄生活洞见科技之飞跃
- 常用排序算法总结
- spring-boot整合redis作为缓存(4)——spring-boot引入Redis
- python kmeans实战
- Java oop 第十一章 CMS
- 使用ffmpeg步骤
- 类的无参方法
- 回调函数实现
- Cocos2d-js 触摸事件的简单封装
- MVC框架简介,SSH 和SSM
- 怎么再vue中使用jquery?
- 反射_通过反射写一个通用的设置某个对象的某个属性为指定的值