数据聚类离散化

通过聚类算法将每列数据单独训练找出对应的簇中心和每个实例对应的分类。
利用实例分类得出每个类别分的实例。本文中使用两个簇中心的均值得出边界值。
将所有边界统一到一起,然后在利用其对病患数据集进行修改,将其离散值修改为对应的分类。

import pandas as pd
from sklearn.cluster import KMeans#倒入k均值算法

data=pd.read_excel('../data/data.xls')
k=4#聚类算法分类数
print(data.columns)
m='A'
result=pd.DataFrame()
for i in data.columns[:6]:
    print(u'正在进行"%s"的聚类'%i)
    kmodel=KMeans(n_clusters=k)
    kmodel.fit(data[[i]])


    r1=pd.DataFrame(kmodel.cluster_centers_,columns=[i])#输出聚类算法中心列表
    print(r1.head())
    r2=pd.Series(kmodel.labels_).value_counts()#分类统计
    print(r2)
    r2=pd.DataFrame(r2,columns=[i+'n'])#各个分类对应的数据数目
    print(r2)
    r=pd.concat([r1,r2],axis=1).sort_values(axis=0,ascending=True,by=i)#联合并且按列排序
    print(r)
    r.index=[1,2,3,4]#将index置换
    r[i]=r[i].rolling(2).mean()#将两个簇类中心求均值,得到边界,便于后面数据的分类。
    print('出')
    print(r.T)
    result=result.append(r.T)#利用T转换行列,如此所有的r有了共同的columns,可以通过append,
    print(len(result))

result=result.sort_index()#利用index
print(result,len(result))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值