开发工具:
文件大小: 183kb
下载次数: 0
上传时间: 2018-11-20
详细说明: def GMM_algorithm(iterMax,gmm,dataset): ''' 高斯混合聚类算法 :param iterMax: 最大迭代次数 :param gmm: 保存gmm模型的数据 :return: 簇划分结果 ''' step = 0 m = len(dataset) flagMat = np.mat(np.zeros((m, 1))) # 保存每个样本的簇标记 lateProbMat = np.mat(np.zeros((m,3))) #保存后验概率 while step < iterMax: #迭代更新模型参数 for j in range(m): #计算后验概率 vectX = dataset[j] prob1 = 0.0 for i in range(3): prob1 += (gmm.aplhaList[i] * densityFunc(gmm.meanList[i], gmm.matList[i], vectX )) for i in range(3): prob2 = gmm.aplhaList[i] * densityFunc(gmm.meanList[i], gmm.matList[i], vectX) lateProbMat[j,i] = float(prob2/prob1) for i in range(3): #更新高斯混合模型参数 mean = calMean(dataset,lateProbMat,i) #更新均值向量 gmm.meanList[i] = mean X = np.array(dataSet) # 列表类型转换成array数组类型 numSamples = len(dataSet) bandwidth = estimate_bandwidth(X, quantile=0.2, n_samples=500)#estimate_bandwidth函数用作于mean-shift算法估计带宽 clf = MeanShift(bandwidth=bandwidth, bin_seeding=True, cluster_all=True).fit(X) centroids = clf.labels_ print( centroids, type(centroids)) # 显示每一个点的聚类归属 # 计算其自动生成的k,并将聚类数量小于3的排除 arr_flag = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] for i in clf.labels_: arr_flag[i] += 1 k = 0 for i in arr_flag: if (i > 3): k += 1 print( k) mark = ['or', 'ob', 'og', 'ok', '^r', '+r', 'sr', 'dr', '
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
相关搜索: