实验三 最小错误率的贝叶斯分类
利用贝叶斯后验概率确定分类:设有19人进行体检,结果如下表。但事后发现4人忘了写性别,试问,这4人是男是女?
代码
import xlrd
import math
import numpy as np
import scipy.stats as st
import matplotlib.pyplot as plt
from scipy.stats import norm
‘’’
/task1/
Take the height as an example, draw a histogram of the
height of the boys and girls and compare
/task1/
‘’’
mydata = xlrd.open_workbook(‘D:/program/py_code/data_2018.xls’)
mysheet1 = mydata.sheet_by_name(“Sheet1”)
#获取行数、列数
nRows=mysheet1.nrows
nCols=mysheet1.ncols
#用于存取男生女生身高数据
man_height=[]
woman_height=[]
#获取第4列的内容:身高
for i in range(nRows):
if i+1<nRows:
if mysheet1.cell(i+1,1).value1:
man_height.append(mysheet1.cell(i+1,3).value)
elif mysheet1.cell(i+1,1).value0:
woman_height.append(mysheet1.cell(i+1,3).value)
#获取男、女生的数量
manlen=len(man_height)
womanlen=len(woman_height)
#画男女生身高频谱图
plt.hist(man_height,manlen,align=‘left’,color=‘red’,label=‘boy’)
plt.hist(woman_height,womanlen,align=‘right’,label=‘girl’)
plt.legend(loc=0)
plt.xlabel(‘height’)
plt.xlim(min(man_height+woman_height)-1,max(man_height+woman_height)+1)
plt.ylabel(‘number’)
plt.title(‘Boy height spectrum’)
#xsticks与yticks:指定坐标轴的刻度