贝叶斯决策分类器界面设计以及3D画图

使用数据利用贝叶斯决策理论设计分类决策面

模式识别作业,老师收集了全班学生的性别身高体重和脚长信息等数据来设计分类决策面。python 编程实现分类决策面,数据集在这里下载

编程代码比较简单,实现的是模式识别第三版(张学工老师)28页的理论。

协方差矩阵有三种情况:
1.每一类的协方差矩阵都相同,且都等于对角阵。
2.每一类的协方差矩阵都相同。
3.各类协方差矩阵不相同。
条件的限制一步步放松,所以也越来越难编写。本程序未编写第一类情况,请读者自行编写。
有任何问题请留言或发邮件18125081@bjtu.edu.cn

case2分类器图片:

在这里插入图片描述

case3分类器图片:

在这里插入图片描述
该分类器和模式识别第三版课本32页的(d)图的决策面形式相同。

代码如下

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn import preprocessing as process
from sklearn.metrics import roc_curve, auc
'''
   data_process 功能:
                     输入:文件路径,
                     输出:男女的归一化样本数据矩阵
'''
def data_process(load_road):
    X = pd.read_excel(load_road)
    del X['序号']
    del X['年龄']
    num = len(X['性别'])
    gender = X['性别'].tolist()
    height = X['身高'].tolist()
    weight = X['体重'].tolist()
    food_length = X['脚长'].tolist()
    #--------------性别数据处理函数实现----------------
    for i in range(num):
        if gender[i] == '女':
            gender[i] = 0
        elif gender[i] == '男':
            gender[i] = 1
    #--------------身高数据处理函数实现----------------
    for i in range(num):
        height[i] = str(height[i])
        height[i] = height[i].replace('m', '')
        height[i] = height[i].replace('M', '')
        height[i] = height[i].replace('米', '')
        if float(height[i]) > 100:
            height[i] = float(height[i]) / 100
        height[i] = float(height[i])
    # --------------体重数据处理函数实现----------------
    for i in range(num):
        weight[i] = str(weight[i])
        weight[i] = weight[i].replace('千克', '')
        weight[i] = weight[i].replace('KG', '')
        weight[i] = weight[i].replace('kg', '')
        weight[i] = weight[i].replace('Kg', '')
        weight[i] = weight[i].replace('kG', ''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值