-
大小: 4KB文件類型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-05-12
- 語言: C/C++
- 標(biāo)簽: 數(shù)據(jù)挖掘??
資源簡介
本算法是Iris數(shù)據(jù)集使用KNN算法的代碼,KNN算法的實(shí)現(xiàn)是比較簡單的,我使用的是最簡單的KNN算法,可以作為借鑒。
代碼片段和文件信息
#include?“stdafx.h“
#include
#include?
#include?
#include???//文件流庫函數(shù)
#include?
#define?pi?3.1415926
using?namespace?std;
double?Data[150][5];//原始數(shù)據(jù)
double?Train_Data[120][5];//訓(xùn)練數(shù)據(jù)
double?Test_Data[30][5];//測試數(shù)據(jù)
int?Train_number?=?120;
int?Test_number?=?30;
//輸入數(shù)據(jù)
void?input()
{
double?feaure_one?feaure_two?feaure_three?feaure_four?classification;
ifstream?infile;???//輸入流
ofstream?outfile;???//輸出流
infile.open(“E:\\研一\\上半年\\數(shù)據(jù)挖掘\\我的任務(wù)\\數(shù)據(jù)挖掘\\Iris?Data?Set\\iris.txt“?ios::in);
if?(!infile.is_open())
cout?<“Open?file?failure“?< int?row?=?0;
int?column?=?0;
while?(!infile.eof())????????????//?若未到文件結(jié)束一直循環(huán)
{
infile?>>?feaure_one?>>?feaure_two?>>?feaure_three?>>?feaure_four?>>?classification;
Data[row][column]?=?feaure_one;
Data[row][column?+?1]?=?feaure_two;
Data[row][column?+?2]?=?feaure_three;
Data[row][column?+?3]?=?feaure_four;
Data[row][column?+?4]?=?classification;
row++;
column?=?0;
}
for?(int?i?=?0;i?150;i++)?{
for?(int?j?=?0;j?5;j++)?{
if?(i Train_Data[i][j]?=?Data[i][j];
else
Test_Data[i?-?Train_number][j]?=?Data[i][j];
}
}
infile.close();
}
//k-近鄰分類
double?Data_sum[120][2]?=?{?0?};
double?Max_ten_data[10][2]?=?{?0?};
double?Max_set[3][2]?=?{?0?};
//k-近鄰分類的清零
void?K_Close_neighbor_clear_zero()?{
for?(int?i?=?0;i? for?(int?j?=?0;j?2;j++)?{
Data_sum[i][j]?=?0;
}
}
for?(int?i?=?0;i?10;i++)?{
for?(int?j?=?0;j?2;j++)?{
Max_ten_data[i][j]?=?0;
}
}
for?(int?i?=?0;i?3;i++)?{
for?(int?j?=?0;j?2;j++)?{
Max_set[i][j]?=?0;
}
}
Max_set[0][0]?=?0;
Max_set[1][0]?=?0;
Max_set[2][0]?=?0;
}
void?Sort()?{
for?(int?j?=?0;j?(Train_number?-?1);j++)?{
for?(int?k?=?j?+?1;k? if?(Data_sum[j][0]?>?Data_sum[k][0])?{
doubl
評(píng)論
共有 條評(píng)論