predict()返回scikit-learn中与SVM的图像相似性



一个愚蠢的问题:在scikit学习中训练SVM后,我必须使用预测函数:predict(X)来预测属于哪个类别?(http://scikit-learn.org/dev/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC.predict)

X参数是图像的特征向量吗?如果我给出的图像没有经过训练(因为SVM要求至少3个样本上课而没有经过训练),会返回什么?

第一句话:"predict()在scikit-learn中返回与SVM的图像相似性"不是问题。请在"堆栈溢出"条目的标题中提出一个问题。

第二点:sklearn中SVC类的预测方法不返回"图像相似性",而是一个类分配预测。阅读http://scikit-learn.org文档和教程,以了解机器学习中分类和预测的含义。

X参数是图像的特征向量吗?

不,X不是"图像"特征向量:它是一组形状为(n_samples, n_features)的图像特征向量,如您参考的文档中所述。在您的情况下,样本是图像,因此预期形状为(n_images, n_features)。预测API的设计是为了同时计算许多预测,以提高效率。如果要计算单个预测,则必须将单个特征向量包裹在形状为(1, n_features)的数组中。

例如,如果你有一个名为my_single_image_features的单一特征向量(1D),形状为(n_features,),你可以称之为预测:

predictions = clf.predict([my_single_image_features])
my_single_prediction = predictions[0]

请注意my_single_image_features变量周围的[]符号将其转换为2D数组。

my_single_prediction将是一个整数,其含义取决于您在首先调用clf.fit(X_train, y_train)方法时提供的整数值。

如果我给出的图像没有经过训练(因为SVM要求至少3个样本上课而没有经过训练),会返回什么?

图像没有经过"训练"。只训练模型。当然,您可以将不属于训练集的样本/图像传递给预测方法。这就是机器学习的全部目的:根据你从过去训练数据中看到的统计规律,对新的看不见的数据进行预测。

相关内容

  • 没有找到相关文章

最新更新