-
聚类分析-案例:客户特征的聚类与探索性分析
2020-09-28 20:20:58某天业务部门拿了一些数据找到数据部门,这些数据是关于客户的,苦于没有分析入手点,希望数据部门通过对这些数据的分析,给业务部门一些启示、建议。 数据源特征如下: user_id用户ID列,整数型 AVG_ORDERS:平均...来自:宋天龙《PYTHON数据分析与数据化运营》,以下内容比较简陋,方便日后翻阅。
1. 业务场景
某天业务部门拿了一些数据找到数据部门,这些数据是关于客户的,苦于没有分析入手点,希望数据部门通过对这些数据的分析,给业务部门一些启示、建议。
数据源特征如下: user_id用户ID列,整数型 AVG_ORDERS:平均用户订单数量,浮点型 AVG_MONEY:平均订单价值,浮点型 IS_ACTIVE:是否活跃 字符串 SEX:性别,0,1,1表示未知,男,女
分析:
IS_ACTIVE是字符串型分类变量,SEX是分类型变量,均需要对其onehotencode处理;
AVG_ORDERS和AVG_MONEY有明显的量纲差异,需要归一化;
但是使用onehotencoder后IS_ACTIVE和SEX的特征被分开了,最后输出的结果可能会比较凌乱,不符合业务原始变量分析的需求。
下面使用另外一种方法:
直接对IS_ACTIVE和SEX分类特征计算,只是不能用距离来判断相似度,而是计算类别内的分类特征值的出现频率。2. python实现
1.导入库,读取数据
import pandas as pd # panda库 import numpy as np import matplotlib.pyplot as plt # 导入matplotlib库 from sklearn.preprocessing import MinMaxScaler # 标准化库 from sklearn.cluster import KMeans # 导入sklearn聚类模块 from sklearn.metrics import silhouette_score, calinski_harabasz_score # 效果评估模块 import matplotlib.pyplot as plt # 图形库 # 读取数据 raw_data = pd.read_csv('cluster.txt') # 导入数据文件 print(raw_data.head())
2.数据处理、模型训练
模型训练和评估的数据只是标准化的两列
# 数据标准化 numeric_features = raw_data.iloc[:,1:3] # 数值型特征 scaler = MinMaxScaler() scaled_numeric_features = scaler.fit_transform(numeric_features) print(scaled_numeric_features[:,:2]) # 训练聚类模型 n_clusters = 3 # 设置聚类数量 model_kmeans = KMeans(n_clusters=n_clusters, random_state=0) # 建立聚类模型对象 model_kmeans.fit(scaled_numeric_features) # 训练聚类模型
3.评估模型
# 模型效果指标评估 # 总样本量,总特征数 n_samples, n_features = raw_data.iloc[:,1:].shape print('samples: %d \t features: %d' % (n_samples, n_features)) # 非监督式评估方法,还是训练的两列 silhouette_s = silhouette_score(scaled_numeric_features, model_kmeans.labels_, metric='euclidean') # 平均轮廓系数 calinski_harabaz_s = calinski_harabaz_score(scaled_numeric_features, model_kmeans.labels_) # Calinski和Harabaz得分 unsupervised_data = {'silh':[silhouette_s],'c&h':[calinski_harabasz_s]} unsupervised_score = pd.DataFrame.from_dict(unsupervised_data) print('\n','unsupervised score:','\n','-'*60) print(unsupervised_score)
第一个指标大于0.5说明聚类质量较优。4.结果合并分析
对于分类变量可以根据非分类变量训练得到的标签对其计算每一类别的频数
# 合并数据和特征 # 获得每个样本的聚类类别 kmeans_labels = pd.DataFrame(model_kmeans.labels_,columns=['labels']) # 组合原始数据与标签 kmeans_data = pd.concat((raw_data,kmeans_labels),axis=1) print(kmeans_data.head()) # 计算不同聚类类别的样本量和占比 label_count = kmeans_data.groupby(['labels'])['SEX'].count() # 计算频数 label_count_rate = label_count/ kmeans_data.shape[0] # 计算占比 kmeans_record_count = pd.concat((label_count,label_count_rate),axis=1) kmeans_record_count.columns=['record_count','record_rate'] print(kmeans_record_count.head()) # 计算不同聚类类别数值型特征 kmeans_numeric_features = kmeans_data.groupby(['labels'])['AVG_ORDERS','AVG_MONEY'].mean() print(kmeans_numeric_features.head()) # 计算不同聚类类别分类型特征 active_list = [] sex_gb_list = [] unique_labels = np.unique(model_kmeans.labels_) print('标签:',unique_labels) for each_label in unique_labels: each_data = kmeans_data[kmeans_data['labels']==each_label] active_list.append(each_data.groupby(['IS_ACTIVE'])['USER_ID'].count()/each_data.shape[0]) sex_gb_list.append(each_data.groupby(['SEX'])['USER_ID'].count()/each_data.shape[0]) kmeans_active_pd = pd.DataFrame(active_list) kmeans_sex_gb_pd = pd.DataFrame(sex_gb_list) kmeans_string_features = pd.concat((kmeans_active_pd,kmeans_sex_gb_pd),axis=1) kmeans_string_features.index = unique_labels kmeans_string_features.columns=['不活跃','活跃','未知','男','女'] print(kmeans_string_features.head()) # 合并所有类别的分析结果 features_all = pd.concat((kmeans_record_count,kmeans_numeric_features,kmeans_string_features),axis=1) print(features_all.head())
5.可视化展示
# part 1 全局配置 fig = plt.figure(figsize=(10, 7)) titles = ['RECORD_RATE','AVG_ORDERS','AVG_MONEY','IS_ACTIVE','SEX'] # 共用标题 line_index,col_index = 3,5 # 定义网格数 ax_ids = np.arange(1,16).reshape(line_index,col_index) # 生成子网格索引值 plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 # part 2 画出三个类别的占比 pie_fracs = features_all['record_rate'].tolist() for ind in range(len(pie_fracs)): ax = fig.add_subplot(line_index, col_index, ax_ids[:,0][ind]) init_labels = ['','',''] # 初始化空label标签 init_labels[ind] = 'cluster_{0}'.format(ind) # 设置标签 init_colors = ['lightgray', 'lightgray', 'lightgray'] init_colors[ind] = 'g' # 设置目标面积区别颜色 ax.pie(x=pie_fracs, autopct='%3.0f %%',labels=init_labels,colors=init_colors) ax.set_aspect('equal') # 设置饼图为圆形 if ind == 0: ax.set_title(titles[0]) # part 3 画出AVG_ORDERS均值 avg_orders_label = 'AVG_ORDERS' avg_orders_fraces = features_all[avg_orders_label] for ind, frace in enumerate(avg_orders_fraces): ax = fig.add_subplot(line_index, col_index, ax_ids[:,1][ind]) ax.bar(x=unique_labels,height=[0,avg_orders_fraces[ind],0])# 画出柱形图 ax.set_ylim((0, max(avg_orders_fraces)*1.2)) ax.set_xticks([]) ax.set_yticks([]) if ind == 0:# 设置总标题 ax.set_title(titles[1]) # 设置每个柱形图的数值标签和x轴label ax.text(unique_labels[1],frace+0.4,s='{:.2f}'.format(frace),ha='center',va='top') ax.text(unique_labels[1],-0.4,s=avg_orders_label,ha='center',va='bottom') # part 4 画出AVG_MONEY均值 avg_money_label = 'AVG_MONEY' avg_money_fraces = features_all[avg_money_label] for ind, frace in enumerate(avg_money_fraces): ax = fig.add_subplot(line_index, col_index, ax_ids[:,2][ind]) ax.bar(x=unique_labels,height=[0,avg_money_fraces[ind],0])# 画出柱形图 ax.set_ylim((0, max(avg_money_fraces)*1.2)) ax.set_xticks([]) ax.set_yticks([]) if ind == 0:# 设置总标题 ax.set_title(titles[2]) # 设置每个柱形图的数值标签和x轴label ax.text(unique_labels[1],frace+4,s='{:.0f}'.format(frace),ha='center',va='top') ax.text(unique_labels[1],-4,s=avg_money_label,ha='center',va='bottom') # part 5 画出是否活跃 axtivity_labels = ['不活跃','活跃'] x_ticket = [i for i in range(len(axtivity_labels))] activity_data = features_all[axtivity_labels] ylim_max = np.max(np.max(activity_data)) for ind,each_data in enumerate(activity_data.values): ax = fig.add_subplot(line_index, col_index, ax_ids[:,3][ind]) ax.bar(x=x_ticket,height=each_data) # 画出柱形图 ax.set_ylim((0, ylim_max*1.2)) ax.set_xticks([]) ax.set_yticks([]) if ind == 0:# 设置总标题 ax.set_title(titles[3]) # 设置每个柱形图的数值标签和x轴label activity_values = ['{:.1%}'.format(i) for i in each_data] for i in range(len(x_ticket)): ax.text(x_ticket[i],each_data[i]+0.05,s=activity_values[i],ha='center',va='top') ax.text(x_ticket[i],-0.05,s=axtivity_labels[i],ha='center',va='bottom') # part 6 画出性别分布 sex_data = features_all.iloc[:,-3:] x_ticket = [i for i in range(len(sex_data))] sex_labels = ['SEX_{}'.format(i) for i in range(3)] ylim_max = np.max(np.max(sex_data)) for ind,each_data in enumerate(sex_data.values): ax = fig.add_subplot(line_index, col_index, ax_ids[:,4][ind]) ax.bar(x=x_ticket,height=each_data) # 画柱形图 ax.set_ylim((0, ylim_max*1.2)) ax.set_xticks([]) ax.set_yticks([]) if ind == 0: # 设置标题 ax.set_title(titles[4]) # 设置每个柱形图的数值标签和x轴label sex_values = ['{:.1%}'.format(i) for i in each_data] for i in range(len(x_ticket)): ax.text(x_ticket[i],each_data[i]+0.1,s=sex_values[i],ha='center',va='top') ax.text(x_ticket[i],-0.1,s=sex_labels[i],ha='center',va='bottom') plt.tight_layout(pad=0.8) #设置默认的间距
6.结果分析
-
python 聚类分析实战案例:K-means算法(原理源码)
2017-12-20 14:44:31K-means算法: ...1.聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适 2.Kmeans需要人为地确定初始聚类中心,K-means算法:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xvV44zrK-1573127992123)(https://img-blog.csdn.net/20171220143951780?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSEhUTkFO/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]
关于步骤:参考之前的博客
关于代码与数据:暂时整理代码如下:后期会附上github地址,上传原始数据与代码完整版,各种聚类算法的对比:参考连接
Kmeans算法的缺陷1.聚类中心的个数K 需要事先给定,但在实际中这个 K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适
2.Kmeans需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果。#!usr/bin/env python #_*_ coding:utf-8 _*_ import random import math ''' kMeans:2列数据对比,带有head ''' #1.load data def importData(): f = lambda name,b,d: [name, float(b), float(d)] with open('birth-death-rates.csv', 'r') as inputFile: return [f(*line.strip().split('\t')) for line in inputFile]
写入文件类型
**#2. calculate Distance **def euclideanDistance(x,y): return math.sqrt(sum([(a-b)**2 for (a,b) in zip(x,y)])) #L=points, def partition(points, k, means, d=euclideanDistance): # print('means={}'.format(means)) thePartition = [[] for _ in means] # list of k empty lists indices = range(k) # print('indices={}'.format(indices)) for x in points: #index为indices索引,调用d函数,计算每个值与聚类中心的距离,将其分类 closestIndex = min(indices, key=lambda index: d(x, means[index]))#实现X与每个Y直接的求解:key=lambda index: d(x, means[index]) thePartition[closestIndex].append(x) return thePartition
#3.寻找收敛点 def mean(points): ''' assume the entries of the list of points are tuples; e.g. (3,4) or (6,3,1). ''' n = len(points) # print(tuple(float(sum(x)) / n for x in zip(*points))) #*points将【[1,2],[2,3]】分割出来【1,2】 return tuple(float(sum(x)) / n for x in zip(*points)) #将最开始的[[4, 1], [1, 5]] 经过处理变成[(4, 1),(1, 5)] def kMeans(points, k, initialMeans, d=euclideanDistance): oldPartition = [] newPartition = partition(points, k, initialMeans, d) while oldPartition != newPartition: oldPartition = newPartition newMeans = [mean(S) for S in oldPartition] newPartition = partition(points, k, newMeans, d) return newPartition
#0.函数调用初始中心点
if __name__ == "__main__": L = [x[1:] for x in importData()] # remove names # print (str(L).replace('[','{').replace(']', '}')) import matplotlib.pyplot as plt ''' plt.scatter(*zip(*L)) plt.show() ''' import random k = 3 partition = kMeans(L, k, random.sample(L, k)) #L是集合,K分类个数,random.sample(L, k)中心点 plt.scatter(*zip(*partition[0]), c='b')#[[],[],[]] plt.scatter(*zip(*partition[1]), c='r') plt.scatter(*zip(*partition[2]), c='g') plt.show()
-
MNIST图像谱聚类的案例实现
2020-07-25 11:58:46最近要做一个基于无监督学习的传统图像分类,需要使用到聚类分析方法,但看到网上大多数都是关于点集的案例分析,基于自然图像的聚类分析实在是难觅,于是乎花了将近一周时间,参照着 Programming Computer Vision ...写在前面
最近要做一个基于无监督学习的传统图像分类,需要使用到聚类分析方法,但看到网上大多数都是关于点集的案例分析,基于自然图像的聚类分析实在是难觅,于是乎花了将近一周时间,参照着 Programming Computer Vision with Python 这本书以及相关文章进行了研究1,并实现了MNIST图像的谱聚类小案例(代码已在GitHub开源2),以记录之。
谱聚类简介
谱聚类是从图论中演化出来的算法,后来在聚类中得到了广泛的应用。它的主要思想是把所有的数据看做空间中的点,这些点之间可以用边连接起来。距离较远的两个点之间的边权重值较低,而距离较近的两个点之间的边权重值较高,通过对所有数据点组成的图进行切图,让切图后不同的子图间边权重和尽可能的低,而子图内的边权重和尽可能的高,从而达到聚类的目的3。谱聚类的聚类效果通常优于传统的聚类算法(如K-Means算法)。
数据集
本案例使用
MNIST
手写数字图像数据集,首先选取合适的图像,并整理如下图所示:
代码实现步骤详述
图像预处理
由于谱聚类对图像尺寸和文件名有要求,所以首先对图像进行
灰度化
和resize
操作,分别对应项目中的grayscale_processing.py
和picture_resize.py
这两个代码文件。谱聚类操作
在项目中的
spectral_clustering.py
代码文件中,进行图像的谱聚类。代码如下:# -*- coding: utf-8 -*- from PCV.tools import imtools, pca from PIL import Image, ImageDraw from pylab import * from scipy.cluster.vq import * import os import random # imlist = imtools.get_imlist('./dir_my') imlist = imtools.get_imlist('./dir_my_gray_rescale') imnbr = len(imlist) # Load images, run PCA. immatrix = array([array(Image.open(im)).flatten() for im in imlist], 'f') V, S, immean = pca.pca(immatrix) # Project on 2 PCs. projected = array([dot(V[[0, 1]], immatrix[i] - immean) for i in range(imnbr)]) # P131 Fig6-3左图 #projected = array([dot(V[[1, 2]], immatrix[i] - immean) for i in range(imnbr)]) # P131 Fig6-3右图 n = len(projected) # compute distance matrix S = array([[sqrt(sum((projected[i]-projected[j])**2)) for i in range(n)] for j in range(n)], 'f') # create Laplacian matrix rowsum = sum(S, axis=0) D = diag(1/sqrt(rowsum)) I = identity(n) L = I - dot(D, dot(S,D)) # compute eigenvectors of L U, sigma, V = linalg.svd(L) k = 3 # create feature vector from k first eigenvectors # by stacking eigenvectors as columns features = array(V[:k]).T # k-means features = whiten(features) centroids, distortion = kmeans(features,k) code, distance = vq(features, centroids) # plot clusters 绘制聚类簇 for c in range(k): ind = where(code == c)[0] # where函数返回数组的索引值 figure() # 创建figure实例 gray() for i in range(minimum(len(ind), 39)): # print(imlist[ind[i]]) # ./dir_my_gray_rescale\5.jpg im = Image.open(imlist[ind[i]]) # print("im:%s" % im) # im:<PIL.JpegImagePlugin.JpegImageFile image mode=L size=28x28 at 0x241B9DD2EF0> image_name = imlist[ind[i]].split("\\")[1] # image_name: 5.jpg image_name_real = image_name.split(".")[0] # image_name_real: 1_1 image_name_new = image_name_real + ".png" # print(image_name_new) # image_name_new: 1_1.png # print("image_name: %s" % image_name) # print("image_name_real: %s" % image_name_real) subplot(4, 10, i+1) imshow(array(im)) # 绘图 # print("array(im)的值为%s" % array(im)) # 使用imsave()函数保存图像 pre_savename = "./dir_classfied_my/%02d/" % c # "./dir/00" # savename = os.path.join(pre_savename, str(random.randint(0, 10000000))) savename = os.path.join(pre_savename, image_name_new) imsave(savename, array(im)) axis('equal') axis('off') show()
聚类后的MNIST图像数据如下图所示:
在实现了聚类之后,编写代码实现聚类后图像的分门别类,效果图如下:
通过观察可以发现,基于无监督的谱聚类进行图像分类还是有一定的效果的,而且通过对比实验发现,待分类的图像数据越多,分类越精确。聚类后的图像对应还原操作
由于在聚类操作前对数据进行了图像预处理操作,所以如果要保持原来的图像,需要对其进行还原操作,还原的方法有很多种,这里依据图像名来进行,于是乎编写代码如下(对应项目中的
returned.py
代码文件):import os import glob import shutil PATH_0 = './dir_my/' # 存放原始图像的文件夹路径 PATH_1 = './dir_classfied_my/' # 存放根据聚类效果来对原始图像重新排布的原始图像文件夹路径 # 1、先遍历图像处理前总文件夹的图像文件 for filename_0 in os.listdir(r"./dir_my"): # listdir的参数是文件夹的路径 # print(filename_0) #此时的filename是文件夹中文件的名称 for filename_1 in os.listdir(r"./dir_classfied_my"): # print(filename_1) # filename_1: 00 01 02 for filename_2 in os.listdir(r"./dir_classfied_my/%s" % filename_1): # print(filename_2) # filename_2: '1_2.jpg' paths = PATH_0 + filename_1 + '/' + filename_2 # print(paths) if filename_2 == filename_0: shutil.copy(os.path.join(PATH_0, filename_0), os.path.join(PATH_1, filename_1, filename_0))
这里一心想实现最终效果,所以并没有过多考虑时间复杂度的问题 [手动狗头],代码还有很大的优化空间。
这篇文章写出来,希望能帮助到有需要的人们,同时也是为了日后需要时的查阅方便。文章中项目的代码已开源,点击这里即可查看,如果有帮助到你,请动动你的小手在GitHub上点亮
☆ Star
。写到这里,差不多本文就要结束了。如果有问题可以在下方留言区留言交流,错误之处也欢迎小伙伴们的批评指正。如果我的这篇文章帮助到了你,那我也会感到很高兴,一个人能走多远,在于与谁同行。
-
学习笔记(10):实用数据分析:数据分析师从小白到精通-聚类分析的方法、步骤及应用案例
2020-10-23 14:21:19这是一门为数据分析小白量身打造的课程,你从网络或者公众号收集到很多关于数据分析的知识,但是它们零散不成体系,所以第一堂课首要目标是为你介绍: Ø 什么是数据分析-知其然才知其所以然 Ø 为什么要学...立即学习:https://edu.csdn.net/course/play/27362/368000?utm_source=blogtoedu
在已知结果类别的时候使用分类分析方法。
当未知结果类别,我们可以去根据对象的属性聚类推测可能的结果类别
K-means
以最小误差函数的值为最小为目标,按照预先设定的划分类别数量,采用距离作为相似性的评价指标,认为两个对象距离越近,相似度越大。
计算步骤:
1从样本选取k个对象为样本中心
2分别计算样本到聚类中心的距离,进行分配
3所有对象分配好,计算误差平方和SSE
4重新选择样本中心,计算新的误差平方和sse
5与上次作比较找到误差平方和较小得分类结果
6当聚类中心不发生变化,停止并输出聚类结果
SSE计算方法:
距离计算方法:物理距离:欧几里得距离
曼哈顿距离:所有坐标差得绝对值和
聚类质量评估方法:
误差平方和SSE作为度量聚类质量得目标函数。
每个点到聚类中心的距离的平方和
聚类不是目标,只是处理
之后对聚类结果进行处理
:1各分群的特点?
:2对不同分区可采用的处理措施?
k-中心点
多层次聚类
已知类别选择分类:
未知类别选择聚类:
-
调用kmeans_聚类分析—KMeans
2021-01-09 04:39:40K-Means(K均值)是聚类最常用的方法之一,基于点与点距离的相似度来计算最佳类别归属。数据来源业务部门,这些数据是关于客户的,苦于没有分析入手点希望数据部门通过对这些...故考虑对客户进行聚类分析,分析客户... -
kmeans python_聚类分析—KMeans
2020-11-26 10:31:46K-Means(K均值)是聚类最常用的方法之一,基于点与点距离的相似度来计算最佳类别归属。数据来源业务部门,这些数据是关于客户的,苦于没有分析入手点希望数据部门通过对这些...故考虑对客户进行聚类分析,分析客户... -
Kmeans聚类数据分析及Anaconda介绍
2017-08-01 17:38:13这次课程主要讲述一个关于Kmeans聚类的数据分析案例,通过这个案例让同学们简单了解大数据分析的基本流程,以及使用Python实现相关的聚类分析。 主要内容包括: 1.Anaconda软件的安装过程及简单配置 2.聚类... -
一文读懂如何对混合型数据做聚类分析!
2018-07-24 13:29:49总的来说,对无监督数据进行聚类并非易事。现如今的数据处理和探索无法准确的测量数据。这也意味着我们对数据的处理和探索变得...此外,关于在无监督学习的入门课程中,对拿来讨论的理想的案例,k-means教程,也只... -
【Python数据挖掘课程】二.Kmeans聚类数据分析及Anaconda介绍
2016-10-10 19:50:03这次课程主要讲述一个关于Kmeans聚类的数据分析案例,通过这个案例让同学们简单了解大数据分析的基本流程,以及使用Python实现相关的聚类分析。 主要内容包括: 1.Anaconda软件的安装过程及简单配置 2.聚类及... -
Python数据挖掘课程 二.Kmeans聚类数据分析及Anaconda介绍
2017-03-25 19:29:17这次课程主要讲述一个关于Kmeans聚类的数据分析案例,通过这个案例让同学们简单了解大数据分析的基本流程,以及使用Python实现相关的聚类分析。 主要内容包括: 1.Anaconda软件的安装过程及简单配置 2.聚类... -
【Python数据挖掘课程】三.Kmeans聚类代码实现、作业及优化
2016-10-12 03:33:08这篇文章直接给出上次关于Kmeans聚类的篮球远动员数据分析案例,同时介绍这次作业同学们完成的图例,最后介绍Matplotlib包绘图的优化知识。希望这篇文章对你有所帮助,尤其是刚刚接触数据挖掘以及大数据的同学,同时... -
Python数据挖掘课程 三.Kmeans聚类代码实现、作业及优化
2017-03-25 19:33:42这篇文章直接给出上次关于Kmeans聚类的篮球远动员数据分析案例,同时介绍这次作业同学们完成的图例,最后介绍Matplotlib包绘图的优化知识。 前文推荐: 【Python数据挖掘课程】一.安装Python及爬虫入门介绍 ... -
python包怎么做双重差分did分析_互助问答第13期:PSM_DID 、工具变量回归中加入聚类命令等问题...
2020-12-30 22:05:36问题1: 关于GPCA(全局主成分分析模型)的相关Stata 命令老师能否给一个使用全局主成分分析法,包括Stata命令的参考案例?回答1 1.Stata可以通过变量进行主成分分析,也可以直接通过相关系数矩阵或协方差矩阵进行。(1)... -
stata psm命令_互助问答第13期:PSM_DID 、工具变量回归中加入聚类命令等问题
2020-12-16 21:27:04问题1: 关于GPCA(全局主成分分析模型)的相关Stata 命令老师能否给一个使用全局主成分分析法,包括Stata命令的参考案例?回答1 1.Stata可以通过变量进行主成分分析,也可以直接通过相关系数矩阵或协方差矩阵进行。... -
R语言在商务分析中的应用
2017-08-04 22:10:11数据分割在这本书中主要涉及聚类分析,我们会讨论各种类型的聚类。在这里增加聚类是因为大数据商务环境中对于数据压缩技术的固有的、日益增长的需求而且数据集的大小也在飞速地增长。我们再次借助Rattle GUI,但仍... -
数据挖掘——航空公司客户价值分析(分析+建模)
2020-06-17 14:43:28本次建模项目是来自于《python数据分析与挖掘实战》的案例,是介绍航空公司客户价值的分析,书中给出了关于62988个客户的基本信息和在观测窗口内的消费积分等相关信息,其中包含了会员卡号、入会时间、性别、年龄、... -
使用Apriori进行关联分析
2018-06-22 14:24:45其中最经典的案例就是关于尿不湿和啤酒的故事。怎样在繁杂的数据中寻找到数据之间的隐藏关系?当然可以使用穷举法,但代价高昂,所以需要使用更加智能的方法在合理时间内找到答案。Apriori就是其中的一种关联分析... -
数据挖掘——航空公司客户价值分析(代码完整)
2018-01-27 00:39:59最近在阅读张良均、王路等人出版的书《python数据分析与挖掘实战》,其中有个案例是介绍航空公司客户价值的分析,其中用到的聚类方法是K-Means方法,我一直把学习的重心放在监督学习上,今天就用这个案例练习一下非... -
各样本观察值均加同一常数_32首歌曲小样本举例:如何评估无监督机器学习?...
2020-12-08 15:21:22今日份知识你摄入了么?目前为止,在该系列博文中,我们已经看到了如何通过仅基于歌曲音频特征的聚类分析来...如果数据甚至连标签都没有怎么办呢(许多真实生活中的聚类分析案例就是这样)?又如果,这些标签最开始对... -
使用Apriori进行关联分析(一)
2018-10-24 11:57:57使用Apriori进行关联分析(一) 大型超市有海量...其中最经典的案例就是关于尿不湿和啤酒的故事。怎样在繁杂的数据中寻找到数据之间的隐藏关系?当然可以使用穷举法,但代价高昂,所以需要使用更加智能...
-
Kubernetes下日志采集、存储与处理技术实践
-
工程制图 AutoCAD 2012 从二维到三维
-
第一天学习 P5 独立键盘 矩阵键盘
-
NearFi应用-源码
-
具有超窄带宽的稳定锁模纳秒无Chi脉冲产生
-
响应式编程入门与实战(Reactor、WebFlux、R2DBC)
-
Mycat 实现 MySQL的分库分表、读写分离、主从切换
-
宏宇社:国外lead入门教程(四)lead任务必备软件
-
ASHRAE 2012 IT Equipment Thermal Management and Controls_V1.0.pdf
-
2015年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
【Python-随到随学】FLask第二周
-
Kettle的使用——Excel输出
-
Go-SpeedTest-Bot:帮助您使用手机管理所有节点的机器人-源码
-
SecureCRT 连接 GNS3/Linux 的安全精密工具
-
Mysql数据库面试直通车
-
将和声搜索算法与杜鹃搜索混合,以进行全局数值优化
-
kafka中kafkaConsumer的poll拉取方法
-
基于采用级联调制器的光电振荡器的自振荡光学频率梳状发生器
-
2017年上半年 信息系统监理师 上午试卷 综合知识 软考真题【含答案和答案解析】
-
face++API接口实现颜值测试