Python-实验13-程序应用开发-乳腺癌分类编程_第1页
Python-实验13-程序应用开发-乳腺癌分类编程_第2页
Python-实验13-程序应用开发-乳腺癌分类编程_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验13 程序开发应用实验目的:1、 掌握程序开发钥匙步骤2、 理解分治算法的思想实验内容: 乳腺癌分类(breast-cancer-classifier)问题 问题描述: 给定一些肿瘤样本,现在希望能根据肿瘤数据对其进行判定是恶性的(malignant)还是良性的(benign)判断 数据集有如下9个肿瘤属性,可以做成9个类别 数据集如下所示: (, b, 5, 1, 1, 1, 2, 1, 3, 1, 1)(, b, 5, 4, 4, 5, 7, 10, 3, 2, 1)(, b, 3, 1, 1, 1, 2, 2, 3, 1, 1)(, b, 6, 8, 8, 1, 3, 4, 3, 7

2、, 1)(, b, 4, 1, 1, 3, 2, 1, 3, 1, 1)(, m, 8, 10, 10, 8, 7, 10, 9, 7, 1)(, b, 1, 1, 1, 1, 2, 10, 3, 1, 1)(, b, 2, 1, 2, 1, 2, 1, 3, 1, 1) 通过研究这些属性,找到肿瘤预测模式,根据肿瘤属性来判定肿瘤性质? 设计分类器算法如下: 从训练文件中创建训练集 创建分类器,使用训练集中确定每个属性的分类值 从测试文件中创建测试集 使用分类器,对测试集进行分类 计算这些判定的准确性 参考“大框架” def main(): print 读取训练数据。 trainfile=te

3、st_data.txt trainingSet=makeTrainingSet(trainfile) print 创建分类器 classifier=trainClassifier(trainingSet) print 使用分类器,对测试集进行分类 results=classifyTestSet(trainingSet,classifier) print 计算这些判定的准确性 reportResults(results) def ReadSet(FileName): RSet= ReadFile=open(e:breast-cancer-wisconsin.data.txt,r) for lin

4、e in ReadFile: line=line.strip() if ? in line: continue id,a1,a2,a3,a4,a5,a6,a7,a8,a9,diag=line.split(,) if diag=4: diagMorB=m else: diagMorB=b patientTup=(id, diagMorB, int(a1), int(a2), int(a3), int(a4), int(a5),int(a6),int(a7),int(a8),int(a9) RSet.append(patientTup) ReadFile.close() return RSetde

5、f SumList(List1,List2): SumList=0.0*9 for index in range(9): SumListindex=List1index+List2index return SumListdef MakeAvg(SumList,total): AverageList=0.0*9 for index in range(9): AverageListindex=SumListindex / float(total) return AverageListdef Classifier(TrainSet): benignSum=0*9 benignCount=0 mali

6、gnantSum=0*9 malignantCount=0 for patientTup in TrainSet: if patientTup1=b: benignSum=SumList(patientTup2:,benignSum) benignCount+=1 else: malignantSum=SumList(patientTup2:,malignantSum) malignantCount+=1 benignAvg=MakeAvg(benignSum,benignCount) malignantAvg=MakeAvg(malignantSum,malignantCount) clas

7、sifier=MakeAvg(SumList(benignAvg,malignantAvg),2) return classifierdef Test(TestSet,classifier): Result= for ReadTup in TestSet: bCount=0 mCount=0 for index in range(9): if ReadTupindex+2classifierindex: mCount+=1 else: bCount+=1 ResultTup=(ReadTup0,bCount,mCount,ReadTup1) Result.append(ResultTup) r

8、eturn Resultdef ShowResult(Result): totalCount=0 wrongCount=0 for RTup in Result: totalCount+=1 if RTup1RTup2: if RTup-1=m: wrongCount+=1 elif RTup-1=b: wrongCount+=1 rightCount=totalCount-wrongCount accuracy=100*float(rightCount)/totalCount print Total:%d Wrong:%d The accuracy:%d%(totalCount,wrongC

9、ount, accuracy),% def main(): print Reading in Train data. TrainFileName=e:breast-cancer-wisconsin.data.txt RSet=ReadSet(TrainFileName) print ReadSet is done. print Forming a classifier. classifier=Classifier(RSet) print Classifier is done. print Reading in Test data. TestFileName=e:fullTestData.txt TestSet=ReadSet(TestFileName) print TestSet is done. pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论