zoukankan      html  css  js  c++  java
  • sklearn库kmeans实现实例

    # -*- coding: utf-8 -*-
    from sklearn.cluster import KMeans
    from sklearn.externals import joblib
    import numpy
    import pandas as pd
    def kmeans(inputfile,n):

    final = open('data/dataset.csv' , 'r')

    data = [line.strip().split(',') for line in final]
    feature = [[float(x) for x in row[1]] for row in data]
    # print feature
    #调用kmeans类
    clf = KMeans(n_clusters=n) #给定类别个数为3
    s = clf.fit(feature)
    # print s
    #聚类中心坐标
    print '聚类中心',clf.cluster_centers_
    #每个样本所属的簇
    print '每个样本所属的簇',clf.labels_ #每个点的分类
    #用来评估簇的个数是否合适,距离越小说明簇分的越好,选取临界点的簇个数
    print clf.inertia_ #每个点到其簇的质心的距离之和
    #进行预测
    df = pd.read_csv('data/dataset1.csv') #未添加类标签的数据集
    label = clf.predict(feature)
    labelpre = pd.DataFrame(label,columns=['label'])
    df['label'] = labelpre #将聚类之后的类标签添加到数据集中
    # print clf.predict(feature)
    print df
    #保存模型
    joblib.dump(clf , 'data/km.pkl')

    #载入保存的模型
    clf = joblib.load('data/km.pkl')
    print 'clf',clf
    '''
    #用来评估簇的个数是否合适,距离越小说明簇分的越好,选取临界点的簇个数
    for i in range(5,30,1):
    clf = KMeans(n_clusters=i)
    s = clf.fit(feature)
    print i , clf.inertia_
    '''
    kmeans('data/danger.csv',3)
  • 相关阅读:
    NTP服务安装
    Teambition 的使用
    搭建svn服务器和测试
    通过NTP协议进行时间同步
    转利用OpenSSL库对Socket传输进行安全加密(RSA+AES)
    转源码编译安装MySQL5.6.12详细过程
    CentOS 6.4安装ffmpeg2.4.2 支持h.265
    转:CentOS 6.4 64-bit编译安装ffmpeg
    Work 2013 博客园挂博客
    FLASH和EEPROM的最大区别
  • 原文地址:https://www.cnblogs.com/eternallql/p/8142990.html
Copyright © 2011-2022 走看看