Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >VLFeat API API解释

VLFeat API API解释
EN

Stack Overflow用户
提问于 2015-02-10 09:39:14
回答 1查看 659关注 0票数 1

我正在尝试使用用C语言实现VLFeat的kmeans,但是我很难理解它是如何工作的。

注意:我在C++程序中使用了C++,所以我在这里发布的任何代码都是C++。另外,我使用的是特征头库,这就是那些矩阵数据类型的来源。

从示例和API中不清楚的是:

  1. 数据必须采用什么格式?kmeans库函数似乎需要一个一维数组,该数组可以从矩阵的后盾中提取。但是,此矩阵是否需要是列主还是行主?也就是说,函数如何区分数据的维数和不同的数据向量?
  2. 我如何实际访问集群中心的信息?我运行了一个测试,声明我需要5个集群,但是使用上面链接中的示例代码,我只返回1。

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int numData = 1000;
int dims = 10;
// Use float data and the L1 distance for clustering
VlKMeans * kmeans = vl_kmeans_new (VL_TYPE_FLOAT,  VlDistanceL1) ;
// Use Lloyd algorithm
vl_kmeans_set_algorithm (kmeans, VlKMeansLloyd) ;
// Initialize the cluster centers by randomly sampling the data
Matrix<float, 1000,10, RowMajor> data = buildData(numData, dims);
vl_kmeans_init_centers_with_rand_data (kmeans, data.data(), dims, numData, 5);
// Run at most 100 iterations of cluster refinement using Lloyd algorithm
vl_kmeans_set_max_num_iterations (kmeans, 100) ;
vl_kmeans_refine_centers (kmeans, &data, numData) ;
// Obtain the energy of the solution
energy = vl_kmeans_get_energy(kmeans) ;
// Obtain the cluster centers
centers = (double*)vl_kmeans_get_centers(kmeans);
cout << *centers << endl;

示例输出: centers = 0.0376879 (一个标量)

我怎么能得到所有的中心?我尝试使用数组来存储中心,但它不接受这种类型。

我还尝试了以下方法,假设我只是访问了中心的信息不对:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cout << centers[0]<< endl;
cout << centers[1]<< endl;
cout << centers[2]<< endl;
cout << centers[3]<< endl;
cout << centers[4]<< endl;
cout << centers[5]<< endl;
cout << centers[6]<< endl;
cout << centers[7]<< endl;
cout << centers[8]<< endl;

但是对于索引0-4 (给定5个集群中心),我应该只有零-零值。实际上,我预计会为更高的指数抛出异常。如果这是正确的方法,能否有人向我解释这些其他值(指数5-8)来自什么?

我确信还有其他令人困惑的部分,但我甚至还没有解决这些问题,因为我一直被困在这两个非常重要的部分上(我的意思是,如果不能正确地开始集群,那么这是什么意思)。

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-11 02:14:37

数据必须采用什么格式?

手册说:

所有算法都支持floatdouble数据,并且可以使用l1或l2距离进行聚类。

指定在创建kmeans句柄时,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
VlKMeans *kmeans = vl_kmeans_new(VL_TYPE_FLOAT, VlDistanceL2);

这个矩阵需要是列大写还是行大写?

它一定在行大调,即:data + dimension * i是第一个中心.

我如何实际访问集群中心的信息?

vl_kmeans_get_centers。例如,如果您使用float-s:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* no need to cast here since get centers returns a `void *` */
const float *centers = vl_kmeans_get_centers(kmeans);

(请参阅有关演员的https://stackoverflow.com/a/605858/1688185 )

该数组的总大小(以字节为单位)为sizeof(float) * dimension * numCenters。如果您想打印出中心,您可以:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int i, j;
for (i = 0; i < numCenters; i++) {
  printf("center # %d:\n", i);
  for (j = 0; j < dimension; j++) {
    printf("    coord[%d] = %f\n", j, centers[dimension * i + j]);
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28438212

复制
相关文章
Android网格视图(GridView)
GridView的一些属性: 1.android:numColumns=”auto_fit”   //GridView的列数设置为自动,也可以设置成2、3、4…… 2.android:columnWidth=”90dp "       //每列的宽度,也就是Item的宽度 3.android:stretchMode=”columnWidth"//缩放与列宽大小同步 4.android:verticalSpacing=”10dp”          //两行之间的边距 5.android:horizontal
欢醉
2018/01/22
1.6K0
Android网格视图(GridView)
Flat风格的Qml组合框
基于Qml的ComboBox控件修改而成。 组合框代码 import QtQuick 2.0 import QtQuick.Controls 2.0 import QtGraphicalEffect
Qt君
2019/12/16
1.2K0
MFC控件编程之组合框跟列表框
  如果要使用组合框跟列表框.那么就要知道.组合框列表框是最核心的东西就是索引. 索引是从0开始的.
IBinary
2019/05/25
1.1K0
three.js 几何体-组合网格
这一篇郭先生就说说ThreeBSP(组合网格)的使用,先上图,在线案例点击ThreeBSP案例
郭先生的博客
2020/08/31
1.9K0
three.js 几何体-组合网格
用户窗体编程:实现组合框与文本框联动
在VBE中,插入一个类模块,将其重命名为“CComboboxes”。在该类模块中,输入代码:
fanjy
2023/09/27
6050
用户窗体编程:实现组合框与文本框联动
动态图表8|组合框(offset函数)
今天跟大家分享动态图表8——组合框(offset函数)! 步骤: 使用组合框制作下拉菜单 使用offset函数制作动态数据源 利用动态数据源制作图表 1、组合框制作: 在开发工具中插入组合框,将数据源
数据小磨坊
2018/04/10
2.1K0
动态图表8|组合框(offset函数)
动态图表7|组合框(index函数)
今天跟大家分享动态图表7——组合框(index函数)! 组合框制作图表,其步骤与列表框相同,唯一的不同点在于,组合框控件,提供用于选择的下拉菜单,在未选择的情况下,组合框将会把菜单折叠,这样不会占用很
数据小磨坊
2018/04/10
2.9K0
动态图表7|组合框(index函数)
Excel VBA多数据级联组合框示例
这是thesmallman.com中的一个示例,展示了一个多数据级联组合框的例子,非常好!
fanjy
2022/11/16
1.1K0
Excel VBA多数据级联组合框示例
用于精确目标检测的多网格冗余边界框标注
论文地址:https://arxiv.org/pdf/2201.01857.pdf
计算机视觉研究院
2022/01/28
6470
用于精确目标检测的多网格冗余边界框标注
速读原著-Android应用开发入门教程(网格(Grid)视图组)
本节介绍的网格(Grid)视图组可以将某种控件按照网格的形式组织起来,平铺在屏幕上。
cwl_java
2020/02/13
7210
VBA代码分享:可搜索的数据验证+组合框
Excel没有提供搜索数据验证列表的内置方法。因此,当列表很长时,通过滚动来浏览列表很不方便。在mrexcel.com中,提供的可搜索的数据验证+组合框就是解决这个问题的一种方法,它有以下行为:
fanjy
2022/04/13
1.5K0
VBA代码分享:可搜索的数据验证+组合框
动态图表9|组合框(名称管理器)
今天要跟大家分享的是动态图表9——组合框(名称管理器)! 其实看过最近8篇推送的小伙伴儿大概都能看出来了,我所讲的动态图表制作技巧是沿着这样的思路来的: 数据有效性+(index函数/match函数)+插入图表 +(offset函数/match函数)+插入图表 +(名称管理器/offset函数)+插入图表 列表框+(index函数)+插入图表 +(offset函数)+插入图表 +(名称管理器/offset函数)+插入图表 组合框+(
数据小磨坊
2018/04/10
2K0
动态图表9|组合框(名称管理器)
示例工作簿分享:可自动筛选的组合框
这是一个很好的Excel工作簿开发示例,来自于ozgrid.com论坛。该示例实现了:可以通过选择单元格区域来提供组合框中的下拉列表值,这些值就是所选单元格区域中的内容;可以在组合框中输入内容来自动筛选组合框中的下拉列表,就像网页搜索中随着输入逐步缩小提示内容一样;并且还可以修改标题、修改提示;等等。如下图1所示。
fanjy
2023/10/04
2830
示例工作簿分享:可自动筛选的组合框
Qt Style Sheet实践(二):组合框QComboBox的定制
导读      组合框是一个重要且应用广泛的组件,一般由两个子组件组成:文本下拉单部分和按钮部分。在许多既需要用户选择、又需要用户手动输入的应用场景下,组合框能够很好的满足我们的需求。如我们经常使用的
24K纯开源
2018/01/18
8.1K0
Qt Style Sheet实践(二):组合框QComboBox的定制
VBA代码分享2:可搜索的数据验证+组合框
Excel没有提供搜索数据验证列表的内置方法。因此,当列表很长时,通过滚动来浏览列表很不方便。在mrexcel.com中,提供的可搜索的数据验证+组合框就是解决这个问题的一种方法,它有以下行为:
fanjy
2022/06/04
1.3K0
VBA代码分享2:可搜索的数据验证+组合框
Python+tkinter实现任意多层级关系的组合框
正好自己要用,就想了个简单思路实现了一下,假设现在需要一个组合框来显示多个层级关系的单位名称供用户选择,如果只有固定的两级关系当然可以使用两个组合框联动来实现,但是如果层级关系不确定,下面的方法就很有用了。 import tkinter import tkinter.ttk testData = {'01':'学校一', '02':'学校二', '03':'学校三', '0101':'学校一年级一', '010101':'学校一年级一班级一', '0102':'学校一年级二'} #按单位编码进行排
Python小屋屋主
2018/04/16
1.5K0
Python+tkinter实现任意多层级关系的组合框
在 Flutter 中使用交错网格视图创建瀑布流布局【Flutter专题25】
在 Web 和移动开发世界中,当我们想要显示大小不相同的项目网格时,瀑布流布局很有用。一个轴使用严格的网格布局,通常是列。在另一个轴上,项目具有不同的高度,但可以灵活排列以填满可用空间。使用瀑布流布局的一个著名例子是 Pinterest。他们为他们的网站和移动应用程序实现了这种布局,以显示不同大小的图像。
徐建国
2022/03/30
3.1K0
在 Flutter 中使用交错网格视图创建瀑布流布局【Flutter专题25】
编辑器框与命令行框视图分开成两个窗口解决方法。
1、点击[新建] 2、点击[函数] 3、点击[显示 编辑器 操作] 4、点击[停靠 编辑器]
裴来凡
2022/05/28
2750
编辑器框与命令行框视图分开成两个窗口解决方法。
【数据网格】应用数据网格
逐步从单一数据湖转移到分散的 21 世纪数据网格。 (另请查看后续文章:三种数据网格)
架构师研究会
2022/09/26
1.4K0
【数据网格】应用数据网格
点击加载更多

相似问题

SQL Server: GETDATE()

24

Getdate() sql server 2008

12

舍入GETDATE (SQL Server)

41

SQL Server getdate()格式

31

SQL server中的GETDATE()函数

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文