我想通过距离python中的质心距离对数据进行分类

时间:2015-09-08 13:54:56

标签: python svm sift

我正在制作一个图像分类器,用Python来判断图像是否是汽车。

这是我的步骤:

  1. 从大约200张带有汽车的图像中获取SIFT描述符。
  2. 在所有这些SIFT描述符上使用k-means算法并找到大约50个 质心。
  3. 使用这些质心和新图像生成列车数据 对于SVM。
  4. 我只想找到那些k-mean质心,然后将它们保存在文件中以便重复使用。

    我的问题如下:

    我有50个预先计算的质心。我有SIFT描述符的新图像。我想为每个描述符找到最近的质心。

    例如:质心1最接近5个描述符,质心2最接近12个描述符,依此类推。然后我将这些数据提供给SVM。

    就像kmeans.predict(),但每次添加新图像时我都不想计算k-means。

    因此在python中有任何函数,我在超空间中给出50个点(质心),在同一个超空间中有N个点,它会返回那些根据最近质心的那些N个点的分布吗?

    由于

1 个答案:

答案 0 :(得分:0)

在scikit-learn文档中查看有关模型持久性的文章:http://scikit-learn.org/stable/modules/model_persistence.html

使用泡菜保存模型:

import pickle
with open('kmeans.dat', 'w') as f:
    pickle.dump(kmeans, f)

稍后您可以使用以下方法重新加载:

with open('kmeans.dat', 'r') as f:
    kmeans = pickle.load(f)

请注意,您只能加载由同一个python版本存储的模型。