predict()在scikit learn中返回与SVM的图像相似度

时间:2013-02-14 00:50:30

标签: svm scikit-learn

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

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

1 个答案:

答案 0 :(得分:1)

第一句话:“predict()返回图像与scikit中SVM的相似性”不是问题。请在Stack Overflow条目的标题中添加一个问题。

第二句话:sklearn中SVC类的预测方法不返回“图像相似度”,而是返回类赋值预测。阅读http://scikit-learn.org文档和tutorials,了解机器学习中分类和预测的含义。

  

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

不,X不是“图像”特征向量:它是一组形状为(n_samples, n_features)的图像特征向量,如您所引用的文档中所述。在您的情况下,样本是图像,因此预期的形状将是(n_images, n_features)。由于效率原因,预测API被设计为一次计算许多预测。如果要计算单个预测,则必须将单个特征向量包装在形状为(1, n_features)的数组中。

例如,如果您有一个名为my_single_image_features且形状为(n_features,)的特征向量(1D),则可以使用以下方式调用预测:

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个样本上课),会有什么回报?

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