问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么说聚类分析是一种无监督的学习方法

发布网友 发布时间:2022-04-10 07:41

我来回答

2个回答

懂视网 时间:2022-04-10 12:02

根据学生月上网时间数据运用DBSCAN算法计算:

#coding=utf-8
import numpy as np
import sklearn.cluster as skc
from sklearn import metrics
import matplotlib.pyplot as plt

mac2id = dict()
onlinetimes = []
f = open(‘F:dataTestData.txt‘, encoding=‘utf-8‘)
for line in f:
 mac = line.split(‘,‘)[2]#取得mac地址,例如第一行A417314EEA7B

 onlinetime = int(line.split(‘,‘)[6])#上网时长

 starttime = int(line.split(‘,‘)[4].split(‘ ‘)[1].split(‘:‘)[0])#开始时间只取第一个":"分割的:小时


 #每一个onlinetimes有一个唯一的mac2id对应
 if mac not in mac2id:
 mac2id[mac] = len(onlinetimes)
 onlinetimes.append((starttime, onlinetime))
 else:
 onlinetimes[mac2id[mac]] = [(starttime,onlinetime)]

#print(onlinetimes)
real_X = np.array(onlinetimes).reshape((-1, 2))#自行构造一个2列的矩阵,-1构造未知行数
#print(real_X)


X = real_X[:, 0:1]#只取上网开始时
#print(X)

#调用DBSCAN方法进行训练,labels为每个数据的簇标签
db = skc.DBSCAN(eps=0.01, min_samples=20).fit(X)
#返回的数据的簇标签,噪声数据标签为-1

‘‘‘#上网时长聚类
X = np.log(1+real_X[:, 1:])
db = skc.DBSCAN(eps=0.04, min_samples=10).fit(X)
‘‘‘
labels = db.labels_

print(‘Labels:
‘, labels)

#计算簇标签为-1的噪声数据比率
raito = len(labels[labels[:] == -1])/len(labels)
print(‘Noise raito: ‘, format(raito, ‘.2%‘))

#计算簇个数
n_clusters_ = len(set(labels))-(1 if -1 in labels else 0)
print(‘Estimated numbe of clusters: %d‘ %n_clusters_)#簇个数
print(‘Silhouette Coefficient: %0.3f‘ %metrics.silhouette_score(X, labels))#聚类效果评价指标

#打印各簇标号和簇内数据
for i in range(n_clusters_):
 print(‘Cluster‘, i, ‘:‘)
 print(list(X[labels == i].flatten()))

#绘制直方图
plt.hist(X, 24)
plt.show()

运行结果:

Labels:
[ 0 -1 0 1 -1 1 0 1 2 -1 1 0 1 1 3 -1 -1 3 -1 1 1 -1 1 3 4
-1 1 1 2 0 2 2 -1 0 1 0 0 0 1 3 -1 0 1 1 0 0 2 -1 1 3
1 -1 3 -1 3 0 1 1 2 3 3 -1 -1 -1 0 1 2 1 -1 3 1 1 2 3 0
1 -1 2 0 0 3 2 0 1 -1 1 3 -1 4 2 -1 -1 0 -1 3 -1 0 2 1 -1
-1 2 1 1 2 0 2 1 1 3 3 0 1 2 0 1 0 -1 1 1 3 -1 2 1 3
1 1 1 2 -1 5 -1 1 3 -1 0 1 0 0 1 -1 -1 -1 2 2 0 1 1 3 0
0 0 1 4 4 -1 -1 -1 -1 4 -1 4 4 -1 4 -1 1 2 2 3 0 1 0 -1 1
0 0 1 -1 -1 0 2 1 0 2 -1 1 1 -1 -1 0 1 1 -1 3 1 1 -1 1 1
0 0 -1 0 -1 0 0 2 -1 1 -1 1 0 -1 2 1 3 1 1 -1 1 0 0 -1 0
0 3 2 0 0 5 -1 3 2 -1 5 4 4 4 -1 5 5 -1 4 0 4 4 4 5 4
4 5 5 0 5 4 -1 4 5 5 5 1 5 5 0 5 4 4 -1 4 4 5 4 0 5
4 -1 0 5 5 5 -1 4 5 5 5 5 4 4]
Noise raito: 22.15%
Estimated numbe of clusters: 6
Silhouette Coefficient: 0.710
Cluster 0 :
[22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22]
Cluster 1 :
[23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23]
Cluster 2 :
[20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20]
Cluster 3 :
[21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21]
Cluster 4 :
[8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]
Cluster 5 :
[7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]

 

根据上网开始时间分类直方图如下:

技术分享

根据上网时间聚类直方图如下:

技术分享

根据上网开始时间明显要好于上网时长聚类.

 

无监督学习之聚类2——DBSCAN

标签:lis   python   直方图   odi   encoding   时长   time   start   images   

热心网友 时间:2022-04-10 09:10

聚类分析:对样品或指标进行分类的一种分析方法,依据样本和指标已知特性进行分类。本节主要介绍层次聚类分析,一共包括3个部分,每个部分包括一个具体实战例子。

1、常规聚类过程:

一、首先用dist()函数计算变量间距离
dist.r = dist(data, method=" ")
其中method包括6种方法,表示不同的距离测度:"euclidean", "maximum", "manhattan", "canberra", "binary" or "minkowski"。相应的意义自行查找。

二、再用hclust()进行聚类
hc.r = hclust(dist.r, method = “ ”)
其中method包括7种方法,表示聚类的方法:"ward", "single", "complete","average", "mcquitty", "median" or "centroid"。相应的意义自行查找。

三、画图
plot(hc.r, hang = -1,labels=NULL) 或者plot(hc.r, hang = 0.1,labels=F)
hang 等于数值,表示标签与末端树杈之间的距离,
若是负数,则表示末端树杈长度是0,即标签对齐。
labels 表示标签,默认是NULL,表示变量原有名称。labels=F :表示不显示标签。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
导购什么字 店面导购员是什么意思 HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\SafeVersions... 无法安装adobeflashplayer,说无法注册ACTIVEX的控件 无法注册flash player的activex怎么办 omniverse create 他总说无法注册Flash player的Active控件 然后什么访问以下链接。不要... excel如何用进度条的形式表示完成率 买了件速干衣,北面的,求大神看一下真假。 秦皇岛银谷全城热恋是不是要预定票啊 请问外地的能不能在天津考教师资格证? 关于2010年天津考教师资格证的一些问题 报考天津市教师资格证 是否需要通过国家计算机二级考试?谢谢~ 天加地源热泵报压缩机传感器故障什么原因 健康卡怎么更新? 我手机上办理的健康卡不小心微信册除了,怎样才能恢复? 超市里货架上的食品包装袋都是塑料的,它们不会白色污染么? 压缩饼干是什么垃圾 想买重疾险,但是不知道怎么看保险条款,现在有什么比较好用的保险条款对比软件吗,求推荐? 中华新生活多倍重疾险的条款内容如何 重疾险保险条款分析 重疾险的条款有什么? 国产投影机灯泡lamtop 怎样 爱普生821投影机灯泡用国产的代替会影响效果吗 在手机QQ上一下子创建6个群用钱吗 我QQ是太阳的,建了一个普通群,请问高级群要多少钱?多了什么功能? 国产的投影仪灯泡寿命有多长?容易坏吗? QQ一个太阳建群花钱不? 怎样创建一个QQ高级群更划算? 我想咨询一下在QQ上建一个群要给多少Q币 中国人寿保险学生150元的保险只给了一张学生险的收款收据(含致家长的一封信) 学校给学生买的中国人寿学平保险,只有致家长的一封信,能做理赔依据吗? 大家谁知道上市公司的财报;债报;公告等等这些从什么地方能看到? 如何解决我国大学生保险发展困境 娃住院了保险公司需要一份学校开的证明书怎么写 如何描述保险公司目标规模工作内容及目标完成情况 余额宝的明细有所有钱,产品更换”转出.转入而没有收益是怎么回事?请问余额宝明细显示产品更换转出,收_百度问一问 余额宝里的产品置换需要把余额宝里的钱先转出到余额,在置换产品,换后的钱从余额宝提现到银行卡收费么? 什么是无监督学习? 支付宝余额宝换基金怎么换 发好的面用不完,冷藏后第二天还一样用吗 怎样能让家里的地暖更暖和? 布料沾了502胶水如何去除? 502胶水滴在了布上怎么把它弄掉而不损害布呢?? 大平洋保险我保的是长相伴,每年一万保十年一共十万元,保完十年一次能退... 太平洋人寿保险,退保,能退多少钱? 平安儿童保险哪种好请帮我介绍几款 平安儿童保险的种类有哪些 聚类分析又称为无监督学习,下列哪些任务属于聚类分析? 三家分晋具体时间是什么时候