【问题标题】:generating image features dataset in scikit-learn - csv file在 scikit-learn - csv 文件中生成图像特征数据集
【发布时间】:2012-11-29 02:08:50
【问题描述】:

我从一张图像中提取了 2 个边缘特征(Hog 特征和 sobel 算子)。

如何在 Scikit-learn python 中创建图像特征数据集,例如 iris_dataset ? 在库中有代表数据集的 csv 文件。仅包含数字的 csv 文件。这些数字是如何产生的?特征提取?

不幸的是,我在这里只看到了一个 java 教程http://www.coccidia.icb.usp.br/coccimorph/tutorials/Tutorial-2-Creating-...,在 5 点谈论生成训练矩阵(平均和协方差矩阵)? Scikit 中有什么函数可以生成这些训练数组?

【问题讨论】:

    标签: image dataset machine-learning scikit-learn feature-extraction


    【解决方案1】:

    您无需将数据包装为 CSV 文件即可将其加载为数据集。 scikit-learn 模型有一个 fit 方法,期望:

    • 作为第一个参数,它是一个常规的 numpy 数组(或 scipy.sparse 矩阵),形状为 (n_samples, n_features)(最常见的是 dtype=numpy.float64),用于对训练集中每个样本的特征向量进行编码,

    • 对于监督分类模型,第二个参数的形状为(n_samples,)dtype=numpy.int32,用于对训练集的每个样本编码为整数值的类标签分配进行编码。

    如果您不了解基本的 numpy 数据结构以及 shapedtype 的含义,我强烈建议您查看诸如 SciPy Lecture Notes 之类的教程。

    编辑:如果您确实需要从 numpy 数组中读取/写入数字 CSV,可以使用numpy.loadtxt / numpy.savetxt

    【讨论】:

    • 是的,但是,它是正确的:我从 10000 幅图像中提取 100 个 numpy 数组,然后我制作了一个由 100 个 numpy 数组组成的 1 个 numpyarray?并放入 n_features 点?
    • 对于示例的含义(在教程中:scikit-learn.org/stable/tutorial/basic/tutorial.html),数组是什么?很抱歉提出一些愚蠢的问题,但我不知道这些东西是如何工作的!
    • 对于监督任务(例如分类问题),您通常通过调用model.fit(X, y) 来训练模型,其中X 是一个二维数组n_samples 行(每个实例或要分类的图像一个) 和n_features 列,每个“特征”或“属性”描述您的实例/样本/对象/图像/任何东西和yn_samples 整数值的一维数组,表示类标签分配对于X 中的每一行。例如。例如,对于二元分类问题,y 中的每个元素都可以是 01
    • 顺便将多个一维数组连接为二维数组的行,您可以使用:docs.scipy.org/doc/numpy/reference/generated/numpy.vstack.html
    • n_samples 不是数组的变量名。这是一种告诉“样本数量”的方法。它是一个整数。如果您有 3 张图像,每张图像具有 1000 个 HOG 特征,则它们 n_samples == 3n_features == 1000X 的形状为 (n_samples, n_features) == (3, 1000)。请按照我给你的教程或先在其他地方学习 numpy。
    猜你喜欢
    • 2015-05-22
    • 2016-02-25
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 2019-04-05
    • 2015-08-23
    • 2019-10-04
    相关资源
    最近更新 更多