predict() 在 scikit learn 中返回与 SVM 的图像相似度
Posted
技术标签:
【中文标题】predict() 在 scikit learn 中返回与 SVM 的图像相似度【英文标题】:predict() returns image similarities with SVM in scikit learn 【发布时间】:2013-01-29 17:39:41 【问题描述】:一个愚蠢的问题:在我在 scikit-learn 中训练我的 SVM 之后,我必须使用预测函数:predict(X) 来预测属于哪个类? (http://scikit-learn.org/dev/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC.predict)
X参数是图像特征向量? 如果我给出一个未训练的图像(未训练,因为 SVM 要求至少 3 个样本作为类),返回什么?
【问题讨论】:
【参考方案1】:第一句话:“predict() 在 scikit learn 中返回与 SVM 的图像相似性”不是问题。请在 Stack Overflow 条目的标题中提出问题。
第二点:sklearn中SVC类的predict方法返回的不是“图像相似度”而是类分配预测。阅读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),您可以调用 predict :
predictions = clf.predict([my_single_image_features])
my_single_prediction = predictions[0]
请注意my_single_image_features
变量周围的[]
符号,以将其转换为二维数组。
my_single_prediction
将是一个整数,其含义取决于您在首先调用clf.fit(X_train, y_train)
方法时提供的整数值。
如果我给出未训练的图像(未训练,因为 SVM 要求至少 3 个样本作为类),返回什么?
图像未经过“训练”。仅训练模型。当然,您可以将不属于训练集的样本/图像传递给预测方法。这就是机器学习的全部目的:根据您从过去训练数据中看到的统计规律中学到的知识,对新的未知数据进行预测。
【讨论】:
以上是关于predict() 在 scikit learn 中返回与 SVM 的图像相似度的主要内容,如果未能解决你的问题,请参考以下文章
scikit-learn:cross_val_predict 仅适用于分区
Scikit-learn predict_proba 给出错误答案
在 Scikit-learn 中运行 predict_proba() 后如何保持行索引?
Cloud ML Engine 和 Scikit-Learn:“LatentDirichletAllocation”对象没有“predict”属性
predict_proba 的 Scikit-learn RandomForestClassifier 输出
如何从 scikit-learn 中与 predict_proba 一起使用的 cross_val_predict 获取类标签