1. #K-NN分类
  2.  
  3. import os
  4. import sys
  5. import time
  6. import operator
  7. import cx_Oracle
  8. import numpy as np
  9. import pandas as pd
  10. import tensorflow as tf
  11.  
  12. conn=cx_Oracle.connect('doctor/admin@localhost:1521/tszr')
  13. cursor = conn.cursor()
  14.  
  15. #获取数据集
  16. def getdata(surgery,surgeryChest):
  17. sql = "select feature1,feature2,feature3,feature4,feature5,trainLable \
  18. from menzhenZ where surgery='%s' and surgeryChest='%s'" % (surgery,surgeryChest)
  19. cursor.execute(sql)
  20. rows = cursor.fetchall()
  21. dataset = []
  22. lables = []
  23. for row in rows:
  24. temp = []
  25. temp.append(row[0])
  26. temp.append(row[1])
  27. temp.append(row[2])
  28. temp.append(row[3])
  29. temp.append(row[4])
  30. dataset.append(temp)
  31. lables.append(row[5])
  32. return np.array(dataset),np.array(lables)
  33.  
  34. def gettestdata(surgery,surgeryChest):
  35. sql = "select feature1,feature2,feature3,feature4,feature5,trainLable from \
  36. testZ where surgery='%s' and surgeryChest='%s'" % (surgery,surgeryChest)
  37. cursor.execute(sql)
  38. rows = cursor.fetchall()
  39. testdataset = []
  40. testlables = []
  41. for row in rows:
  42. temp = []
  43. temp.append(row[0])
  44. temp.append(row[1])
  45. temp.append(row[2])
  46. temp.append(row[3])
  47. temp.append(row[4])
  48. testdataset.append(temp)
  49. testlables.append(row[5])
  50. return np.array(testdataset),np.array(testlables)
  51.  
  52. #K-NN分类
  53. def classify0(inX, dataSet, labels, k):
  54. dataSetSize = dataSet.shape[0]
  55. diffMat = np.tile(inX, (dataSetSize,1)) - dataSet
  56. sqDiffMat = diffMat**2
  57. sqDistances = sqDiffMat.sum(axis=1)
  58. distances = sqDistances**0.5
  59. sortedDistIndicies = distances.argsort()
  60. classCount={}
  61. for i in range(k):
  62. voteIlabel = labels[sortedDistIndicies[i]]
  63. classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1
  64. sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True)
  65. return sortedClassCount[0][0]
  66.  
  67. #归一化
  68. def autoNorm(dataSet):
  69. minVals = dataSet.min(0)
  70. maxVals = dataSet.max(0)
  71. ranges = maxVals - minVals
  72. normDataSet = np.zeros(np.shape(dataSet))
  73. m = dataSet.shape[0]
  74. normDataSet = dataSet - np.tile(minVals, (m,1))
  75. normDataSet = normDataSet/np.tile(ranges, (m,1))
  76. return normDataSet, ranges, minVals
  77.  
  78. erace = []
  79. accuc = []
  80. t = []
  81.  
  82. #启动和检测模型
  83. def datingClassTest():
  84. datingDataMat,datingLabels = getdata("外科","胸外科")
  85. normMat, ranges, minVals = autoNorm(datingDataMat)
  86. testdataset,testlables = gettestdata("外科","胸外科")
  87. testnormMat, testranges, testminVals = autoNorm(testdataset)
  88. errorCount = 0.0
  89. start = time.time()
  90. for j in [3,5,7,9,11,13]:
  91. for i in range(np.shape(testnormMat)[0]):
  92. classifierResult = classify0(testnormMat[i,:],normMat,datingLabels,j)
  93. print("the classifier came back with: %s, the real answer is: %s" % (classifierResult, testlables[i]))
  94. if (classifierResult != testlables[i]):
  95. errorCount += 1.0
  96. end = time.time()
  97. t.append(end)
  98. erace.append(errorCount/float(np.shape(testnormMat)[0])*100)
  99. accuc.append((1.0-errorCount/float(np.shape(testnormMat)[0]))*100)
  100. print("错误率: %.2f%%" % (errorCount/float(np.shape(testnormMat)[0])*100))
  101. print("准确率: %.2f%%" % ((1.0-errorCount/float(np.shape(testnormMat)[0]))*100))
  102. print("训练和预测一共耗时: %.2f 秒" % (end-start))
  103. datingClassTest()
  104. print(accuc)
  105. print(erace)
  106. print(t)

  1. #探索不同的K值对算法的影响
  2.  
  3. import matplotlib.pyplot as plt
  4.  
  5. x = [3,5,7,9,11,13]
  6. plt.plot(x,erace,c='r')
  7. plt.plot(x,accuc,c='g')
  8. plt.legend(['error race','accuce race'],loc=9)
  9. plt.show()
  10. print(accuc)
  11. print(erace)

  1. #决策树
  2. import os
  3. import sys
  4. import time
  5. import operator
  6. import cx_Oracle
  7. import numpy as np
  8. import pandas as pd
  9. from math import log
  10. import tensorflow as tf
  11.  
  12. conn=cx_Oracle.connect('doctor/admin@localhost:1521/tszr')
  13. cursor = conn.cursor()
  14.  
  15. #获取数据集
  16. def getdata(surgery,surgeryChest):
  17. sql = "select feature1,feature2,feature3,feature4,feature5,trainLable from menzhenZ where surgery='%s' and surgeryChest='%s'" % (surgery,surgeryChest)
  18. cursor.execute(sql)
  19. rows = cursor.fetchall()
  20. dataset = []
  21. for row in rows:
  22. temp = []
  23. temp.append(row[0])
  24. temp.append(row[1])
  25. temp.append(row[2])
  26. temp.append(row[3])
  27. temp.append(row[4])
  28. temp.append(row[5])
  29. dataset.append(temp)
  30. lables = []
  31. lables.append("呼吸急促")
  32. lables.append("持续性脉搏加快")
  33. lables.append("畏寒")
  34. lables.append("血压降低")
  35. lables.append("咳血")
  36. return dataset,lables
  37.  
  38. def gettestdata(surgery,surgeryChest):
  39. sql = "select feature1,feature2,feature3,feature4,feature5,trainLable from testZ where surgery='%s' and surgeryChest='%s'" % (surgery,surgeryChest)
  40. cursor.execute(sql)
  41. rows = cursor.fetchall()
  42. testdataset = []
  43. testlables = []
  44. for row in rows:
  45. temp = []
  46. temp.append(row[0])
  47. temp.append(row[1])
  48. temp.append(row[2])
  49. temp.append(row[3])
  50. temp.append(row[4])
  51. testdataset.append(temp)
  52. testlables.append(row[5])
  53. return testdataset,testlables
  54.  
  55. #计算熵值
  56. def calcShannonEnt(dataSet):
  57. numEntries = len(dataSet)
  58. labelCounts = {}
  59. for featVec in dataSet:
  60. currentLabel = featVec[-1]
  61. if currentLabel not in labelCounts.keys(): labelCounts[currentLabel] = 0
  62. labelCounts[currentLabel] += 1
  63. shannonEnt = 0.0
  64. for key in labelCounts:
  65. prob = float(labelCounts[key])/numEntries
  66. shannonEnt -= prob * log(prob,2)
  67. return shannonEnt
  68.  
  69. #按照给定特征划分数据集
  70. def splitDataSet(dataSet, axis, value):
  71. retDataSet = []
  72. for featVec in dataSet:
  73. if featVec[axis] == value:
  74. reducedFeatVec = featVec[:axis]
  75. reducedFeatVec.extend(featVec[axis+1:])
  76. retDataSet.append(reducedFeatVec)
  77. return retDataSet
  78.  
  79. #选择最好的属性
  80. def chooseBestFeatureToSplit(dataSet):
  81. numFeatures = len(dataSet[0]) - 1
  82. baseEntropy = calcShannonEnt(dataSet)
  83. bestInfoGain = 0.0
  84. bestFeature = -1
  85. for i in range(numFeatures):
  86. featList = [example[i] for example in dataSet]
  87. uniqueVals = set(featList)
  88. newEntropy = 0.0
  89. for value in uniqueVals:
  90. subDataSet = splitDataSet(dataSet, i, value)
  91. prob = len(subDataSet)/float(len(dataSet))
  92. newEntropy += prob * calcShannonEnt(subDataSet)
  93. infoGain = baseEntropy - newEntropy
  94. if (infoGain > bestInfoGain):
  95. bestInfoGain = infoGain
  96. bestFeature = i
  97. return bestFeature
  98.  
  99. #统计机制
  100. def majorityCnt(classList):
  101. classCount={}
  102. for vote in classList:
  103. if vote not in classCount.keys(): classCount[vote] = 0
  104. classCount[vote] += 1
  105. sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True)
  106. return sortedClassCount[0][0]
  107.  
  108. #创建决策树
  109. def createTree(dataSet,labels):
  110. classList = [example[-1] for example in dataSet]
  111. if classList.count(classList[0]) == len(classList):
  112. return classList[0]
  113. if len(dataSet[0]) == 1:
  114. return majorityCnt(classList)
  115. bestFeat = chooseBestFeatureToSplit(dataSet)
  116. bestFeatLabel = labels[bestFeat]
  117. myTree = {bestFeatLabel:{}}
  118. temp = []
  119. for i in labels:
  120. if i != labels[bestFeat]:
  121. temp.append(i)
  122. labels = temp
  123. featValues = [example[bestFeat] for example in dataSet]
  124. uniqueVals = set(featValues)
  125. for value in uniqueVals:
  126. subLabels = labels[:]
  127. myTree[bestFeatLabel][value] = createTree(splitDataSet(dataSet, bestFeat, value),subLabels)
  128. return myTree
  129.  
  130. #使用决策树模型分类
  131. def classify(inputTree,featLabels,testVec):
  132. for i in inputTree.keys():
  133. firstStr = i
  134. break
  135. secondDict = inputTree[firstStr]
  136. featIndex = featLabels.index(firstStr)
  137. key = testVec[featIndex]
  138. valueOfFeat = secondDict[key]
  139. if isinstance(valueOfFeat, dict):
  140. classLabel = classify(valueOfFeat, featLabels, testVec)
  141. else: classLabel = valueOfFeat
  142. return classLabel
  143.  
  144. #启动和检测模型
  145. def datingClassTest():
  146. dataSet,labels = getdata("外科","胸外科")
  147. myTree = createTree(dataSet,labels)
  148. testdataset,testlables = gettestdata("外科","胸外科")
  149. errorCount = 0.0
  150. start = time.time()
  151. for i in range(np.shape(testdataset)[0]):
  152. classifierResult = classify(myTree,labels,testdataset[i])
  153. print("the classifier came back with: %s, the real answer is: %s" % (classifierResult, testlables[i]))
  154. if (classifierResult != testlables[i]):
  155. errorCount += 1.0
  156. end = time.time()
  157. print("错误率: %.2f%%" % (errorCount/float(np.shape(testdataset)[0])*100))
  158. print("准确率: %.2f%%" % ((1.0-errorCount/float(np.shape(testdataset)[0]))*100))
  159. print("训练和预测一共耗时: %.2f 秒" % (end-start))
  160. datingClassTest()

  1. #选取前600条记录生成并打印决策树
  2. dataSet,labels = getdata("外科","胸外科")
  3. dataSet = dataSet[0:600]
  4. labels = labels[0:600]
  5. myTree = createTree(dataSet,labels)
  6. print(myTree)

  1. #比较K-NN算法与决策树算法的优劣
  2. import numpy as np
  3. import pandas as pd
  4. import matplotlib.pyplot as plt
  5.  
  6. x = np.array([10,12])
  7. y = [85.6,87.3]
  8. plt.bar(x,y,edgecolor='yellow')
  9. for i,j in zip(x,y):
  10. plt.text(i-0.2,j-0.2,'%.2f%%' % j)
  11. plt.text(9.7,40,'K-NN right race')
  12. plt.text(11.7,40,'Tree right race')
  13. plt.show()

  1. #使用神经网络探索数据集
  2. import sys
  3. import os
  4. import time
  5. import operator
  6. import cx_Oracle
  7. import numpy as np
  8. import pandas as pd
  9. import tensorflow as tf
  10.  
  11. conn=cx_Oracle.connect('doctor/admin@localhost:1521/tszr')
  12. cursor = conn.cursor()
  13.  
  14. #one-hot编码
  15. def onehot(labels):
  16. n_sample = len(labels)
  17. n_class = max(labels) + 1
  18. onehot_labels = np.zeros((n_sample, n_class))
  19. onehot_labels[np.arange(n_sample), labels] = 1
  20. return onehot_labels
  21.  
  22. #获取数据集
  23. def getdata(surgery,surgeryChest):
  24. sql = "select feature1,feature2,feature3,feature4,feature5,trainLable from menzhen where surgery='%s' and surgeryChest='%s'" % (surgery,surgeryChest)
  25. cursor.execute(sql)
  26. rows = cursor.fetchall()
  27. dataset = []
  28. lables = []
  29. for row in rows:
  30. temp = []
  31. temp.append(row[0])
  32. temp.append(row[1])
  33. temp.append(row[2])
  34. temp.append(row[3])
  35. temp.append(row[4])
  36. dataset.append(temp)
  37. if(row[5]==3):
  38. lables.append(0)
  39. elif(row[5]==6):
  40. lables.append(1)
  41. else:
  42. lables.append(2)
  43. dataset = np.array(dataset)
  44. lables = np.array(lables)
  45. dataset = dataset.astype(np.float32)
  46. labless = onehot(lables)
  47. return dataset,labless
  48.  
  49. #获取测试数据集
  50. def gettestdata(surgery,surgeryChest):
  51. sql = "select feature1,feature2,feature3,feature4,feature5,trainLable from test where surgery='%s' and surgeryChest='%s'" % (surgery,surgeryChest)
  52. cursor.execute(sql)
  53. rows = cursor.fetchall()
  54. testdataset = []
  55. testlables = []
  56. for row in rows:
  57. temp = []
  58. temp.append(row[0])
  59. temp.append(row[1])
  60. temp.append(row[2])
  61. temp.append(row[3])
  62. temp.append(row[4])
  63. testdataset.append(temp)
  64. if(row[5]==3):
  65. testlables.append(0)
  66. elif(row[5]==6):
  67. testlables.append(1)
  68. else:
  69. testlables.append(2)
  70. testdataset = np.array(testdataset)
  71. testlables = np.array(testlables)
  72. testdataset = testdataset.astype(np.float32)
  73. testlabless = onehot(testlables)
  74. return testdataset,testlabless
  75.  
  76. dataset,labless = getdata("外科","胸外科")
  77. testdataset,testlables = gettestdata("外科","胸外科")
  78.  
  79. dataset = dataset[0:100]
  80. labless = labless[0:100]
  81.  
  82. x_data = tf.placeholder("float32", [None, 5])
  83. y_data = tf.placeholder("float32", [None, 3])
  84.  
  85. weight = tf.Variable(tf.ones([5, 3]))
  86. bias = tf.Variable(tf.ones([3]))
  87.  
  88. #使用softmax激活函数
  89. y_model = tf.nn.softmax(tf.matmul(x_data, weight) + bias)
  90.  
  91. #y_model = tf.nn.relu(tf.matmul(x_data, weight) + bias)
  92.  
  93. # loss = tf.reduce_sum(tf.pow((y_model - y_data), 2))
  94.  
  95. #使用交叉熵作为损失函数
  96. loss = -tf.reduce_sum(y_data*tf.log(y_model))
  97.  
  98. # train_step = tf.train.GradientDescentOptimizer(1e-4).minimize(loss)
  99.  
  100. #使用AdamOptimizer优化器
  101. train_step = tf.train.AdamOptimizer(1e-4).minimize(loss)
  102.  
  103. #train_step = tf.train.MomentumOptimizer(1e-4,0.9).minimize(loss)
  104.  
  105. #评估模型
  106. correct_prediction = tf.equal(tf.argmax(y_model, 1), tf.argmax(y_data, 1))
  107. accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
  108.  
  109. init = tf.initialize_all_variables()
  110. sess = tf.Session()
  111. sess.run(init)
  112. start = time.time()
  113. for _ in range(10):
  114. for i in range(int(len(dataset)/100)):
  115. sess.run(train_step, feed_dict={x_data:dataset[i:i+100,:], y_data:labless[i:i+100,:]})
  116. print("模型准确率",sess.run(accuracy, feed_dict={x_data:testdataset , y_data:testlables}))
  117. end = time.time()
  118. print("模型训练和测试公耗时:%.2f 秒" % (end-start))

  1. #加深一层神经网络
  2. import sys
  3. import os
  4. import time
  5. import operator
  6. import cx_Oracle
  7. import numpy as np
  8. import pandas as pd
  9. import tensorflow as tf
  10.  
  11. conn=cx_Oracle.connect('doctor/admin@localhost:1521/tszr')
  12. cursor = conn.cursor()
  13.  
  14. #one-hot编码
  15. def onehot(labels):
  16. n_sample = len(labels)
  17. n_class = max(labels) + 1
  18. onehot_labels = np.zeros((n_sample, n_class))
  19. onehot_labels[np.arange(n_sample), labels] = 1
  20. return onehot_labels
  21.  
  22. #获取数据集
  23. def getdata(surgery,surgeryChest):
  24. sql = "select feature1,feature2,feature3,feature4,feature5,trainLable from menzhen where surgery='%s' and surgeryChest='%s'" % (surgery,surgeryChest)
  25. cursor.execute(sql)
  26. rows = cursor.fetchall()
  27. dataset = []
  28. lables = []
  29. for row in rows:
  30. temp = []
  31. temp.append(row[0])
  32. temp.append(row[1])
  33. temp.append(row[2])
  34. temp.append(row[3])
  35. temp.append(row[4])
  36. dataset.append(temp)
  37. if(row[5]==3):
  38. lables.append(0)
  39. elif(row[5]==6):
  40. lables.append(1)
  41. else:
  42. lables.append(2)
  43. dataset = np.array(dataset)
  44. lables = np.array(lables)
  45. dataset = dataset.astype(np.float32)
  46. labless = onehot(lables)
  47. return dataset,labless
  48.  
  49. def gettestdata(surgery,surgeryChest):
  50. sql = "select feature1,feature2,feature3,feature4,feature5,trainLable from test where surgery='%s' and surgeryChest='%s'" % (surgery,surgeryChest)
  51. cursor.execute(sql)
  52. rows = cursor.fetchall()
  53. testdataset = []
  54. testlables = []
  55. for row in rows:
  56. temp = []
  57. temp.append(row[0])
  58. temp.append(row[1])
  59. temp.append(row[2])
  60. temp.append(row[3])
  61. temp.append(row[4])
  62. testdataset.append(temp)
  63. if(row[5]==3):
  64. testlables.append(0)
  65. elif(row[5]==6):
  66. testlables.append(1)
  67. else:
  68. testlables.append(2)
  69. testdataset = np.array(testdataset)
  70. testlables = np.array(testlables)
  71. testdataset = testdataset.astype(np.float32)
  72. testlabless = onehot(testlables)
  73. return testdataset,testlabless
  74.  
  75. dataset,labless = getdata("外科","胸外科")
  76. testdataset,testlables = gettestdata("外科","胸外科")
  77.  
  78. dataset = dataset[0:100]
  79. labless = labless[0:100]
  80.  
  81. x_data = tf.placeholder("float32", [None, 5])
  82. y_data = tf.placeholder("float32", [None, 3])
  83.  
  84. weight1 = tf.Variable(tf.ones([5, 20]))
  85. bias1 = tf.Variable(tf.ones([20]))
  86. y_model1 = tf.matmul(x_data, weight1) + bias1
  87.  
  88. #加深一层神经网络
  89. weight2 = tf.Variable(tf.ones([20, 3]))
  90. bias2 = tf.Variable(tf.ones([3]))
  91. y_model = tf.nn.softmax(tf.matmul(y_model1, weight2) + bias2)
  92.  
  93. loss = tf.reduce_sum(tf.pow((y_model - y_data), 2))
  94. # loss = -tf.reduce_sum(y_data*tf.log(y_model))
  95.  
  96. #train_step = tf.train.GradientDescentOptimizer(1e-4).minimize(loss)
  97. train_step = tf.train.AdamOptimizer(1e-4).minimize(loss)
  98. # train_step = tf.train.MomentumOptimizer(1e-4,0.9).minimize(loss)
  99.  
  100. correct_prediction = tf.equal(tf.argmax(y_model, 1), tf.argmax(y_data, 1))
  101. accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
  102.  
  103. init = tf.initialize_all_variables()
  104. sess = tf.Session()
  105. sess.run(init)
  106. start = time.time()
  107. for _ in range(10):
  108. for i in range(int(len(dataset)/100)):
  109. sess.run(train_step, feed_dict={x_data:dataset[i:i+100,:], y_data:labless[i:i+100,:]})
  110. print("模型准确率",sess.run(accuracy, feed_dict={x_data:testdataset , y_data:testlables}))
  111. end = time.time()
  112. print("模型训练和测试公耗时:%.2f 秒" % (end-start))

  1. #比较决策树与神经网络的优劣
  2. import numpy as np
  3. import pandas as pd
  4. import matplotlib.pyplot as plt
  5.  
  6. x = np.array([10,12])
  7. y = [87.1,87.4]
  8. plt.bar(x,y,edgecolor="yellow")
  9. for i,j in zip(x,y):
  10. plt.text(i-0.2,j-0.2,"%.2f%%" % j)
  11. plt.text(9.7,40,"Tree right race")
  12. plt.text(11.7,40,"Net right race")
  13. plt.scatter([9.7,11.7],[0.05,0.36],c="r")
  14. plt.plot([9.7,11.7],[0.05,0.36],c="g")
  15. plt.show()

  1. #统计各种算法处理模型数据
  2. K-NN算法:
  3. K取[3,5,7,9,11,13]时,对应的:
  4. 准确率:[85.6, 72.6, 60.0, 47.4, 34.8, 22.299999999999996]
  5. 总耗时:[1554119134.435363, 1554119136.6192698,
  6. 1554119138.846019, 1554119141.2507513, 1554119143.4782736, 1554119145.5415804]
  7.  
  8. 决策树:
  9. 准确率: 87.10%
  10. 训练和预测一共耗时: 0.05
  11.  
  12. 神经网络设计:
  13. 1 最小二乘法 softmax GradientDescentOptimizer 模型
  14. 模型准确率 0.874
  15. 模型训练和测试公耗时:0.16
  16.  
  17. 2 最小二乘法 softmax AdamOptimizer 模型
  18. 模型准确率 0.874
  19. 模型训练和测试公耗时:0.19
  20.  
  21. 3 最小二乘法 softmax MomentumOptimizer 模型
  22. 模型准确率 0.874
  23. 模型训练和测试公耗时:0.18
  24.  
  25. 4 最小二乘法 relu GradientDescentOptimizer 模型
  26. 模型准确率 0.874
  27. 模型训练和测试公耗时:0.17
  28.  
  29. 5 最小二乘法 relu AdamOptimizer 模型
  30. 模型准确率 0.874
  31. 模型训练和测试公耗时:0.15
  32.  
  33. 6 最小二乘法 relu MomentumOptimizer 模型
  34. 模型准确率 0.006
  35. 模型训练和测试公耗时:0.19
  36.  
  37. 7 交叉熵 softmax GradientDescentOptimizer 模型
  38. 模型准确率 0.874
  39. 模型训练和测试公耗时:0.09
  40.  
  41. 8 交叉熵 softmax AdamOptimizer 模型
  42. 模型准确率 0.874
  43. 模型训练和测试公耗时:0.08
  44.  
  45. 9 交叉熵 softmax MomentumOptimizer 模型
  46. 模型准确率 0.874
  47. 模型训练和测试公耗时:0.06
  48.  
  49. 10 交叉熵 relu GradientDescentOptimizer 模型
  50. 模型准确率 0.874
  51. 模型训练和测试公耗时:0.08
  52.  
  53. 11 交叉熵 relu AdamOptimizer 模型
  54. 模型准确率 0.874
  55. 模型训练和测试公耗时:0.08
  56.  
  57. 12 交叉熵 relu MomentumOptimizer 模型
  58. 模型准确率 0.874
  59. 模型训练和测试公耗时:0.09
  60.  
  61. 从上面的12种神经网络设计模型中可以看出:最小二乘法 relu MomentumOptimizer 模型
  62. 的准确率只有0.006,所以这种模型的设计是失败的。
  63.  
  64. a = [0.874]*10
  65. print(a)
  1. #计算成功的各种神经网络模型的准确率与耗时的比值:
  2. a = [0.874]*11
  3. b = [0.16,0.19,0.18,0.17,0.15,0.09,0.08,0.06,0.08,0.09,0.09]
  4. c = []
  5. for i in range(len(a)):
  6. c.append(a[i]/b[i])
  7. for i in range(len(c)):
  8. print("准确率与耗时的比值:%.4f" % (c[i]))

  1. #K-NN算法
  2. #当K取3、5、7、9、11、13时的准确率饼图分布显示
  3. import numpy as np
  4. import pandas as pd
  5. import matplotlib.pyplot as plt
  6.  
  7. acc = [85.6, 72.6, 60.0, 47.4, 34.8, 22.2]
  8. labels = ['K-3','K-5','K-7','K-9','K-11','K-13']
  9. plt.pie(acc,labels=labels,shadow=True,startangle=90,autopct='%1.4f%%')
  10. plt.axis('equal')
  11. plt.title('K-NN',fontsize=25)
  12. plt.show()

  1. #K-NN算法耗时散点图
  2. import numpy as np
  3. import pandas as pd
  4. import matplotlib.pyplot as plt
  5. from mpl_toolkits.mplot3d import Axes3D
  6.  
  7. x = np.array([1,2,3,4,5,6])
  8. z = np.array([1554119134.435363, 1554119136.6192698,1554119138.846019,
  9. 1554119141.2507513, 1554119143.4782736, 1554119145.5415804])
  10. plt.scatter(x,z,c='g')
  11. plt.xticks(x+0.4,['KNN-1','KNN-2','KNN-3','KNN-4','KNN-5','KNN-6'])
  12. plt.show()

  1. #神经网络算法对应各种有用的模型设计耗时曲线图
  2. import numpy as np
  3. import pandas as pd
  4. import matplotlib.pyplot as plt
  5. from mpl_toolkits.mplot3d import Axes3D
  6.  
  7. x = np.array([1,2,3,4,5,6,7,8,9,10,11])
  8. z = np.array([0.16,0.19,0.18,0.17,0.15,0.09,0.08,0.06,0.08,0.09,0.09])
  9. plt.scatter(x,z,c='r')
  10. plt.xticks(x+0.4,['NET-1','NET-2','NET-3','NET-4','NET-5',
  11. 'NET-6','NET-7','NET-8','NET-9','NET-10','NET-11'])
  12. plt.show()

  1. #K-NN、决策树以及神经网络算法对比
  2. import numpy as np
  3. import pandas as pd
  4. import matplotlib.pyplot as plt
  5.  
  6. acc = [85.6, 72.6, 60.0, 47.4, 34.8, 22.2,87.10,0.874,
  7. 87.4,87.4,87.4,87.4,87.4,87.4,87.4,87.4,87.4,87.4]
  8. labels = ['K-3','K-5','K-7','K-9','K-11','K-13','TREE',
  9. 'NET-1','NET-2','NET-3','NET-4','NET-5','NET-6','NET-7',
  10. 'NET-8','NET-9','NET-10','NET-11']
  11. explode = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.2,0,0,0]
  12. plt.pie(acc,labels=labels,explode=explode,shadow=True,startangle=90,autopct='%1.4f%%')
  13. plt.axis('equal')
  14. plt.title('K-NN AND TREE AND NET',fontsize=25)
  15. plt.show()

吴裕雄 python 人工智能——基于神经网络算法在智能医疗诊断中的应用探索代码简要展示的更多相关文章

  1. 吴裕雄 PYTHON 人工智能——基于MASK_RCNN目标检测(5)

    import os import sys import numpy as np import tensorflow as tf import matplotlib import matplotlib. ...

  2. 吴裕雄 PYTHON 人工智能——基于MASK_RCNN目标检测(4)

    import os import sys import random import math import re import time import numpy as np import tenso ...

  3. 吴裕雄 python 人工智能——基于Mask_RCNN目标检测(3)

    import os import sys import random import math import re import time import numpy as np import cv2 i ...

  4. 吴裕雄 python 人工智能——基于Mask_RCNN目标检测(2)

    import os import sys import itertools import math import logging import json import re import random ...

  5. 吴裕雄 python 人工智能——基于Mask_RCNN目标检测(1)

    import os import sys import random import math import numpy as np import skimage.io import matplotli ...

  6. 吴裕雄 python 人工智能——智能医疗系统后台用户注册、登录和初诊简约版代码展示

    #用户注册.登录模块 #数据库脚本 CREATE TABLE usertable( userid number(8) primary key not null , username varchar(5 ...

  7. 吴裕雄 python 机器学习——人工神经网络感知机学习算法的应用

    import numpy as np from matplotlib import pyplot as plt from sklearn import neighbors, datasets from ...

  8. 吴裕雄 python 机器学习——人工神经网络与原始感知机模型

    import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D from ...

  9. 吴裕雄 PYTHON 人工智能——智能医疗系统后台智能分诊模块及系统健康养生公告简约版代码展示

    #coding:utf-8 import sys import cx_Oracle import numpy as np import pandas as pd import tensorflow a ...

随机推荐

  1. 怎么把apk文件部署在云服务器上

    你服务器直接使用nginx,将请求映射到固定目录,把你的apk放到该目录.其他都不用干了.

  2. ADO.NET中sqlserver和mysql的变量名

    因为ADO.NET标配是访问SQL SERVER数据库,那么如果需要访问MySQL数据库,那么ADO.NET五个对象也必须转换. 访问 SQL SERVER 的ADO.NET对象 1.SqlConne ...

  3. oracle 锁表处理

    1.查询 select object_name,machine,s.sid,s.serial#from v$locked_object l,dba_objects o ,v$session swher ...

  4. python3练习100题——016

    今天的题目比较容易了,旨在让人掌握datetime模块下的一些用法. 链接:http://www.runoob.com/python/python-exercise-example16.html 题目 ...

  5. qq自己设定动态图像视屏

    类似于样但是是自己定义的视屏先上壁纸 这个具体是怎么制作的呢? 先从网络上下载自己喜欢的mp4视屏 qq头像上面点击拍摄动态图像 先随意拍摄2秒保持拍摄完成的状态不要点击确定 然后用手机文件夹找到你要 ...

  6. flume--exec源

    创建a2.conf文件并且编写 Sources 类型是exec 配置文件如下 启动集群 启动flume 产生临时文件 ...tmp 关闭临时文件 再次写入文本,会再次产生一个临时文件.截图左边是一个内 ...

  7. Linux线程间同步的几种方式

    信号量 信号量强调的是线程(或进程)间的同步:"信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在sem_wait的时候,就阻塞 ...

  8. Apache Kafka(七)- Kafka ElasticSearch Comsumer

    Kafka ElasticSearch Consumer 对于Kafka Consumer,我们会写一个例子用于消费Kafka 数据传输到ElasticSearch. 1. 构造ElasticSear ...

  9. SSG (slow global), TTG (typical global) and FFG (fast global)

    https://semiwiki.com/x-subscriber/clk-design-automation/4481-variation-alphabet-soup/ n response, fo ...

  10. 一些 NuGet 程序包是使用不同于当前目标框架的目标框架安装的,可能需要重新安装

    如果 NuGet 检测到包受到重定向或升级项目的影响,它会将 packages.config 中的 requireReinstallation="true" 属性添加到所有受影响的 ...