91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.83MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-09-15
  • 語言: C/C++
  • 標簽: KNN分類??

資源簡介

KNN分類算法的C++實現,采用交叉驗證測試在公共數據集上的準確率。希望對大家有幫助,如果發現程序中的問題請給我留言,相互借鑒,共同進步。

資源截圖

代碼片段和文件信息

//?CrossValidation.cpp:?implementation?of?the?CCrossValidation?class.
//
//////////////////////////////////////////////////////////////////////

#include?“CrossValidation.h“

//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////

CCrossValidation::CCrossValidation(int?sampleSize??int?k_fold?const?std::vector?&classSize):?m_classSize(?classSize?)
{
m_sampleSize?=?sampleSize;
m_kfold?=?k_fold;

int?classIndex?=?0;
int?sampleCount?=?0;
std::vector?group;
group.reserve(?sampleSize?/?classSize.size()?);
m_classMap.reserve(?sampleSize?);

m_sampleID.reserve(?sampleSize?);
for(?int?i?=?0;?i? m_sampleID.push_back(?i?);

m_cvGroup.resize(?k_fold?);

for(?int?sampleIndex?=?0;?sampleIndex? {
if(?sampleCount? {
sampleCount++;
group.push_back(?sampleIndex?);
}
else
{
m_classMap.push_back(?group?);
group.clear();

classIndex++;
sampleCount?=?0;
sampleIndex--;
}
}
m_classMap.push_back(?group?);

}

CCrossValidation::~CCrossValidation()
{

}

void?CCrossValidation::GenerateCVGroup()
{
int?unevenTime?=?0; //記錄當前類樣本若是交叉驗證分組個數不一樣時,是第幾次出現分組不一樣的情況

//通過輪盤組對每類樣本進行按比例隨機交叉驗證分組
for(?int?classIndex?=?0;?classIndex? {
//計算當前類樣本平均分組大小
int?meanGroupSize?=?m_classSize.at(?classIndex?)?/?m_kfold;
int?unevenGroupCount?=?m_classSize.at(?classIndex?)?-?meanGroupSize?*?m_kfold;
if(?unevenGroupCount?>?0?)
unevenTime++;

//計算當前類樣本分到交叉驗證分組中各組的樣本個數
std::vector?groupSize;
groupSize.reserve(?m_kfold?);
for(?int?groupIndex?=?0;?groupIndex? {
if(?unevenTime?%?2?==?0?)
{
if(?groupIndex? groupSize.push_back(?meanGroupSize?+?1?);
else
groupSize.push_back(?meanGroupSize?);
}
else
{
if(?groupIndex? groupSize.push_back(?meanGroupSize?);
else
groupSize.push_back(?meanGroupSize?+?1?);
}
}

//計算原始樣本分到各組的概率
std::vector?probability;
probability.reserve(?m_kfold?);
for(?groupIndex?=?0;?groupIndex? probability.push_back(?groupSize[?groupIndex?]?*?1.0?/?m_classSize.at(?classIndex?)?);

//計算輪盤組概率
std::vector?roundProb;
roundProb.reserve(?m_kfold?);
double?probSum?=?0;
for(?groupIndex?=?0;?groupIndex? {
probSum?+=?probability.at(?groupIndex?);
roundProb.push_back(?probSum?);
}
roundProb.push_back(?1.0?);

//將當前類樣本進行交叉驗證分組
for(?int?sampleIndex?=?0;?sampleIndex? {
//隨機分組
double?randProb?=?rand()?*?1.0?/?RAND_MAX;
for(?groupIndex?=?0;?groupIndex? {

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2016-04-15?16:06??KNN\
?????文件????????4756??2016-04-05?19:11??KNN\CrossValidation.cpp
?????文件????????1287??2016-04-05?19:10??KNN\CrossValidation.h
?????目錄???????????0??2016-04-15?16:06??KNN\Debug\
?????文件??????126490??2016-04-05?21:01??KNN\Debug\CrossValidation.obj
?????文件???????????0??2016-04-05?21:01??KNN\Debug\CrossValidation.sbr
?????文件??????697344??2016-04-15?16:06??KNN\Debug\KNN.bsc
?????文件??????647236??2016-04-15?16:06??KNN\Debug\KNN.exe
?????文件??????923444??2016-04-15?16:06??KNN\Debug\KNN.ilk
?????文件???????71644??2016-04-15?16:05??KNN\Debug\KNN.obj
?????文件?????2598676??2016-04-15?16:06??KNN\Debug\KNN.pch
?????文件?????1532928??2016-04-15?16:06??KNN\Debug\KNN.pdb
?????文件???????????0??2016-04-15?16:06??KNN\Debug\KNN.sbr
?????文件??????256044??2016-04-15?16:06??KNN\Debug\Main.obj
?????文件???????????0??2016-04-15?16:06??KNN\Debug\Main.sbr
?????文件??????266940??2016-04-14?09:57??KNN\Debug\MI.obj
?????文件??????270653??2016-04-14?09:57??KNN\Debug\MI.sbr
?????文件??????251747??2016-04-15?16:06??KNN\Debug\ReadData.obj
?????文件???????????0??2016-04-15?16:06??KNN\Debug\ReadData.sbr
?????文件??????132096??2016-04-15?16:06??KNN\Debug\vc60.idb
?????文件??????184320??2016-04-15?16:06??KNN\Debug\vc60.pdb
?????文件????????5447??2016-04-15?16:05??KNN\KNN.cpp
?????文件????????4635??2016-04-15?16:06??KNN\KNN.dsp
?????文件?????????514??2016-04-05?19:00??KNN\KNN.dsw
?????文件????????1707??2016-04-14?09:36??KNN\KNN.h
?????文件??????107520??2016-04-15?16:06??KNN\KNN.ncb
?????文件???????49664??2016-04-15?16:06??KNN\KNN.opt
?????文件????????1662??2016-04-15?16:06??KNN\KNN.plg
?????文件????????3290??2016-04-15?16:06??KNN\Main.cpp
?????文件???????18575??2016-04-14?10:20??KNN\MI.cpp
?????文件????????1971??2016-04-14?10:20??KNN\MI.h
............此處省略5個文件信息

評論

共有 條評論