(
课件网) 广东教育-出卷网- 信息技术必修1 - information Technology education 信息技术教育 5.3 数 据 分 析 关联分析 特征探索 聚类分析 数据分类 数 据 分 析 方 法 ? 广东教育-出卷网- 信息技术必修1 - information Technology education 信息技术教育 聚 类 分 析 5.3 数 据 分 析 聚类分析 5.3 数据分析 - 主要内容 聚类分析的概念 01 02 聚类分析的思想 03 聚类分析的算法 1 概 念 聚类分析是一种探索性的分析,在分类的过程中,人们不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。 聚类分析 5.3 数据分析- 2 思 想 聚类分析 5.3 数据分析- K-平均算法就是一种经典的自下而上的聚类分析方法 2 思 想 聚类分析 5.3 数据分析- K-平均算法基本思想就是在空间N个点中,初始选择K个点作为中心聚类点,然后将其余点分别与K个点计算距离,选择自己最近的点作为自己的中心点,再不断更新中心聚集点,以达到“物以类聚,人以群分”的效果。 N个点 K个中心聚类点(K=3) K1 K2 K3 N-k m S1 S2 S3 K1’ K2’ K3’ A B C 3 算 法 聚类分析 5.3 数据分析- 1.从数据点集合中随机选择K个点作为初始的聚集中心,每个中心点代表着每个聚集中心的平均值。 2.对其余的每个数据点,依次判断其与K个中心点的距离,距离最近的表明它属于这项聚类。 3.重新计算新的聚簇集合的平均值即中心点。整个过程不断迭代计算,直到达到预先设定的迭代次数或中心点不再频繁波动。 学 以 致 用 聚类分析 5.3 数据分析- 运行Python程序对下表数据进行聚类分析,了解客户信息 学 以 致 用 聚类分析 5.3 数据分析- 运行Python程序对下表数据进行聚类分析,了解客户的价值信息 import csv import pandas as pda import numpy as npy import matplotlib.pylab as pyl from sklearn.cluster import KMeans fname="company.csv" dataf=pda.read_csv(fname,encoding="gbk") x=dataf.as_matrix() kms=KMeans(n_clusters=3) y=kms.fit_predict(x) print(y) #设置了聚类点的个数是3 #实现了聚类过程,通过计算将数据按聚类点的个数分为3类 聚类分析 5.3 数据分析- #年龄-消费金额图,消费时间-消费金额图,年龄-消费时间图 for i in range(0,len(y)): if(y[i]==0): print(str(i)+"0") pyl.subplot(2,3,1) #年龄-消费金额图 pyl.plot(dataf.iloc[i:i+1,0:1].as_matrix(),dataf.iloc[i:i+1,1:2].as_matrix(),"*r") pyl.subplot(2,3,2) #消费时间-消费金额图 pyl.plot(dataf.iloc[i:i+1,2:3].as_matrix(),dataf.iloc[i:i+1,1:2].as_matrix(),"*r") pyl.subplot(2,3,3) #年龄-消费时间图 pyl.plot(dataf.iloc[i:i+1,0:1].as_matrix(),dataf.iloc[i:i+1,2:3].as_matrix(),"*r") elif(y[i]==1): print(str(i)+"1") pyl.subplot(2,3,1) pyl.plot(dataf.iloc[i:i+1,0:1].as_matrix(),dataf.iloc[i:i+1,1:2].as_matrix(),"sy") pyl.subplot(2,3,2) pyl.plot(dataf.iloc[i:i+1,2:3].as_matrix(),dataf.iloc[i:i+1,1:2].as_matrix(),"sy") pyl.subplot(2,3,3) pyl.plot(dataf.iloc[i:i+1,0:1].as_matrix(),dataf.iloc[i:i+1,2:3].as_matrix(),"sy") elif(y[i]==2): print(str(i)+"2") pyl.subplot(2,3,1) #年龄-消费金额图 pyl.plot(dataf.iloc[i:i+1,0:1].as_matrix(),dataf.iloc[i:i+1,1:2].as_matrix(),"pb") pyl.subplot(2,3,2) #消费时间-消费金额图 pyl.plot(dataf.iloc[i:i+1,2:3].as_matrix(),dataf.iloc[i:i+1,1:2].as_matrix(),"pb") pyl.subplot(2,3,3) #年龄-消费时间图 pyl.plot(dataf.iloc[i:i+1,0:1].as_matrix(),dataf.iloc[i:i+1,2:3].as_matrix(),"pb") pyl.show() 学 以 ... ...