下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山东省春季高考《建筑类》专业知识模拟试题(二)
- 铁路行车规章课件- 调度命令的编制与下达
- 2026年精神科护理题库高频重点提升【巩固】附答案详解
- 2026年灾害地理学复习总结试卷附完整答案详解(易错题)
- 2026年初级审计师《审计专业相关知识》综合练习含答案详解【达标题】
- 2026年数据结构与算法知到智慧树期末答案秋天津理工大学道常考点【典型题】附答案详解
- 2026学年历史八年级下学期第四单元-中国特色社会主义迈向21世纪素养提升题(含答案)
- 2026年幼儿园家长照片
- 2025福建省高速公路集团招聘50人笔试参考题库附带答案详解
- 2025福建泉州丰泽城市建设集团有限公司及权属企业招聘20人笔试参考题库附带答案详解
- 小学语文心理健康教育案例分析
- 文旅融合和文化旅游
- 智慧停车场经济效益分析
- 惠州市龙门县事业单位真题2023
- 电动吸引器简要操作流程图
- 2022-2023学年河北省廊坊三河市数学六年级第二学期期末质量跟踪监视试题含解析
- 云南省农村留守儿童现状调研报告
- YY/T 1841-2022心脏电生理标测系统
- GB/T 4798.5-2007电工电子产品应用环境条件第5部分:地面车辆使用
- GB/T 13914-2013冲压件尺寸公差
- 《道德与法治》六年级下《科技发展造福人类》课件
评论
0/150
提交评论