基于肿瘤特征判定是恶性肿瘤还是良性肿瘤,通过研究699个患者的肿瘤属性,找到肿瘤预测模式,根据肿瘤属性来判定肿瘤性质,对没有见过见过面的患者,根据属性来判定是否为恶性肿瘤。

###########################################
#        分类器:肿瘤良性还是恶性
###########################################相关资料:
入口1
https://ke.qq.com/course/3064292
入口2
https://study.163.com/course/courseMain.htm?courseId=1005269003&share=2&shareId=400000000398149###########################################
#      读入数据集,并得到元祖列表
###########################################
def ReadSet(FileName):TrainSet = []TrainFile = open(FileName)for line in TrainFile:line = line.strip()             #去掉'\n'if '?' in line:                 #注意:引号中间不要有空格,去掉含有问号的坏数据continueid,a1,a2,a3,a4,a5,a6,a7,a8,a9,diag = line.split(',')#以逗号分开if diag == '4':diagMorB = 'm'else:diagMorB = 'b'PatientTuple = (id,diagMorB,int(a1),int(a2),int(a3),int(a4),int(a5),\int(a6),int(a7),int(a8),int(a9))TrainSet.append(PatientTuple)return TrainSet
###########################################
#           训练分类器
###########################################
def sumLists(list1,list2):listofsums =[0.0] * 9for index in range(9):listofsums[index] = list1[index] + list2[index]return listofsumsdef makeAverages(listofsums,total):averageList =[0.0] * 9for index in range(9):averageList[index] = listofsums[index]  / float(total)return averageListdef Classifier(TrainSet):benignSums = [0] * 9benignCount = 0malignantSums = [0] * 9malignantCount = 0for patientTup in TrainSet:if patientTup[1] == 'b':benignSums = sumLists(benignSums,patientTup[2:])benignCount += 1else:malignantSums = sumLists(malignantSums,patientTup[2:])malignantCount += 1benignAvgs = makeAverages(benignSums,benignCount)malignantAvgs = makeAverages(malignantSums,malignantCount)classifier = makeAverages(sumLists(benignAvgs,malignantAvgs),2)return classifier
###########################################
#           测试分类器
###########################################
def Test(TestSet,classifier):results = []for patient in TestSet:benignCount = 0malignantCount = 0for index in range(9):if patient[index + 2] > classifier[index]:#注意索引值加2才是属性值malignantCount += 1else:benignCount += 1resultTuple = (patient[0],benignCount,malignantCount,patient[1])results.append(resultTuple)return results
###########################################
#           格式化输出测试结果
###########################################
def ShowResult(Result):totalCount = 0wrongcount = 0for r in Result:totalCount += 1if r[1] > r[2]:if r[3] == 'm':wrongcount += 1elif r[3] == 'b':wrongcount += 1print("%d patients,there were %d wrong" %(totalCount,wrongcount))
###########################################
#           主函数
###########################################
def main():print("Reading in train data ...")TrainFileName = "C:\\Python36\\code\\RuXian\\fullTrainData.txt"TrainSet = ReadSet(TrainFileName)#print(TrainSet)print("Read TrainSet Done!")print("Begin Training...")classifier = Classifier(TrainSet)print("Train Classifier Done!")print("Reading in test data ...")TestFileName = "C:\\Python36\\code\\RuXian\\fullTestData.txt"TestSet = ReadSet(TestFileName)print("Read TestSet Done!")print("Begin Testing...")Result = Test(TestSet,classifier)#print(Result)print("Test  Done!")ShowResult(Result)print ("program finished.\n")

关注公众号「python风控模型」,回复关键字:学习资料

Python入门经典学习1-乳腺癌分类问题相关推荐

  1. python入门经典代码-Python入门经典

    Python入门经典 学习编程 为什么使用Python 如何使用本书 如果遇到困难怎么办 为什么要学习Python 本书的目标读者 本书的组织结构 读者反馈 读者服务 献辞 1 安装和运行Python ...

  2. python入门经典-Python入门经典

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! # 有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数? 都是多少? ...

  3. python经典好书-新手Python入门经典书籍推荐

    随着人工智能和大数据时代的来临,开始学习Python的朋友是越来越多了.近来就连房地产大亨潘石屹也在微博上表示,自己开始学Python了.确实在当下,无论是不是做程序员,还是在各个行业像是数据分析.运 ...

  4. python编程入门经典实例-终于明了python入门经典实例

    算术最基本的操作符,是小学数学的+ - * / ,对于整数,还可以用+=,*=的操作符,对自身的值进行改变(对象引用).以下是小编为你整理的python入门经典实例 对于整数的加减乘除,但需要注意的是 ...

  5. python经典实例-终于明了python入门经典实例

    算术最基本的操作符,是小学数学的+ - * / ,对于整数,还可以用+=,*=的操作符,对自身的值进行改变(对象引用).以下是小编为你整理的python入门经典实例 对于整数的加减乘除,但需要注意的是 ...

  6. 新手Python入门经典书籍推荐

    随着人工智能和大数据时代的来临,开始学习Python的朋友是越来越多了.近来就连房地产大亨潘石屹也在微博上表示,自己开始学Python了.确实在当下,无论是不是做程序员,还是在各个行业像是数据分析.运 ...

  7. (Python入门)学习笔记一,初次接触尝试使用Python——环境搭建与配置

    (Python入门)学习笔记一,初次接触尝试使用Python 早就耳闻Python大名,搞大数据.做人工智能.整机器学习,就得了解Python.之前一直没有去了解,现在由于之前一个项目涉及到一点Pyt ...

  8. (Python入门)学习笔记二,Python学习路线图

    (Python入门)学习笔记二,Python学习路线图 千里之行始于足下,谋定而后动,冰冻三尺非一日之寒.之所以说这三句话,就是对于下面整理的路线图,即不让自己感觉路途的遥远而感到达到巅峰神界的遥遥无 ...

  9. python入门经典代码-python经典入门学习锦集就这篇够了,强烈建议收藏!

    原标题:python经典入门学习锦集就这篇够了,强烈建议收藏! Python 简介 Python 是一种高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python 由 Guido van ...

  10. python入门经典书籍知乎_知乎问题回答 - 《Python100天从新手到大师》 - 开源书籍(oscbook.com)...

    知乎问题回答 Python学习完基础语法知识后,如何进一步提高? 如果你已经完成了Python基础语法的学习,想要知道接下来如何提高,那么你得先问问自己你要用Python来做什么?目前学习Python ...

最新文章

  1. 【算法导论】插入排序
  2. PAT1052---------初步了解正则表达式
  3. 计算Gaunt积分m1m2≥0
  4. 电脑桌面锁屏怎么设置_华为手机总是莫名多出照片?这两个设置不关闭,内存再大也不够用...
  5. IntelliJ IDEA常用的快捷键(代码提示/注释代码/加入类注释和方法注释Javadoc)
  6. hdu 1078 记忆化搜索
  7. linux下源码软件包的安装
  8. sql 大数据量插入优化
  9. Simulink框图和S-函数
  10. Luck Competition
  11. 改进YOLOv7的早餐价格检测系统
  12. Python 在问答频道中刷题积累到的小技巧(二)
  13. 2,Jenkins实战应用_Jenkins初始部署与简单配置
  14. 打造移动应用与游戏安全防线,腾讯WeTest安全服务全线升级
  15. 凸包算法(Graham扫描法)
  16. 微信HOOK协议(PC版)源码demo
  17. 清除缓存-Ctrl+Shift+Delete
  18. gpib-usb-hs linux,美国NI GPIB-USB-HS+连接线GPIB转USB接口控制器高速传输
  19. 数据库中视图与表的区别以及如何创建视图、创建表
  20. 不知道考研那些书比较好么?我来推荐~~~(二)

热门文章

  1. 有效解决RaycastTarget勾选过多的烦恼
  2. python 爬虫生成csv文件和图_Python简单爬虫导出CSV文件
  3. xcode打包ipa_codesign签名ipa
  4. 关于Lambda表达式的简单语法理解,有参无参,有无返回值的格式的理解,仅限编程新手
  5. 定时器_STM32通用定时器
  6. C# Dictionary 的几种遍历方法
  7. prototype.js学习(2)
  8. 研磨设计模式学习笔记1--简单工厂(SimpleFactory)
  9. php类型之class类,对象,构造函数的理解
  10. 给初学者的 RxJava2.0 教程 (九)