KNN算法

一、 实验目的:
1、 用KNN算法对未知样本进行分类
二、 实验内容:
实验题目:设某公司现有15名员工的基本信息,包括其个子为高个、中等、矮个的分类标识。
在这里插入图片描述
公司现刚招进一位名叫刘萍的新员工Z1,令k=5,试采用k-最近邻分类算法判断员工刘萍的个子属于哪一类?
在这里插入图片描述
过程代码

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#define M 15
#define N 1
 //定义一个字符的结构体
 struct letter{
   
    char c;
	int array[1];    
	float distance;};  
//定义训练字符结构体数组,共有M个训练样本
letter letters[M];
//识别字符类数组,共有N个对比样本
letter nletters[N];
float t;  
//定义欧式距离函数,计算一个测试样本与各个训练样本之间的距离
void Distance(letter *p){
       
	int i,j;    
	float s=0.0;    
	for(i=0; i<M; i++)    
	{
           
		for(j=0; j<16; j++)        
		{
               
			s+=((letters[i].array[j]-(*p).array[j])*(letters[i].array[j]-(*p).array[j]));        
		}        
		letters[i].distance=sqrt(s);        
		//恢复到原始值        
		s=0.0;    
	}  
}  
//排序函数将letters距离按由小到大排列
void Sort(){
       
	int i,j;    
	letter t;    
	for(i=0; i
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值