资源简介
本例程是一个完整的学习KNN算法的工程,使用VS2010+C#编程,含训练数据及测试数据

代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace KNN
{
public partial class FrmMain : Form
{
List dataset = new List();//数据集
List trainingset = new List();//训练样本集
List testset = new List();//测试样本集
List labledist = new List();//标签
int[] lblCnt =new int[3];
int sampleCnt = 0;
int testCnt = 0;
int correctCnt = 0;
public FrmMain()
{
InitializeComponent();
this.dgvDataSet.AutoGenerateColumns = false;
this.dgvTrainingSet.AutoGenerateColumns = false;
this.dgvTestResult.AutoGenerateColumns = false;
}
///
/// KNN分类
///
///
///
private void btnKNN_Click(object sender EventArgs e)
{
Sample sample = new Sample();
for (int m = 0; m < testset.Count; m++)
{
//清空list
labledist.Clear();
//选取测试集中的一个样本
sample = testset[m];
//计算该样本与训练集中的每个样本的欧式距离
for (int i = 0; i < trainingset.Count; i++)
{
labledist.Add(new LblDist()
{
label = sample.label
distance = clcSampleDisT(trainingset[i] sample)
});
}
//将所有的距离从小到大排序
sampleSetSort(ref labledist);
//找出样本与训练集中k个最邻近的样本统计k和最邻近样本中出现的标签最多
int k = 10;
for (int i = 0; i < k; i++)
{
lblCnt[labledist[i].label - 1]++;
}
//求标签最多的样本
int lbl = lblCntMax(lblCnt);
//判断该样本所属的类
sample.Klabel = lbl;
testset[m] = sample;
}
this.dgvTestResult.DataSource = null;
this.dgvTestResult.DataSource = testset;
statisticCorrect(testset);
this.lblSampleCnt.Text = sampleCnt.ToString();
this.lblTrainingCnt.Text = (sampleCnt - testCnt).ToString();
this.lblTestCnt.Text = testCnt.ToString();
this.lblCorrectCnt.Text = correctCnt.ToString();
double r = correctCnt*100.0 / testCnt;
this.lblCorrectRatio.Text = r.ToString(“0.00“)+“%“;
}
///
/// 读取数据集
///
///
///
private void btnReadDataSet_Click(object sender EventArgs e)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 27067 2016-04-15 11:06 KNN\KNN\bin\Debug\DataTestSet.txt
文件 21504 2016-04-15 16:38 KNN\KNN\bin\Debug\KNN.exe
文件 36352 2016-04-15 16:38 KNN\KNN\bin\Debug\KNN.pdb
文件 11600 2016-04-15 16:38 KNN\KNN\bin\Debug\KNN.vshost.exe
文件 490 2010-03-17 22:39 KNN\KNN\bin\Debug\KNN.vshost.exe.manifest
文件 105 2016-04-14 20:46 KNN\KNN\bin\Debug\test.txt
文件 108 2016-04-14 20:16 KNN\KNN\bin\Debug\train.txt
文件 9953 2016-04-15 16:38 KNN\KNN\FrmMain.cs
文件 26633 2016-04-15 16:38 KNN\KNN\FrmMain.Designer.cs
文件 10905 2016-04-15 16:38 KNN\KNN\FrmMain.resx
文件 3924 2016-04-15 14:42 KNN\KNN\KNN.csproj
文件 228 2016-04-14 20:11 KNN\KNN\ML_KNN.cs
文件 5420 2016-04-15 10:52 KNN\KNN\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6543 2016-04-15 16:38 KNN\KNN\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 564 2016-04-15 16:38 KNN\KNN\obj\x86\Debug\KNN.csproj.FileListAbsolute.txt
文件 977 2016-04-15 16:38 KNN\KNN\obj\x86\Debug\KNN.csproj.GenerateResource.Cache
文件 9174 2016-04-15 11:15 KNN\KNN\obj\x86\Debug\KNN.csprojResolveAssemblyReference.cache
文件 21504 2016-04-15 16:38 KNN\KNN\obj\x86\Debug\KNN.exe
文件 180 2016-04-15 16:38 KNN\KNN\obj\x86\Debug\KNN.FrmMain.resources
文件 36352 2016-04-15 16:38 KNN\KNN\obj\x86\Debug\KNN.pdb
文件 180 2016-04-15 14:42 KNN\KNN\obj\x86\Debug\KNN.Properties.Resources.resources
文件 497 2016-04-14 20:07 KNN\KNN\Program.cs
文件 1418 2016-04-14 20:07 KNN\KNN\Properties\AssemblyInfo.cs
文件 2836 2016-04-14 20:07 KNN\KNN\Properties\Resources.Designer.cs
文件 5612 2016-04-14 20:07 KNN\KNN\Properties\Resources.resx
文件 1090 2016-04-14 20:07 KNN\KNN\Properties\Settings.Designer.cs
文件 249 2016-04-14 20:07 KNN\KNN\Properties\Settings.settings
文件 851 2016-04-14 20:07 KNN\KNN.sln
..A..H. 29184 2016-04-15 16:38 KNN\KNN.suo
目录 0 2016-04-14 20:07 KNN\KNN\obj\x86\Debug\TempPE
............此处省略12个文件信息
- 上一篇:C#调用matlab 源代码 csdn
- 下一篇:C#单链表图形界面
相关资源
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
- C#自定义控件
- 基于c#的实验室设备管理系统621530
- C# 使用ListView控件实现图片浏览器(源
- C#简单窗体聊天程序
- C#指纹识别系统程序 报告
- c# 高校档案信息管理系统
评论
共有 条评论