数据集链接: https://pan.baidu.com/s/1K_YWnrCHDjl7wXmo29xwwQ 提取码: vv78
为更好反映中医证素分布的特征,采用证型系数代替单证型的证素得分
证型相关系数计算公式:证型系数=该证型得分/该证型总分
由于Apriori关联规则算法无法处理连续型数值变量,故需要对数据进行离散化
进行离散化处理并将每个属性聚成4类
#-*- coding: utf-8 -*-
'''
聚类离散化,最后的result的格式为:
1 2 3 4
A 0 0.178698 0.257724 0.351843
An 240 356.000000 281.000000 53.000000
即(0, 0.178698]有240个,(0.178698, 0.257724]有356个,依此类推。
'''
from __future__ import print_function
import pandas as pd
from sklearn.cluster import KMeans #导入K均值聚类算法
datafile = 'D:/下载/data/input/data.xls' #待聚类的数据文件
processedfile = 'D:/下载/data/output/data_processed.xls' #数据处理后文件
typelabel ={u'肝气郁结证型系数':'A', u'热毒蕴结证型系数':'B', u'冲任失调证型系数':'C', u'气血两虚证型系数':'D', u'脾胃虚弱证型系数':'E', u'肝肾阴虚证型系数':'F'}
k = 4 #需要进行的聚类类别数
#读取数据并进行聚类分析
data = pd.read_excel(datafile) #读取数据
keys = list(typelabel.keys())
result = pd.DataFrame()
if __name_