C语言手撕高斯朴素贝叶斯 - 通过身高、体重和肺活量推测性别(机器学习)

目录

简述

数据

代码

结果


简述

基于高斯朴素贝叶斯 - 通过身高和体重推测性别,本次再增加肺活量特征。本项目由以下四部分组成,本节是第2节:

1、通过身高、体重推测性别

2、通过身高、体重、肺活量推测性别

3、MPI优化

4、OpenMP优化

数据

部分数据如下,这四列分别为:性别、身高、体重、肺活量。

代码

代码依旧分为三个文件,其实按照正确的做法,handleData.cpp和naiveBayes.cpp应该合并的,但是为了方便调试所以分开了,在后续会将这两个文件合并。

//allHead.h

#ifndef _STDIO_H_ 
#define _STDIO_H_

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <math.h>

#define PI 3.1415926535898

//单条数据的长度
#define MAX_LINE 100
//数据集的长度
#define DATA_LEN 100000
//特征值的个数(身高、体重、肺活量)
#define EIGEN_NUM 4


/*声明函数*/
//获取数据集
void getData(const char *fileLocation);

//获得平均值和标准差:给 Parameter 赋值
void getParameter();
//计算平均值和标准差
double* calParameter(int column,int sex);

//计算概率p(特征列column = x | 性别)
double getProbability(double x,int column,int sex);
//正态分布 x:随机变量的值 u:样本平均值 p:标准差
double gaussianDistribution(double x,double u,double p);

//返回性别字符结果
char* sexResult(float height,float weight);
//返回性别ID结果
int sexIDResult(float height,float weight);
//准确度判断
float precision();

//数据集有肺活量(VC),返回性别字符结果
char* addVCSexResult(float height,float weight,float VC);
//数据集有肺活量(VC),返回性别ID结果
int addVCSexIDResult(float height,float weight,float VC);
//数据集有肺活量(VC),准确度判断
float addVCPrecision();

#endif 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值