亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lineardiscriminanttraining.cpp

?? 線形判別分析算法和knn最近鄰算法的實現(xiàn)
?? CPP
字號:
// LinearDiscriminantTraining.cpp: implementation of the LinearDiscriminantTraining class.
//CHEN ChangFeng's training class
//////////////////////////////////////////////////////////////////////

#include "LinearDiscriminantTraining.h"
#include "FeatureSelection.h"
#include "KNNDiscriminantTraining.h"
#include <fstream>
#include <iostream>
#include <vector>
#include <time.h> 
using namespace std;

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

LinearDiscriminantTraining::LinearDiscriminantTraining()
{
   int i;
   FeatureSelection f;
   f.OpenSampleFile("digit0.dat");
   f.CharacVectorGeneration();
   for(i=0;i<(f.trainingGroup).size();i++)
	   trainingGroup0.push_back(f.trainingGroup[i]);
   for(i=0;i<(f.testGroup).size();i++)
	   testGroup0.push_back(f.testGroup[i]);
   for(i=0;i<f.trainingGroup[0].size();i++)
	   w0.push_back(1);

   f.OpenSampleFile("digit1.dat");
   f.CharacVectorGeneration();
   for(i=0;i<(f.trainingGroup).size();i++)
	   trainingGroup1.push_back(f.trainingGroup[i]);
   for(i=0;i<(f.testGroup).size();i++)
	   testGroup1.push_back(f.testGroup[i]);
   for(i=0;i<f.trainingGroup[0].size();i++)
	   w1.push_back(1);

   f.OpenSampleFile("digit4.dat");
   f.CharacVectorGeneration();
   for(i=0;i<(f.trainingGroup).size();i++)
	   trainingGroup4.push_back(f.trainingGroup[i]);
   for(i=0;i<(f.testGroup).size();i++)
	   testGroup4.push_back(f.testGroup[i]);
   for(i=0;i<f.trainingGroup[0].size();i++)
	   w4.push_back(1);
 
   f.OpenSampleFile("digit5.dat");
   f.CharacVectorGeneration();
   for(i=0;i<(f.trainingGroup).size();i++)
	   trainingGroup5.push_back(f.trainingGroup[i]);
   for(i=0;i<(f.testGroup).size();i++)
	   testGroup5.push_back(f.testGroup[i]);
   for(i=0;i<f.trainingGroup[0].size();i++)
	   w5.push_back(1);

   f.OpenSampleFile("digit6.dat");
   f.CharacVectorGeneration();
   for(i=0;i<(f.trainingGroup).size();i++)
	   trainingGroup6.push_back(f.trainingGroup[i]);
   for(i=0;i<(f.testGroup).size();i++)
	   testGroup6.push_back(f.testGroup[i]);
   for(i=0;i<f.trainingGroup[0].size();i++)
	   w6.push_back(1);

   f.OpenSampleFile("digit7.dat");
   f.CharacVectorGeneration();
   for(i=0;i<(f.trainingGroup).size();i++)
	   trainingGroup7.push_back(f.trainingGroup[i]);
   for(i=0;i<(f.testGroup).size();i++)
	   testGroup7.push_back(f.testGroup[i]);
   for(i=0;i<f.trainingGroup[0].size();i++)
	   w7.push_back(1);

   f.OpenSampleFile("digit8.dat");
   f.CharacVectorGeneration();
   for(i=0;i<(f.trainingGroup).size();i++)
	   trainingGroup8.push_back(f.trainingGroup[i]);
   for(i=0;i<(f.testGroup).size();i++)
	   testGroup8.push_back(f.testGroup[i]);
   for(i=0;i<f.trainingGroup[0].size();i++)
	   w8.push_back(1);

   f.OpenSampleFile("digit9.dat");
   f.CharacVectorGeneration();
   for(i=0;i<(f.trainingGroup).size();i++)
	   trainingGroup9.push_back(f.trainingGroup[i]);
   for(i=0;i<(f.testGroup).size();i++)
	   testGroup9.push_back(f.testGroup[i]);
   for(i=0;i<f.trainingGroup[0].size();i++)
	   w9.push_back(1);

   classResult.open("RecongnizeResult.txt");

}

LinearDiscriminantTraining::~LinearDiscriminantTraining()
{

}

int LinearDiscriminantTraining::FeatureVectorProcess()
{
   int i,j;
   double h;
   for(i=0;i<trainingGroup0.size();i++)
   {
	   h =0;
	   for(j=1;j<trainingGroup0[i].size()-2;j++)
	   {
		   h += trainingGroup0[i][j];
	   }

	   for(j=1;j<trainingGroup0[i].size()-2;j++)
	   {
		   trainingGroup0[i][j] = trainingGroup0[i][j]/h;
	   }
   }
   for(i=0;i<trainingGroup1.size();i++)
   {
	   h =0;
	   for(j=1;j<trainingGroup1[i].size()-2;j++)
	   {
		   h += trainingGroup1[i][j];
	   }

	   for(j=1;j<trainingGroup1[i].size()-2;j++)
	   {
		   trainingGroup1[i][j] = trainingGroup1[i][j]/h;
	   }
   }

   for(i=0;i<trainingGroup4.size();i++)
   {
	   h =0;
	   for(j=1;j<trainingGroup4[i].size()-2;j++)
	   {
		   h += trainingGroup4[i][j];
	   }

	   for(j=1;j<trainingGroup4[i].size()-2;j++)
	   {
		   trainingGroup4[i][j] = trainingGroup4[i][j]/h;
	   }
   }

   for(i=0;i<trainingGroup5.size();i++)
   {
	   h =0;
	   for(j=1;j<trainingGroup5[i].size()-2;j++)
	   {
		   h += trainingGroup0[i][j];
	   }

	   for(j=1;j<trainingGroup5[i].size()-2;j++)
	   {
		   trainingGroup5[i][j] = trainingGroup5[i][j]/h;
	   }
   }

   for(i=0;i<trainingGroup6.size();i++)
   {
	   h =0;
	   for(j=1;j<trainingGroup6[i].size()-2;j++)
	   {
		   h += trainingGroup6[i][j];
	   }

	   for(j=1;j<trainingGroup6[i].size()-2;j++)
	   {
		   trainingGroup6[i][j] = trainingGroup6[i][j]/h;
	   }
   }

   for(i=0;i<trainingGroup7.size();i++)
   {
	   h =0;
	   for(j=1;j<trainingGroup7[i].size()-2;j++)
	   {
		   h += trainingGroup7[i][j];
	   }

	   for(j=1;j<trainingGroup7[i].size()-2;j++)
	   {
		   trainingGroup7[i][j] = trainingGroup7[i][j]/h;
	   }
   }

   for(i=0;i<trainingGroup8.size();i++)
   {
	   h =0;
	   for(j=1;j<trainingGroup8[i].size()-2;j++)
	   {
		   h += trainingGroup8[i][j];
	   }

	   for(j=1;j<trainingGroup8[i].size()-2;j++)
	   {
		   trainingGroup8[i][j] = trainingGroup8[i][j]/h;
	   }
   }

   for(i=0;i<trainingGroup9.size();i++)
   {
	   h =0;
	   for(j=1;j<trainingGroup9[i].size()-2;j++)
	   {
		   h += trainingGroup9[i][j];
	   }

	   for(j=1;j<trainingGroup9[i].size()-2;j++)
	   {
		   trainingGroup9[i][j] = trainingGroup9[i][j]/h;
	   }
   }
   return 0;
}

int LinearDiscriminantTraining::TrainingProcedure()
{
    int f,i;
//	FeatureVectorProcess();
    while(f<8*TRAININGNUM)
	{
	   f =0;
       f +=TrainingSingleClass(trainingGroup0,0,w0);
       f +=TrainingSingleClass(trainingGroup1,1,w1);
       f +=TrainingSingleClass(trainingGroup4,4,w4);
       f +=TrainingSingleClass(trainingGroup5,5,w5);
       f +=TrainingSingleClass(trainingGroup6,6,w6);
       f +=TrainingSingleClass(trainingGroup7,7,w7);
       f +=TrainingSingleClass(trainingGroup8,8,w8);
       f +=TrainingSingleClass(trainingGroup9,9,w9);
	}
	cout <<"Finish Training"<<endl<<endl;
	for(i=0;i<w0.size();i++)
	{
		cout<<w0[i]<<"  ";
	}
	cout << endl;
	for(i=0;i<w1.size();i++)
	{
		cout<<w1[i]<<"  ";
	}
	cout << endl;
	for(i=0;i<w4.size();i++)
	{
		cout<<w4[i]<<"  ";
	}
	cout << endl;
	for(i=0;i<w5.size();i++)
	{
		cout<<w5[i]<<"  ";
	}
	cout << endl;
	for(i=0;i<w6.size();i++)
	{
		cout<<w6[i]<<"  ";
	}
	cout << endl;
	for(i=0;i<w7.size();i++)
	{
		cout<<w7[i]<<"  ";
	}
	cout << endl;
	for(i=0;i<w8.size();i++)
	{
		cout<<w8[i]<<"  ";
	}
	cout << endl;
	for(i=0;i<w9.size();i++)
	{
		cout<<w9[i]<<"  ";
	}
	cout << endl;
	return 0;
}

int LinearDiscriminantTraining::TrainingSingleClass(vector < vector<double> >& trainingGroup
													,int class_sign,vector < double >& w)
{
   int i,j,h,g,s,t,m,
	   n = 0;
   vector< double >tmp;
   for(i=0;i<trainingGroup.size();i++)
   {
        for(j=0,h=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w[j];
			h += g;
		}
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w0[j];
			s += g;
		}
		tmp.push_back(s);
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w1[j];
			s += g;
		}
        tmp.push_back(s);
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w4[j];
			s += g;
		}
        tmp.push_back(s);
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w5[j];
			s += g;
		}
        tmp.push_back(s);
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w6[j];
			s += g;
		}
        tmp.push_back(s);
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w7[j];
			s += g;
		}
        tmp.push_back(s);
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w8[j];
			s += g;
		}
        tmp.push_back(s);
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w9[j];
			s += g;
		}
        tmp.push_back(s);
		m = 0;
		for(t=0;t <tmp.size();t++)
		{
		    if(h > tmp[t])
			 m++;
		}
		if(m <tmp.size()-1)
		{
		   for(j=0;j<w.size();j++)
			   w[j] += trainingGroup[i][j]*STEP_LENGTH;
		}
		else n++;
		tmp.clear();
   }
   return n;
}

double LinearDiscriminantTraining::TestingProcedure()
{
	double h = 0;
    double s;
    time_t begin, end;
    float TrainingTime =0, TestingTime =0;
    begin=time(NULL);  ///
	TrainingProcedure();
    end=time(NULL);  ///
    TrainingTime= difftime(begin,end); ///

	begin=time(NULL);
    s =TestingSingleClass(testGroup0,0);
	end=time(NULL);
	TestingTime += difftime(begin,end); ///
    h +=s;
	s = s/TESTNUM;
	classResult <<"The reconginize precision of 0:"<<s<<" "<<endl;

	begin =time(NULL);
	s =TestingSingleClass(testGroup1,1);
	end =time(NULL);
	TestingTime += difftime(begin,end); ///
    h +=s;
	s = s/TESTNUM;
	classResult <<"The reconginize precision of 1:"<<s<<" "<<endl;

	begin =time(NULL);
	s =TestingSingleClass(testGroup4,4);
	end =time(NULL);
	TestingTime += difftime(begin,end); ///
    h +=s;
	s = s/TESTNUM;
	classResult <<"The reconginize precision of 4:"<<s<<" "<<endl;

	begin =time(NULL);
    s =TestingSingleClass(testGroup5,5);
	end =time(NULL);
	TestingTime += difftime(begin,end); ///
	h +=s;
	s =s/TESTNUM;
	classResult <<"The reconginize precision of 5:"<<s<<" "<<endl;

	begin =time(NULL);
    s=TestingSingleClass(testGroup6,6);
	end =time(NULL);
	TestingTime += difftime(begin,end); ///
	h +=s;
	s =s/TESTNUM;
	classResult <<"The reconginize precision of 6:"<<s<<" "<<endl;

	begin =time(NULL);
    s =TestingSingleClass(testGroup7,7);
	end =time(NULL);
	TestingTime += difftime(begin,end); ///
    h +=s;
	s =s/TESTNUM;
	classResult <<"The reconginize precision of 7:"<<s<<" "<<endl;

	begin =time(NULL);
    s =TestingSingleClass(testGroup8,8);
	end =time(NULL);
	TestingTime += difftime(begin,end); ///
    h +=s;
	s =s/TESTNUM;
	classResult <<"The reconginize precision of 8:"<<s<<" "<<endl;

	begin =time(NULL);
    s=TestingSingleClass(testGroup9,9);
	end =time(NULL);
	TestingTime += difftime(begin,end); ///
    h +=s;
	s =s/TESTNUM;
	classResult <<"The reconginize precision of 9:"<<s<<" "<<endl;
	classResult<<endl;
	classResult <<"The total recongnize precision: ";
	classResult << h/(8*TESTNUM)<<endl;
	classResult <<"The training time is: "<<TrainingTime<<endl;
	classResult <<"The test time is: "<<TestingTime<<endl;
	classResult.close();
	return h/(8*TESTNUM);
}

int LinearDiscriminantTraining::TestingSingleClass(vector < vector<double> >& trainingGroup
													,int class_sign)
{
   int  i,j,m=0,s,h,g,get_figure = 0;
   for(i=0;i<trainingGroup.size();i++)
   {
	    h = 0;
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w0[j];
			s += g;
		}
        if(h <= s)
		{
		    h = s;
		    get_figure  = 0;
		}
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w1[j];
			s += g;
		}
        if(h <= s)
		{
		    h = s;
		    get_figure  = 1;
		}
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w4[j];
			s += g;
		}
        if(h <= s)
		{
		    h = s;
		    get_figure  = 4;
		}
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w5[j];
			s += g;
		}
        if(h <= s)
		{
		    h = s;
		    get_figure  = 5;
		}
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w6[j];
			s += g;
		}
        if(h <= s)
		{
		    h = s;
		    get_figure  = 6;
		}
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w7[j];
			s += g;
		}
         if(h <= s)
		{
		    h = s;
		    get_figure  = 7;
		}
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w8[j];
			s += g;
		}
        if(h <= s)
		{
		    h = s;
		    get_figure  = 8;
		}
        for(j=0,s=0;j<trainingGroup[i].size();j++)
		{
		    g = trainingGroup[i][j]*w9[j];
			s += g;
		}
        if(h <= s)
		{
		    h = s;
		    get_figure  = 9;
		}
        classResult <<get_figure<<"  ";
		if(get_figure == class_sign)
			m++;
   }
   classResult <<endl;
   return m;
}

int main()
{
   int i,j;
   FeatureSelection s;
   ofstream out;
   out.open("out.txt");
   s.OpenSampleFile("digit0.dat");
   s.CharacVectorGeneration();
   for(i=0;i<(s.trainingGroup).size();i++)
   {
	   cout << i+1 << "  ";
       for(j=0;j<(s.trainingGroup)[i].size();j++)
	   {
	       cout << (s.trainingGroup)[i][j] <<"  ";
	   }
	   cout <<endl;
   }
   for(i=0;i<(s.testGroup).size();i++)
   {
	   cout << i+31 << "  ";
       for(j=0;j<(s.testGroup)[i].size();j++)
	   {
	       cout << s.testGroup[i][j] <<"  ";
	   }
	   cout <<endl;
   }
   cout <<endl <<endl;
   KNNDiscriminantTraining l;
   l.TestingProcedure();
   cout <<"Finish all..."<<endl;
   getchar();
   return 0;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人免费电影| 日韩欧美高清一区| 日韩欧美久久久| 久久久久国产精品免费免费搜索| 国产欧美日韩另类视频免费观看| 亚洲色图视频网| 欧美aa在线视频| 不卡av在线免费观看| 欧美日韩一区视频| 国产亚洲成年网址在线观看| 亚洲一区二区在线视频| 国产尤物一区二区在线| 在线精品视频一区二区三四| 欧美变态tickling挠脚心| 亚洲欧美日韩人成在线播放| 激情成人综合网| 色婷婷激情久久| 久久午夜色播影院免费高清| 亚洲三级小视频| 国产在线精品不卡| 欧美午夜理伦三级在线观看| 久久日韩粉嫩一区二区三区| 一区二区三区四区视频精品免费 | 91麻豆国产香蕉久久精品| 欧美日韩一本到| 国产精品久久久久久久久免费相片| 午夜电影久久久| 99久久精品免费观看| 26uuu国产日韩综合| 午夜精品影院在线观看| www.综合网.com| 亚洲精品一区二区三区香蕉| 午夜精品123| av一本久道久久综合久久鬼色| 欧美一级高清片在线观看| 一级日本不卡的影视| 成人听书哪个软件好| 精品国产一区二区三区四区四| 一区二区三区免费在线观看| 成人激情免费电影网址| 精品国产91亚洲一区二区三区婷婷 | 亚洲在线视频一区| 不卡电影免费在线播放一区| 久久久久久久性| 七七婷婷婷婷精品国产| 精品视频色一区| 又紧又大又爽精品一区二区| 成人免费视频视频| 久久毛片高清国产| 国产自产视频一区二区三区| 欧美一区二区三区在| 午夜精品在线看| 欧洲精品视频在线观看| 亚洲精品中文在线观看| 99久久精品一区| 国产精品乱码人人做人人爱| 国产精品一区二区在线观看网站| 日韩国产高清影视| 久久亚洲精华国产精华液| 极品少妇xxxx偷拍精品少妇| 国产麻豆视频一区| 国产精品一二一区| 9i在线看片成人免费| 久久精品亚洲精品国产欧美| 日韩高清在线观看| 精品人在线二区三区| av亚洲精华国产精华精| 一本色道久久综合狠狠躁的推荐| 日本一区二区三区国色天香| 国产精品自拍一区| 久久奇米777| 国产伦精品一区二区三区免费 | 欧美国产国产综合| 丁香啪啪综合成人亚洲小说| 欧美激情综合五月色丁香小说| 国产精品一区在线观看你懂的| 久久综合九色综合97婷婷| 国产自产2019最新不卡| 国产日韩欧美一区二区三区乱码| 国产成人精品午夜视频免费| 亚洲国产精品v| 99久免费精品视频在线观看| 18成人在线视频| 色综合 综合色| 偷拍亚洲欧洲综合| 欧美变态凌虐bdsm| 成人一区二区三区视频| 自拍偷拍欧美激情| 欧洲生活片亚洲生活在线观看| 亚洲大片精品永久免费| 欧美一区二区三区成人| 国内偷窥港台综合视频在线播放| 国产农村妇女精品| 91麻豆精品一区二区三区| 亚洲午夜一区二区三区| 日韩欧美一区二区免费| 国产ts人妖一区二区| 亚洲欧美在线视频观看| 欧美日韩一区三区四区| 九色综合狠狠综合久久| 中文字幕亚洲在| 欧美美女直播网站| 国产一区二区不卡| 亚洲美女免费视频| 91精品国产综合久久久蜜臀图片| 国产麻豆成人传媒免费观看| 亚洲桃色在线一区| 制服丝袜亚洲色图| 国产.精品.日韩.另类.中文.在线.播放 | 亚洲一区成人在线| 欧美成人性战久久| av亚洲精华国产精华精| 婷婷激情综合网| 国产日韩精品久久久| 欧美午夜电影在线播放| 国产一区91精品张津瑜| 亚洲另类在线一区| 精品国产一区久久| 色妹子一区二区| 国产一区二区在线看| 亚洲黄色在线视频| 久久久亚洲欧洲日产国码αv| 色噜噜狠狠一区二区三区果冻| 久久精品99久久久| 亚洲欧美另类久久久精品| 日韩一区国产二区欧美三区| 不卡视频免费播放| 免费xxxx性欧美18vr| 亚洲日本在线a| 欧美精品一区二区三区视频| 日本久久电影网| 国产成人在线电影| 午夜精品一区在线观看| 国产精品久久久一区麻豆最新章节| 91精品久久久久久久91蜜桃| 91天堂素人约啪| 国产成人在线影院| 日本aⅴ精品一区二区三区| 亚洲欧美日韩国产综合在线| 久久综合色8888| 51精品久久久久久久蜜臀| av电影在线观看不卡| 国产麻豆91精品| 男女男精品网站| 亚洲国产欧美日韩另类综合| 国产人成一区二区三区影院| 制服丝袜中文字幕一区| 91成人国产精品| 成人97人人超碰人人99| 韩国av一区二区三区四区| 日韩一区欧美二区| 亚洲一区在线观看免费观看电影高清 | 亚洲永久精品大片| 国产精品欧美一级免费| 欧美videos中文字幕| 91精品欧美综合在线观看最新| 91美女在线视频| 国产成人午夜电影网| 奇米色一区二区| 亚洲成av人片一区二区梦乃 | 一本到不卡精品视频在线观看| 国产综合色视频| 久久电影网站中文字幕| 午夜成人在线视频| 亚洲精品成人悠悠色影视| 18欧美乱大交hd1984| 亚洲欧洲av在线| 国产精品乱码人人做人人爱| 国产欧美精品一区| 久久综合国产精品| 久久精品综合网| 久久久久久97三级| 国产色91在线| 国产日韩欧美一区二区三区乱码| 久久蜜臀精品av| 久久日韩粉嫩一区二区三区 | 国产精品影视在线观看| 久久99久久99| 久久99精品久久久久久动态图| 麻豆91在线播放免费| 久久精品国产免费看久久精品| 日韩电影一区二区三区| 美女视频一区二区| 激情深爱一区二区| 国产在线一区观看| 国产大陆亚洲精品国产| 成人综合在线网站| 成年人午夜久久久| 色综合天天综合网天天狠天天| 日本精品一级二级| 欧美日韩国产美女| 91精品国产aⅴ一区二区| 日韩色在线观看| 久久久久国产成人精品亚洲午夜| 久久久.com| 亚洲欧洲日本在线| 亚洲一级二级在线| 美腿丝袜在线亚洲一区 | 国产欧美一区二区精品忘忧草| 国产精品青草综合久久久久99|