背景:
恶性肿瘤俗称癌症,当前已成为危害我国居民生命健康的主要杀手。应用中医治疗恶性肿瘤已成为公认的综合治疗方法之一,且中医治疗乳腺癌有着广泛的适应症和独特的优势。从整体出发,根据不同的临床证候进行辩证论治。确定‘先证后治’的方向:即后续证候尚未出现之前,需要截断恶化病情的那些后续证候。发现中医症状间的关联关系和诸多症状间的规律性,并且依据规则分析病因、预测病情发展以及为未来临床诊治提供有效借鉴。这样,在治疗患者的过程中,医生可以有效的减少西医治疗的毒副作用,为后续治疗打下基础。
目标:
1)借助三阴乳腺癌患者的病理信息,挖掘患者的症状与中医证型之间的关联关系。
2)对截断治疗提供依据,挖掘潜性证素。
中医证型关联规则挖掘模型总体流程图
数据获取:调查问卷,将收集回来的问卷表整理成原始数据
数据预处理:
1)数据清洗 将无效问卷弃除
2)属性规约 将冗余属性与挖掘任务不相关的属性剔除,只选取了6中证型得分、TNM分期
3)数据变换 本章数据变换主要采用属性构造和数据离散化两种方法对数据进行处理。首先通过属性构造获得症型系数,然后通过聚类算法对数据进行离散化处理,形成建模数据。
数据聚类离散化代码
from __future__ import print_function
import pandas as pd
from sklearn.cluster import KMeans
datafile = 'fiel/data.xls'#待聚类的数据文件
processedfile = 'savefile/data_processed.xls'
data = pd.read_excel(datafile)#读取数据
# print(data.columns)
typeLabel = {u'肝气郁结证型系数':'A',
u'热毒蕴结证型系数':'B',
u'冲任失调证型系数':'C',
u'气血两虚证型系数':'D',
u'脾胃虚弱证型系数':'E',
u'肝肾阴虚证型系数':'F'}
#需要进行聚类的类别数
k = 4
#进行聚类分析
keys = list(typeLabel.keys())
values = list(typeLabel.values())
# print(data['肝气郁结证型系数'])
result = pd.DataFrame()
#当.py文件被直接运行时,这句话之下的代码会被执行,
# 而当.py文件是以模块形式被导入时它之下的代码不会被运行
if __name__ == '__main__':
for i in range(len(keys)):
#调用kmeans算法,进行聚类分析
print('正在进行聚类的是“%s”'%keys[i])
kmodels = KMeans(n_clusters=k)
#训练模型
kmodels.fit(data[[keys[i]]].as_matrix())
#聚类中心
r1 = pd.DataFrame(kmodels.cluster_centers_,columns=[values[i]])
# print('r1',r1)
''' A
0 0.220441
1 0.136954
2 0.295007
3