<第一周> city中国城市聚类 testdata学生上网聚类 例子
中国城市聚类###
# -*- coding: utf-8 -*-
kmeans算法
"""
Created on Thu May 18 22:55:45 2017
@author: sfzyk
"""
import numpy as np
#import sklearn as skl
from sklearn.cluster import KMeans
import os
os.chdir(r"D:\mechine_learning\mooc_data")
def loaddata(file):
fr=open(file)
lines=fr.readlines()#按照行分割 \n为标志(存在
city_data=[]
city_name=[]
for line in lines:
d=line.split(",")
city_name.append(d[0])
city_data.append([float(d[i]) for i in range(1,len(d))])
return city_name,city_data
city_name,city_data=loaddata("31省市居民家庭消费水平-city.txt")
km=KMeans(n_clusters=10)
label=km.fit_predict(city_data)
expenses=np.sum(km.cluster_centers_,axis=1)
city_cluster=[]
for i in range(km.n_clusters):
city_cluster.append([])
city_cluster[i].append(expenses[i])
for i in range(len(city_name)):
city_cluster[label[i]].append(city_name[i])
# city_cluster,key=lambda x : x[0]
city_cluster.sort(key=lambda x:x[0])
for i in range(len(city_cluster)):
print(city_cluster[i])
学生上网数据聚类###
bdscan算法
# -*- coding: utf-8 -*-
"""
Created on Mon May 22 16:24:53 2017
@author: sfzyk
"""
import numpy as np
import sklearn as skl
from sklearn import metrics
import matplotlib.pyplot as plt
mac2id=dict()
onlinetimes=[]
f=open("学生月上网时间分布-TestData.txt",encoding='utf-8')
#这里的encoding 是有必要的 不知道在开始指定coding是什么意思
for line in f:
mac=line.split(',')[2]
onlinetime=int(line.split(',')[6])
starttime=int(line.split(',')[4].split(' ')[1].split(':')[0])
if mac not in mac2id:
mac2id[mac]=len(onlinetimes)
onlinetimes.append((starttime,onlinetime))
else:
onlinetimes[mac2id[mac]]=[(starttime,onlinetime)]
real_X=np.array(onlinetimes).reshape((-1,2))
X=real_X[:,0:1]
dbscan=skl.cluster.DBSCAN(eps=0.03,min_samples=20).fit(X)
labels=dbscan.labels_
ratio=len(labels[labels[:]==-1])/len(labels)
print("noise ratio %f"%ratio)
n_clusters_ = len(set(labels))-(1 if -1 in labels else 0)
print("Estimated number of clusters:%d "%n_clusters_)
print("Silhouette coefficient:%0.3f"%metrics.silhouette_score(X,labels))
for i in range(n_clusters_):
print("Clusters ",i,":")
print(list(X[labels==i].flatten()))
#flatten nX1 - 1Xn
plt.hist(X,24)
这里有一个Silhouette coefficient是一个轮廓系数,用于评价聚类效果
<第一周> city中国城市聚类 testdata学生上网聚类 例子的更多相关文章
- 第一周<单元一聚类>
K-means 聚类算法 初始随机选择 而后不断更新 kmeans 应用 省份归类 调用kmeans方法所需要的参数 n_clusters 指定的聚类中心 init 初始聚类中心的初始化方法 默认k- ...
- 第一周 总结笔记 / 斯坦福-Machine Learning-Andrew Ng
课程主页:https://www.coursera.org/learn/machine-learning/home/welcome 收集再多的资料也没用,关键是要自己理解总结,做笔记就是一个归纳总结的 ...
- 20135328信息安全系统设计基础第一周学习总结(Linux应用)
学习计时:共xxx小时 读书: 代码: 作业: 博客: 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/ ...
- Python学习之旅--第一周--初识Python
一:Python是一种什么样的语言? 1.语言的分类: a.编译型语言和解释性语言: 通常所说的计算机语言分为编译型和解释型语言.编译型语言典型的如C,C++,通常在程序执行之前必须经由编译器编译成机 ...
- 王燕 201771010126《面向对象程序设计(java)》第一周学习总结
王燕 201771010126<面向对象程序设计(java)>第一周学习总结 王燕 201771010126<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部 ...
- Java第一周作业
Java第一周作业 本周作业: 参考<<教材学习指导(http://www.cnblogs.com/rocedu/p/7911138.html)) 学习第一章视频 参考<<使用 ...
- 《Java程序设计》 第一周学习总结
20175313 <Java程序设计>第一周学习总结 教材学习内容总结 了解Java的四个特点 学习JDK的安装以及系统环境变量的设置 掌握Java源文件命名.编译.运行 熟悉git的常用 ...
- 马凯军201771010116《面向对象程序设计(java)》第一周学习总结
马凯军201771010116<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.co ...
- 周强201771010141《面向对象程序设计(java)》第一周学习总结
周强201771010141<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com ...
随机推荐
- 初识splay
这东西都没什么板子着实让我很难受啊,只能到网上抄抄补补, 记下两个用到的博客 https://blog.csdn.net/clove_unique/article/details/50630280 h ...
- 阿里云 Aliplayer高级功能介绍(七):多分辨率
基本介绍 网络环境比较复杂.网速不稳定,Aliplayer提供了多分辨率播放的模式,用户可以手工切换分辨率和播放器选择最优分辨率,基本UI如下: Source模式 source的方式指定多个清晰度的地 ...
- JZOJ P5829 HZOI 20190801 A string 线段树
JZOJ P5829 A. string 题面:https://www.cnblogs.com/Juve/articles/11286476.html 考场上想起了排序这道题:https://www. ...
- Django WSGI响应过程之WSGIHandler
class WSGIHandler(base.BaseHandler): request_class = WSGIRequest def __init__(self, *args, **kwargs) ...
- BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏
Time Limit: 5 Sec Memory Limit: 162 MB Submit: 957 Solved: 394 [Submit][Status][Discuss] Description ...
- Shell 语法之用户输入
bash shell 提供了一些不同的方法从用户处获取数据,这些方法包括命令行参数.命令行选项和直接读取键盘输入. 命令行参数 bash shell 将在命令行中输入的所有参数赋值给一些特殊变量,称为 ...
- KeyOnlyFilter(2)
主要用来过滤剩下行键计数一类 KeyOnlyFilter 官方API解释如下: A filter that will only return the key component of each KV ...
- mysql 安装失败 start service执行不下去
简单说一下自己安装mysql的经历坑点,新手应该都会遇到.新买了一个电脑,第一次安装的情况:在网上下载好几个不同的mysql,安装都在最后一步执行的时候,执行不下去,最后打开客户端,就是闪一下就消失了 ...
- Spring+quartz集群解决多服务器部署定时器重复执行的问题
一.问题描述 Spring自带的Task虽然能很好使用定时任务,只需要做些简单的配置就可以了.不过如果部署在多台服务器上的时候,这样定时任务会在每台服务器都会执行,造成重复执行. 二.解决方案 Spr ...
- Theano入门——CIFAR-10和CIFAR-100数据集
Theano入门——CIFAR-10和CIFAR-100数据集 1.CIFAR-10数据集介绍 CIFAR-10数据集包含60000个32*32的彩色图像,共有10类.有50000个训练图像和1000 ...