Python高级数据处理与可视化(一)---- 聚类分析

聚类分析

  • 聚类分析(cluster analysis):以相似性为基础把相似的对象通过静态分类的方法分成不同的组别或更多的子集。特性:基于相似性,有多个聚类中心。

  • Kmeans算法:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。


实例1

from numpy import vstack 
from scipy.cluster.vq import kmeans,vq

list1=[88.0,64.0,96.0,85.0]
list2=[92.0,99.0,95.0,94.0]
list3=[91.0,87.0,99.0,95.0]
list4=[78.0,99.0,97.0,81.0]
list5=[88.0,78.0,98.0,84.0]
list6=[100.0,95.0,100.0,92.0]       #六位同学的成绩

'''vstack:堆积成绩数据'''
data = vstack((list1,list2,list3,list4,list5,list6))    
centroids,_ = kmeans(data,2)    #kmeans函数返回的centroids就是聚类中心;2表示分类的类别数目
result,_ = vq(data,centroids)      #vq函数用来获取每一位同学所属的类

print(result)

实例2

  • 按相邻两天的收盘价涨跌规律对2014年第3季度(7-9月)构成道琼斯工业指数的30只股票聚类
from numpy import vstack 
from scipy.cluster.vq import kmeans,vq 
from matplotlib.finance import quotes_historical_yahoo_ochl 
from datetime import datetime 

start = datetime(2014,7,1) 
end = datetime(2014,9,30) 
listDji = ['AXP','BA','CAT','CSCO','CVX','DD','DIS','GE',
'GS','HD','IBM', 'INTC','JNJ','JPM','KO','MCD','MMM','MRK',
'MSFT','NKE','PFE','PG','T','TRV', 'UNH','UTX','V','VZ','WMT','XOM']    #30家公司代号

'''初始化两个二维数组'''
quotes = [ [0 for col in range(90)] for row in range(30)] 
listTemp = [ [0 for col in range(90)] for row in range(30)]      

for i in range(30):
    quotes[i] = quotes_historical_yahoo_ochl(listDji[i], start, end)       #摘录数据,放入quotes

days = len(quotes[0])                                           
for i in range(30):
    for j in range(days-1):
        if (quotes[i][j][2] and quotes[i][j+1][2] and (quotes[i][j+1][2]>=quotes[i][j][2])):    #比较前后两天的收盘价
            listTemp[i][j] = 1.0
        else:
            listTemp[i][j] = -1.0 

data = vstack(listTemp) 
centroids,_ = kmeans(data,4) #float or double is supported  
result,_= vq(data,centroids) 
print(result)

函数用法

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值