首页 > 分享 > C++实现——最小距离分类器(k近邻算法)

C++实现——最小距离分类器(k近邻算法)

最新推荐文章于 2024-11-21 22:36:15 发布

Coco~567 于 2018-12-26 17:06:24 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

采用的样本是非常经典的鸢尾花数据。

鸢尾花分为三类:

1、setosa

2、versicolor

3、virginica

已知数据集的特征分为:

1、萼片长度

2、萼片宽度

3、花瓣长度

4、花瓣宽度

在讲算法之前,我们首先应该给距离下定义:

当然代码采用的是“欧式距离”

算法原理:

1、读取训练集和测试集数据(包括特征、类型)

2、计算两者距离:

相对应特征的距离。

3、选取排名前k个最小距离进行投票,投票多的就是判定的鸢尾花类型

4、利用混淆矩阵、评测该方法的合理性(理论上95%正确率是很好的模型了)。

代码:

float testdata[75][4];

int testclass[75];

float traindata[75][4];

int trainclass[75];

float distances[75];

int results[75];

void sort(float *dist, int *class_)

{

int N = 75;

float temp = 0;

for (int pass = 0; pass<N; pass++)

{

for (int i = pass + 1; i<N; i++)

{

if (dist[pass] >= dist[i])

{

temp = dist[pass];

dist[pass] = dist[i];

dist[i] = temp;

int k = class_[pass];

class_[pass] = class_[i];

class_[i] = k;

}

}

}

}

int classify(float *dist, int *res, int k)

{

int i, c[4];

c[1] = c[2] = c[3] = 0;

for (i = 0; i< k; i+

相关知识

K近邻算法和鸢尾花问题
基于机器学习的鸢尾花数据集的三分类算法的实现 C++
K近邻学习
k近邻法
KNN分类算法介绍,用KNN分类鸢尾花数据集(iris)
Knn算法实现鸢尾花分类
KNN算法实现鸢尾花数据集分类
原生python实现knn分类算法(鸢尾花数据集)
Python实现KNN算法(鸢尾花数据)
聚类算法和分类算法总结

网址: C++实现——最小距离分类器(k近邻算法) https://m.huajiangbk.com/newsview1260241.html

所属分类:花卉
上一篇: 勇敢者游戏—非安全距离拍摄打铁花
下一篇: 6号街:邻距离|链接+情感=社区