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

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

?? garff.cpp

?? 一個(gè)非常有用的開源代碼
?? CPP
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
	{		pRow = GetVector(n);		pRow[nAttribute] -= dInputMin;		pRow[nAttribute] *= dScale;		pRow[nAttribute] += dOutputMin;	}}/*static*/ double GArffData::Normalize(double dVal, double dInputMin, double dInputRange, double dOutputMin, double dOutputRange){	GAssert(dInputRange > 0, "divide by zero");	dVal -= dInputMin;	dVal /= dInputRange;	dVal *= dOutputRange;	dVal += dOutputMin;	return dVal;}double* GArffData::MakeSetOfMostCommonOutputs(GArffRelation* pRelation){	int nOutputs = pRelation->GetOutputCount();	double* pOutputs = new double[nOutputs];	double* pRow;	int nVal;	int nIndex;	int n;	for(n = 0; n < nOutputs; n++)	{		nIndex = pRelation->GetOutputIndex(n);		GArffAttribute* pAttr = pRelation->GetAttribute(nIndex);		if(pAttr->IsContinuous())		{			// Find the mean output value			int i;			int nCount = GetSize();			double dSum = 0;			for(i = 0; i < nCount; i++)			{				pRow = GetVector(i);				dSum += pRow[n];			}			pOutputs[n] = dSum / nCount;		}		else		{			// Init the counts to zero			int nCount = pAttr->GetValueCount();			Holder<int*> hCounts(new int[nCount]);			int* pCounts = hCounts.Get();			memset(pCounts, '\0', sizeof(int) * nCount);			// Count occurrences of each output value			int i;			nCount = GetSize();			for(i = 0; i < nCount; i++)			{				pRow = GetVector(i);				nVal = (int)pRow[nIndex];				if(nVal < 0)				{					GAssert(nVal == -1, "out of range");					continue;				}				pCounts[nVal]++;			}			// Find the most common output value			nCount = pAttr->GetValueCount();						int nMaxCount = pCounts[0];			int nBestValue = 0;			for(i = 1; i < nCount; i++)			{				if(pCounts[i] > nMaxCount)				{					nBestValue = i;					nMaxCount = pCounts[i];				}			}			// Set the value			pOutputs[n] = (double)nBestValue;		}	}	return pOutputs;}bool GArffData::IsOutputHomogenous(GArffRelation* pRelation){	int nRowCount = GetSize();	if(nRowCount <= 0)		return true;	int nOutputs = pRelation->GetOutputCount();	int n, i, nIndex, nVal, nTmp;	double* pRow;	double dVal;	for(i = 0; i < nOutputs; i++)	{		nIndex = pRelation->GetOutputIndex(i);		GArffAttribute* pAttr = pRelation->GetAttribute(nIndex);		if(pAttr->IsContinuous())		{			pRow = GetVector(0);			dVal = pRow[nIndex];			for(n = 1; n < nRowCount; n++)			{				pRow = GetVector(n);				if(pRow[nIndex] != dVal)					return false;			}		}		else		{			for(n = 0; n < nRowCount; n++)			{				pRow = GetVector(n);				nVal = (int)pRow[nIndex];				if(nVal >= 0)				{					n++;					break;				}			}			for( ; n < nRowCount; n++)			{				pRow = GetVector(n);				nTmp = (int)pRow[nIndex];				if(nTmp != nVal && nTmp >= 0)					return false;			}		}	}	return true;}void GArffData::RandomlyReplaceMissingData(GArffRelation* pRelation){	int n, i, j;	int nRowCount = GetSize();	int nAttrCount = pRelation->GetAttributeCount();	int nMaxValues = 0;	int nValues;	int nVal;	int nSum;	int nRand;	int* pCounts = NULL;	double* pRow;	GArffAttribute* pAttr;	for(i = 0; i < nAttrCount; i++)	{		// Make a buffer to hold the counts		pAttr = pRelation->GetAttribute(i);		if(pAttr->IsContinuous())			continue;		nValues = pAttr->GetValueCount();		if(nValues > nMaxValues)		{			delete(pCounts);			nMaxValues = pAttr->GetValueCount() + 3;			pCounts = new int[nMaxValues];		}		// Count the number of each value		memset(pCounts, '\0', sizeof(int) * nValues);		for(n = 0; n < nRowCount; n++)		{			nVal = (int)GetVector(n)[i];			if(nVal >= 0)			{				GAssert(nVal < nValues, "out of range");				pCounts[nVal]++;			}			else			{				GAssert(nVal == -1, "out of range");			}		}		// Sum the value counts		nSum = 0;		for(n = 0; n < nValues; n++)			nSum += pCounts[n];		// Replace the missing values		for(n = 0; n < nRowCount; n++)		{			pRow = GetVector(n);			nVal = (int)pRow[i];			if(nVal < 0)			{				nRand = (int)(GBits::GetRandomUint() % nSum);				for(j = 0; ; j++)				{					GAssert(j < nValues, "internal inconsistency");					nRand -= pCounts[j];					if(nRand < 0)					{						pRow[i] = (double)j;						break;					}				}			}		}	}}void GArffData::ReplaceMissingAttributeWithMostCommonValue(GArffRelation* pRelation, int nAttribute){	GArffAttribute* pAttr = pRelation->GetAttribute(nAttribute);	if(pAttr->IsContinuous())		return; // missing values are currently only supported for discreet values	int nValues = pAttr->GetValueCount();	GTEMPBUF(int, pCounts, nValues);	memset(pCounts, '\0', sizeof(int) * nValues);	double* pRow;	int nRowCount = GetSize();	int n, nVal;	for(n = 0; n < nRowCount; n++)	{		pRow = GetVector(n);		nVal = (int)pRow[nAttribute];		if(nVal < 0)			continue;		GAssert(nVal < nValues, "out of range");		pCounts[nVal]++;	}	int nBest = 0;	for(n = 1; n < nValues; n++)	{		if(pCounts[n] > pCounts[nBest])			nBest = n;	}	for(n = 0; n < nRowCount; n++)	{		pRow = GetVector(n);		nVal = (int)pRow[nAttribute];		if(nVal < 0)		{			pRow[nAttribute] = (double)nBest;		}	}}void GArffData::Print(int nAttributes){	int nRows = GetSize();	double* pRow;	int n, i;	for(n = 0; n < nRows; n++)	{		pRow = GetVector(n);		printf("%f", pRow[0]);		for(i = 1; i < nAttributes; i++)			printf("\t%f", pRow[i]);		printf("\n");	}}int ComputeMinimumVariancePivotComparer(void* pThis, void* pA, void* pB){	int nAttr = (int)pThis;	double* pdA = (double*)pA;	double* pdB = (double*)pB;	if(pdA[nAttr] > pdB[nAttr])		return 1;	else		return -1;}double GArffData::ComputeMinimumVariancePivot(int nAttr){	int nRows = GetSize();	GPointerArray arr(nRows);	int n;	for(n = 0; n < nRows; n++)		arr.AddPointer(GetVector(n));	arr.Sort(ComputeMinimumVariancePivotComparer, (void*)nAttr);	double dBestPivotScore = 1e100;	double dBestPivot = 0;	double dPivot, d;	double* pRow1;	double* pRow2;	double dMean1, dMean2, dVar1, dVar2;	int nCount1, nCount2, i;	for(n = nRows - 2; n >= 0; n--)	{		// Try a pivot		pRow1 = (double*)arr.GetPointer(n);		pRow2 = (double*)arr.GetPointer(n + 1);		dPivot = (pRow1[nAttr] + pRow2[nAttr]) / 2;		// Compute the mean of each half		dMean1 = 0;		dMean2 = 0;		nCount1 = 0;		nCount2 = 0;		for(i = 0; i < nRows; i++)		{			pRow1 = GetVector(i);			if(pRow1[nAttr] < dPivot)			{				nCount1++;				dMean1 += pRow1[nAttr];			}			else			{				nCount2++;				dMean2 += pRow1[nAttr];			}		}		dMean1 /= nCount1;		dMean2 /= nCount2;		// Compute the variance of each half		dVar1 = 0;		dVar2 = 0;		for(i = 0; i < nRows; i++)		{			pRow1 = GetVector(i);			if(pRow1[nAttr] < dPivot)			{				d = pRow1[nAttr] - dMean1;				dVar1 += (d * d);			}			else			{				d = pRow2[nAttr] - dMean2;				dVar2 += (d * d);			}		}		dVar1 /= nCount1;		dVar2 /= nCount2;		d = dVar1 + dVar2;				// See if we've got a new best score		if(d < dBestPivotScore)		{			dBestPivotScore = d;			dBestPivot = dPivot;		}	}	return dBestPivot;}double GArffData::ComputeMinimumInfoPivot(GArffRelation* pRelation, int nAttr, double* pOutputInfo){	int nRows = GetSize();	GPointerArray arr(nRows);	int n;	for(n = 0; n < nRows; n++)		arr.AddPointer(GetVector(n));	arr.Sort(ComputeMinimumVariancePivotComparer, (void*)nAttr);	double dBestPivotScore = 1e100;	double dBestPivot = 0;	double dPivot, d;	double* pRow1;	double* pRow2;	for(n = nRows - 2; n >= 0; n--)	{		// Try a pivot		pRow1 = (double*)arr.GetPointer(n);		pRow2 = (double*)arr.GetPointer(n + 1);		dPivot = (pRow1[nAttr] + pRow2[nAttr]) / 2;		// Split at the pivot and measure the sum info		GArffData* pData2 = SplitByPivot(nAttr, dPivot);		d = pRelation->MeasureTotalOutputInfo(this) + pRelation->MeasureTotalOutputInfo(pData2);		Merge(pData2);		delete(pData2);		// See if we've got a new best score		if(d < dBestPivotScore)		{			dBestPivotScore = d;			dBestPivot = dPivot;		}	}	*pOutputInfo = dBestPivotScore;	return dBestPivot;}void GArffData::ComputeCovarianceMatrix(GMatrix* pOutMatrix, GArffRelation* pRelation){	// Resize the matrix	int nInputs = pRelation->GetInputCount();	pOutMatrix->Resize(nInputs, nInputs);	// Compute the deviations	Holder<double*> hMeans(new double[nInputs]);	double* pMeans = hMeans.Get();	int nRowCount = GetSize();	double* pRow;	int n, i, j, nIndex;	for(i = 0; i < nInputs; i++)	{		nIndex = pRelation->GetInputIndex(i);		// Compute the mean		double dSum = 0;		for(n = 0; n < nRowCount; n++)		{			pRow = GetVector(n);			dSum += pRow[nIndex];		}		pMeans[i] = dSum / nRowCount;	}	// Compute the covariances for half the matrix	for(i = 0; i < nInputs; i++)	{		for(n = i; n < nInputs; n++)		{			double dSum = 0;			for(j = 0; j < nRowCount; j++)			{				pRow = GetVector(j);				dSum += ((pRow[i] - pMeans[i]) * (pRow[n] - pMeans[n]));			}			pOutMatrix->Set(i, n, dSum / (nRowCount - 1));		}	}	// Fill out the other half of the matrix	for(i = 1; i < nInputs; i++)	{		for(n = 0; n < i; n++)			pOutMatrix->Set(i, n, pOutMatrix->Get(n, i));	}}void GArffData::ComputeCoprobabilityMatrix(GMatrix* pOutMatrix, GArffRelation* pRelation, int nAttr, double noDataValue){	// Resize the matrix	GArffAttribute* pAttr = pRelation->GetAttribute(nAttr);	int nRows = pAttr->GetValueCount();	int nAttributes = pRelation->GetAttributeCount();	int nCols = 0;	int i;	for(i = 0; i < nAttributes; i++)	{		GArffAttribute* pAttrCol = pRelation->GetAttribute(i);		nCols += pAttrCol->GetValueCount();	}	pOutMatrix->Resize(nRows, nCols);	// Compute the coprobabilities	int nRowCount = GetSize();	int row, col, nMatch, nTotal, nAttrCol, nVal;	double* pRow;	for(row = 0; row < nRows; row++)	{		col = 0;		for(nAttrCol = 0; nAttrCol < nAttributes; nAttrCol++)		{			GArffAttribute* pAttrCol = pRelation->GetAttribute(nAttrCol);			for(nVal = 0; nVal < pAttrCol->GetValueCount(); nVal++)			{				nMatch = 0;				nTotal = 0;				for(i = 0; i < nRowCount; i++)				{					pRow = GetVector(i);					if((int)pRow[nAttrCol] == nVal)					{						nTotal++;						if((int)pRow[nAttr] == row)							nMatch++;					}				}				if(nTotal == 0)					pOutMatrix->Set(row, col, noDataValue);				else					pOutMatrix->Set(row, col, (double)nMatch / nTotal);				col++;			}		}		GAssert(col == nCols, "problem with columns");	}}int DimensionComparer(void* pThis, void* pA, void* pB){	int nDim = *(int*)pThis;	if(((double*)pA)[nDim] < ((double*)pB)[nDim])		return -1;	else if(((double*)pA)[nDim] > ((double*)pB)[nDim])		return 1;	else		return 0;}void GArffData::Sort(int nDimension){	GPointerArray::Sort(DimensionComparer, &nDimension);}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线三区| 国产精品传媒视频| 制服丝袜在线91| 欧美视频一区二区在线观看| 91免费视频网| 97久久超碰国产精品| www.综合网.com| 成人免费看的视频| 丁香五精品蜜臀久久久久99网站| 国产精品一区二区三区四区| 国产一区二区中文字幕| 国产一区视频网站| 国产精品一区二区在线看| 极品尤物av久久免费看| 国产最新精品免费| 国产精品99久| 91蜜桃免费观看视频| 一本色道久久综合亚洲精品按摩| 色婷婷av一区二区三区之一色屋| 色婷婷综合在线| 在线一区二区三区四区五区| 欧美日韩免费一区二区三区| 3751色影院一区二区三区| 精品区一区二区| 国产日韩欧美综合一区| 国产精品久久久久久久蜜臀| 成人免费在线观看入口| 一区二区三区国产精华| 亚洲一区二区五区| 蜜臀av性久久久久蜜臀av麻豆| 久久精品国产第一区二区三区| 精品一二线国产| 成人av动漫在线| 欧美怡红院视频| 日韩美女视频一区二区在线观看| 久久久美女艺术照精彩视频福利播放| 亚洲国产精品二十页| 尤物视频一区二区| 青草av.久久免费一区| 国产福利视频一区二区三区| 色综合久久综合中文综合网| 欧美一区二区在线免费播放| 国产网红主播福利一区二区| 一区二区三区产品免费精品久久75| 天天综合色天天综合| 国产91精品久久久久久久网曝门| 欧美综合久久久| 久久蜜桃一区二区| 一区二区三区精品视频| 国产一区在线观看麻豆| 欧美中文字幕久久| 久久午夜羞羞影院免费观看| 亚洲精品综合在线| 激情图片小说一区| 在线观看91视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 亚洲午夜私人影院| 九九精品视频在线看| 一本到不卡精品视频在线观看| 日韩欧美国产三级| 亚洲摸摸操操av| 国产在线精品免费| 欧美午夜宅男影院| 日本一区二区成人| 裸体在线国模精品偷拍| 色欧美片视频在线观看在线视频| 精品国内片67194| 一区二区在线免费观看| 国产精品影视天天线| 欧美日韩视频专区在线播放| 国产精品第五页| 韩日精品视频一区| 欧美精品粉嫩高潮一区二区| 中日韩免费视频中文字幕| 日韩精品成人一区二区在线| 97se亚洲国产综合自在线不卡| 精品国产乱码久久久久久图片| 一区二区欧美国产| 成人精品在线视频观看| 26uuu国产一区二区三区| 天天av天天翘天天综合网色鬼国产| 成人理论电影网| 久久久99免费| 精品制服美女久久| 欧美日本一道本在线视频| 国产精品色呦呦| 国产一区二区三区四区五区入口| 欧美日韩中文字幕一区二区| ...xxx性欧美| 高清shemale亚洲人妖| 精品日韩在线观看| 六月婷婷色综合| 在线综合亚洲欧美在线视频| 亚洲自拍偷拍图区| 97精品视频在线观看自产线路二| 国产日韩影视精品| 国产精品一品视频| 精品国产乱码久久| 精品夜夜嗨av一区二区三区| 欧美成人猛片aaaaaaa| 日本亚洲免费观看| 91免费在线视频观看| 国产色产综合色产在线视频| 韩日精品视频一区| 欧美成人一区二区三区在线观看| 亚洲www啪成人一区二区麻豆| 91国产视频在线观看| 日韩一二在线观看| 调教+趴+乳夹+国产+精品| 欧美α欧美αv大片| 成人午夜精品在线| 一区二区三区中文字幕精品精品| 717成人午夜免费福利电影| 久久成人精品无人区| 日本一区二区三区视频视频| 色天天综合久久久久综合片| 日韩av电影一区| 国产女同互慰高潮91漫画| 欧美中文字幕一区二区三区| 精品一区二区三区在线视频| 中文字幕视频一区| 欧美二区三区91| 国产91精品露脸国语对白| 亚洲国产欧美一区二区三区丁香婷| 日韩三区在线观看| 不卡视频一二三| 丝袜诱惑制服诱惑色一区在线观看| 久久看人人爽人人| 欧美三级资源在线| 国产精品123区| 亚洲va欧美va人人爽午夜| 久久综合色一综合色88| 91成人国产精品| 国产成人av一区| 五月激情丁香一区二区三区| 国产亚洲污的网站| 欧美区视频在线观看| 成人三级伦理片| 美女尤物国产一区| 亚洲人一二三区| 久久视频一区二区| 欧美日韩成人一区| 粉嫩av亚洲一区二区图片| 日本欧美久久久久免费播放网| 国产精品嫩草久久久久| 日韩一区二区三| 欧美中文字幕一区二区三区亚洲 | 欧美一区二区三区免费在线看| 国产成人精品免费| 人人狠狠综合久久亚洲| 亚洲欧洲制服丝袜| 国产欧美日韩精品一区| 日韩一区二区中文字幕| 在线精品视频一区二区三四| 国产成a人亚洲| 久久精品免费看| 五月天丁香久久| 亚洲精品欧美激情| 国产拍揄自揄精品视频麻豆| 欧美一区二区黄| 欧美挠脚心视频网站| 一本到三区不卡视频| 波多野结衣的一区二区三区| 韩国毛片一区二区三区| 天使萌一区二区三区免费观看| 亚洲一区在线视频| 亚洲婷婷综合久久一本伊一区| 国产亚洲污的网站| 久久久91精品国产一区二区精品| 日韩三级电影网址| 91麻豆精品国产91久久久使用方法 | 欧美网站一区二区| 91在线视频网址| 成人性生交大片免费看视频在线| 国内成人免费视频| 捆绑调教一区二区三区| 日韩av电影天堂| 男人操女人的视频在线观看欧美| 亚洲成av人片一区二区梦乃| 亚洲一卡二卡三卡四卡五卡| 亚洲精品va在线观看| 亚洲欧洲综合另类| 伊人开心综合网| 亚洲伊人色欲综合网| 一区二区三区四区蜜桃| 亚洲一区欧美一区| 视频一区视频二区中文| 天天综合色天天| 日韩国产欧美一区二区三区| 青娱乐精品视频| 蜜臀va亚洲va欧美va天堂 | 91精品国产一区二区三区蜜臀 | 亚洲在线中文字幕| 洋洋av久久久久久久一区| 亚洲精品免费播放| 亚洲午夜免费电影| 日韩精品高清不卡| 麻豆91免费看| 国产成人综合自拍| 成人网在线播放|