knn算法的部分处理操作
来源:互联网 发布:影响因素分析模型知乎 编辑:程序博客网 时间:2024/06/15 02:53
蜜汁KNN
基本步骤
在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类,其算法的描述为:
1)计算测试数据与各个训练数据之间的距离;
2)按照距离的递增关系进行排序;
3)选取距离最小的K个点;
4)确定前K个点所在类别的出现频率;
5)返回前K个点中出现频率最高的类别作为测试数据的预测分类。
实现代码
离散化处理输出版#include<cstdio>#include<cstdlib>#include<cmath>#include<algorithm>#include<cstring>#define MAX 1000007 #define MAXN 1003 #define FOR(i,j,k) for(i=j;i<=k;++i)using namespace std;struct sss{ int x,y; double d; char c;};sss p[MAXN];int n,px,py;int comp(sss x,sss y){ return x.d<y.d;}int sqr(int x){ return x*x;} int main(){ freopen("1.txt","r",stdin); char ccc; scanf("%d%d%d",&n,&px,&py); int i,j,k,l; FOR(i,1,n) { scanf("%d%d%c%c",&p[i].x,&p[i].y,&ccc,&p[i].c); p[i].d=sqrt(sqr(p[i].x-px)+sqr(p[i].y-py)); } sort(p+1,p+1+n,comp); int b[255]; int hs[255]; int t=0; k=sqrt(n); FOR(i,1,k) { if (!b[p[i].c]) { t++; hs[t]=p[i].c; } b[p[i].c]++; } int s=0; char ans; FOR(i,1,t) if (b[hs[i]]>s) { ans=hs[i]; s=b[hs[i]]; } printf("%c",ans); return 0;}非离散化改进版#include<cstdio>#include<iostream>#include<cstdlib>#include<cmath>#include<algorithm>#include<cstring>#define MAX 1000007 #define MAXN 1003 #define FOR(i,j,k) for(i=j;i<=k;++i)using namespace std;struct sss{ int x,y; double d; char c;};sss p[MAXN];int n,px,py;int comp(sss x,sss y){ return x.d<y.d;}int sqr(int x){ return x*x;} int main(){ freopen("1.txt","r",stdin); char ccc; scanf("%d%d%d",&n,&px,&py); int i,j,k,l; FOR(i,1,n) { cin>>p[i].x>>p[i].y>>p[i].c; p[i].d=sqrt(sqr(p[i].x-px)+sqr(p[i].y-py)); } sort(p+1,p+1+n,comp); int b[255]={0}; int hs[255]={0}; int t=0; k=sqrt(n); if (k%2==0) k++; FOR(i,1,k) { b[p[i].c]++;t=max(t,b[p[i].c]);} FOR(i,1,255) { if (b[i]==t) {putchar(i);printf("\n");}} return 0;}
测试数据
1.txt:
24 7 4
2 2 r
2 5 r
2 8 r
2 10 r
3 3 b
3 9 r
4 5 r
4 10 r
5 8 r
6 4 b
7 3 b
7 6 r
8 8 b
9 5 b
10 2 b
10 3 b
10 4 b
11 6 b
11 7 b
11 8 r
12 9 r
13 2 b
13 5 b
输出:b答案正确
好啦,继续加油
“`
阅读全文
0 0
- knn算法的部分处理操作
- knn算法的介绍
- KNN算法的实现
- KNN算法的总结
- KNN算法的实现
- kNN算法的优缺点
- KNN算法的实现
- KNN算法的實現
- KNN的matlab实现算法
- KNN算法的个人理解
- KNN算法的Python实现
- KNN算法的CUDA实现
- KNN分类算法的实现
- 学习kNN算法的感受
- KNN-分类算法的实现
- knn算法的C++实现
- KNN算法的Python实现
- KNN算法的matlab实现
- pycharm 过期解决办法
- org.apache.jasper.JasperException Unterminated [<c:forEach] tag 错误的解决办法
- iOS中的字典值为nil的崩溃处理
- 菜鸟打响排序算法第一枪(冒泡,选择,插入)
- bs4的使用
- knn算法的部分处理操作
- 数组与指针
- lnmp、lamp、lnmpa一键安装包(Updated: 2017-8-13)
- const在C++ 和C 中的比较
- QT QUdpSocket类
- db2笔记
- NYOJ 20 吝啬的国度(深搜)
- Android 创建CircularReveal揭露动画的实现
- ChainMap用法