当前位置: 首页>>代码示例>>C++>>正文


C++ VectorSpace::size方法代码示例

本文整理汇总了C++中VectorSpace::size方法的典型用法代码示例。如果您正苦于以下问题:C++ VectorSpace::size方法的具体用法?C++ VectorSpace::size怎么用?C++ VectorSpace::size使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在VectorSpace的用法示例。


在下文中一共展示了VectorSpace::size方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: qt_clustering

Clusters qt_clustering(VectorSpace & vs, double max_diameter, int minCount)
{
	Clusters clusters(vs.size(), std::numeric_limits<index>::max());  // assign all the vectors to no cluster
	int assignedCount = 0;
	int clusterId = 0;
	int count = vs.size();
	int dim = vs[0].size();
	while(assignedCount < vs.size())
	{
		std::vector < std::vector<Vect> > clusts;
		std::vector < std::vector<int> > clustsIdx;
		clusts.resize(vs.size());
		clustsIdx.resize(vs.size());
		double *limits = new double[dim*2];
		int skipped = 0;
		int docId_i = 0;
		BOOST_FOREACH(Vect d_i, vs)         // foreach document
		{
			if (clusters[docId_i] != std::numeric_limits<index>::max())
			{
				skipped++;
				docId_i++;
				continue; // sample taken already
			}
			for(int d=0; d<dim; d++)
			{
				limits[2*d] = d_i[d];
				limits[2*d+1] = d_i[d];
			}
			std::vector<Vect> &clust = clusts[docId_i];
			std::vector<int> &clustIdx = clustsIdx[docId_i];
			clust.push_back(d_i);
			clustIdx.push_back(docId_i);

			for(index docId_j = 0; docId_j < vs.size(); docId_j++)
			{
				if(docId_j == docId_i) continue;
				if (clusters[docId_j] != std::numeric_limits<index>::max()) continue; // sample taken already
				if(diameterInf(vs[docId_j], max_diameter, limits))
				{
					clust.push_back(vs[docId_j]);
					clustIdx.push_back(docId_j);
				}
			}
			docId_i++;
		} // foreach document
		delete [] limits;
		// find the cluster with the maximum count
		int maxIndex = 0, maxCnt = 0;
		for(int i=0; i<clustsIdx.size(); i++)
		{
			if(maxCnt < clustsIdx[i].size())
			{
				maxIndex = i;
				maxCnt = clustsIdx[i].size();
			}
		}
		std::cout << "maximum cluster: " << maxIndex << " with " << maxCnt << " samples"<< std::endl;
		if(maxCnt < minCount) break;
		for(int i=0; i<clustsIdx[maxIndex].size(); i++)
		{
			int index = clustsIdx[maxIndex][i];
			clusters[index] = clusterId;
		}
		clusterId++;
		assignedCount += maxCnt;
	}
	return clusters;
};
开发者ID:aadaa88,项目名称:mldemos,代码行数:69,代码来源:Clustering.cpp


注:本文中的VectorSpace::size方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。