# 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_)

python kmeans实战 - 单机一层聚类(小玩具哦),下次再弄个分布式多次聚类的更多相关文章

  1. 【Python机器学习实战】聚类算法(1)——K-Means聚类

    实战部分主要针对某一具体算法对其原理进行较为详细的介绍,然后进行简单地实现(可能对算法性能考虑欠缺),这一部分主要介绍一些常见的一些聚类算法. K-means聚类算法 0.聚类算法算法简介 聚类算法算 ...

  2. Python数据分析实战视频教程【小蚊子数据分析实战课程】

    点击了解更多Python课程>>> Python数据分析实战视频教程[小蚊子数据分析实战课程] [课程概述] Python数据分析实战' 适用人群:适合需提升竞争力.提升工作效率.喜 ...

  3. 【Python机器学习实战】聚类算法(2)——层次聚类(HAC)和DBSCAN

    层次聚类和DBSCAN 前面说到K-means聚类算法,K-Means聚类是一种分散性聚类算法,本节主要是基于数据结构的聚类算法--层次聚类和基于密度的聚类算法--DBSCAN两种算法. 1.层次聚类 ...

  4. Python 机器学习实战 —— 监督学习(上)

    前言 近年来AI人工智能成为社会发展趋势,在IT行业引起一波热潮,有关机器学习.深度学习.神经网络等文章多不胜数.从智能家居.自动驾驶.无人机.智能机器人到人造卫星.安防军备,无论是国家级军事设备还是 ...

  5. Python 机器学习实战 —— 无监督学习(上)

    前言 在上篇<Python 机器学习实战 -- 监督学习>介绍了 支持向量机.k近邻.朴素贝叶斯分类 .决策树.决策树集成等多种模型,这篇文章将为大家介绍一下无监督学习的使用.无监督学习顾 ...

  6. Python 机器学习实战 —— 无监督学习(下)

    前言 在上篇< Python 机器学习实战 -- 无监督学习(上)>介绍了数据集变换中最常见的 PCA 主成分分析.NMF 非负矩阵分解等无监督模型,举例说明使用使用非监督模型对多维度特征 ...

  7. python机器学习实战(二)

    python机器学习实战(二) 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7159775.html 前言 这篇noteboo ...

  8. Python—kmeans算法学习笔记

    一.   什么是聚类 聚类简单的说就是要把一个文档集合根据文档的相似性把文档分成若干类,但是究竟分成多少类,这个要取决于文档集合里文档自身的性质.下面这个图就是一个简单的例子,我们可以把不同的文档聚合 ...

  9. Python 机器学习实战 —— 监督学习(下)

    前言 近年来AI人工智能成为社会发展趋势,在IT行业引起一波热潮,有关机器学习.深度学习.神经网络等文章多不胜数.从智能家居.自动驾驶.无人机.智能机器人到人造卫星.安防军备,无论是国家级军事设备还是 ...

随机推荐

  1. 【转】关于编译链接——gcc/g++

    添加运行时共享库目录 运行使用共享库的程序需要加载共享库(不同于G++ 编译时指定的链接库),添加共享库的步骤: 修改文件 /etc/ld.so.conf 添加共享库目录 运行 ldconfig 同步 ...

  2. IDEA如何初始化Git本地仓库,并提交到远程仓库

    本文转载自:http://blog.csdn.net/two_people/article/details/77008593 1. 首先在远程仓库上新建一个项目,码云和github都可以,我这里使用的 ...

  3. 代码自动生成工具MyGeneration之一

    前段时间用C#做网站,用到了大量数据库相关的东西.网站采用3层结构,即数据访问层(Data Access Layer),业务逻辑层(Business Logic Layer),页面表现层().做了一段 ...

  4. Andfix热修复原理

    一.前言 最近腾讯弄出一个Tinker热修复框架,那么本文先不介绍这个框架,先来介绍一下阿里的一个热修复框架AndFix,这个框架出来已经很长时间了,但是看网上没有太多非常详细的讲解,这里就来做一次分 ...

  5. springmvc 孔浩 hibernate code

    model--User package model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; ...

  6. 如何处理App的Application的事件

    http://blog.sina.com.cn/s/blog_44fa172f0102vwr2.html 直接上代码,还有条经验就是SetApplicationEventHandler可注册多个事件方 ...

  7. vc6.0 PK vs2010

    从VC++6.0不足看VisualC++2010新特性 说起VC,有人想到维生素C(维C),有人想到风险投资(venture capital), 程序员们尤其是做底层开发的程序员或老程序员们第一感觉肯 ...

  8. 解决 Eclipse Indigo 3.7、ADT 中文字体偏小,完美 Consolas 微软雅黑混合字体!

    Eclipse是著名的跨平台的自由集成开发环境(IDE).6月22日Eclipse 3.7 正式发布,代号是 Indigo . 在 Windows 7 下初始后化,发现界面变化不大,但中文字体却面目全 ...

  9. FreeNas FTP配置

    FTP服务器与客户端 因为拥有强大WebGUI管理界面,在FreeNAS中配置FTP服务变得非常简单.如果你是第一次接触FTP这一概念,那么首先要明白两个核心的概念. FTP服务器:你可以把它想象成一 ...

  10. php CI框架log写入

    1.首先,打开application下的config.php文件,将log配置打开如下 /* |---------------------------------------------------- ...